Koala-iOS 2.0.0

Koala-iOS 2.0.0

Ian LaveryKwangsoo Yeo 维护。



Koala-iOS 2.0.0

  • Picovoice

Koala

Picovoice 在加拿大温哥华制作

Twitter URL

YouTube Channel Views

Koala 是一个设备端噪声抑制引擎。Koala 是:

  • 私有;所有语音处理都在本地进行。
  • 跨平台
    • Linux (x86_64), macOS (x86_64, arm64), Windows (x86_64)
    • Android 和 iOS
    • Chrome、Safari、Firefox 和 Edge
    • 树莓派 (4, 3) 和 NVIDIA Jetson Nano

目录

AccessKey

AccessKey 是您部署 Picovoice SDK(包括 Koala)的认证和授权令牌。 anyone who is using Picovoice needs to have a valid AccessKey. 您必须保密您的 AccessKey。尽管噪声抑制运行在100%离线状态下,您仍需要网络连接来将与 Picovoice 许可证服务器验证您的 AccessKey。

AccessKey 还会验证您的使用是否在账户的限制范围内。所有注册 Picovoice Console 的人都会获得这里描述的 免费层 使用权限 [这里]。如果您想增加您的限制,可以购买订阅计划。

示例

Python 示例

安装示例包

pip3 install pvkoalademo
koala_demo_mic --access_key ${ACCESS_KEY} --output_path ${WAV_OUTPUT_PATH}
koala_demo_file \
    --access_key ${ACCESS_KEY} \
    --input_path ${WAV_INPUT_PATH} \
    --output_path ${WAV_OUTPUT_PATH}

${ACCESS_KEY} 替换为您从 Picovoice Console 获取的您的 AccessKey

Android 示例

使用 Android Studio,将 demo/android/Activity 作为 Android 项目打开,然后运行应用程序。

将文件 MainActivity.java 中的 "${YOUR_ACCESS_KEY_HERE}" 替换为您的 AccessKey

iOS 示例

将您的 AccessKey 复制到 ACCESS_KEY 变量中,该变量位于 ViewModel.swift

在构建示例应用程序之前,从 KoalaDemo 目录运行以下命令以安装 Koala-iOS CocoaPod。

pod install

打开 KoalaDemo.xcworkspace 并运行示例。

C 示例

构建示例

cmake -S demo/c/ -B demo/c/build && cmake --build demo/c/build --target koala_demo_mic

列出可用的音频输入设备

./demo/c/build/koala_demo_mic -s

运行示例

./demo/c/build/koala_demo_mic -l ${LIBRARY_PATH} -m ${MODEL_PATH} -a ${ACCESS_KEY} -o ${WAV_OUTPUT_PATH}

${LIBRARY_PATH} 替换为位于 lib 目录下相应的库路径,将 ${MODEL_PATH} 替换为位于 lib/common 目录下的模型文件路径,将 ${ACCESS_KEY} 替换为从 Picovoice 控制台 获得的 AccessKey,将 ${WAV_OUTPUT_PATH} 替换为一个用于存储增强音频的 .wav 文件路径。使用 Ctrl+C 终止示例。

有关 C 示例的更多信息,请访问 demo/c

Web 示例

demo/web 在终端运行以下命令

yarn
yarn start

(或)

npm install
npm run start

在浏览器中打开 https://:5000 以尝试示例。

SDKs

Python

安装 Python SDK

pip3 install pvkoala

创建引擎实例并在实时中增强音频

import pvkoala

koala = pvkoala.create(access_key='${ACCESS_KEY}')

${ACCESS_KEY} 替换为您从 Picovoice Console 获取的您的 AccessKey

def get_next_audio_frame():
    pass

while True:
    enhanced_audio = koala.process(get_next_audio_frame())

最后,使用 koala.delete() 显式释放资源。

Android

要在您的Android项目中包含此软件包,请确保在您的顶级build.gradle文件中包含了mavenCentral(),然后在您的app的build.gradle文件中添加以下内容:

dependencies {
    implementation 'ai.picovoice:koala-android:${LATEST_VERSION}'
}

创建引擎实例并在实时中增强音频

import ai.picovoice.koala.*;

final String accessKey = "${ACCESS_KEY}"; // AccessKey obtained from Picovoice Console (https://console.picovoice.ai/)

short[] getNextAudioFrame() {
    // .. get audioFrame
    return audioFrame;
}

try {
    Koala koala = new Koala.Builder()
        .setAccessKey(accessKey)
        .build(appContext);

    while true {
        short[] enhancedFrame = koala.process(getNextAudioFrame());
    };

} catch (KoalaException ex) { }

${ACCESS_KEY}替换为您从Picovoice控制台获取的您的密钥。

iOS

创建引擎实例以提高音频

import Koala

do {
  let koala = try Koala(accessKey: "${ACCESS_KEY}")
} catch {}

func getNextAudioFrame() -> [Int16] {
  // .. get a frame of audio
  return audioFrame;
}

while true {
  do {
    let enhancedAudio = try koala.process(getNextAudioFrame())
    // .. use enhanced audio
  } catch {}
}

${ACCESS_KEY}替换为您从Picovoice控制台获取的您的密钥。

如果下一个音频帧不直接跟在之前的一个之后,请调用koala.reset()

完成时要确保显式释放资源,使用koala.delete()

C

include/pv_koala.h头文件包含相关信息。创建对象实例

    pv_koala_t *handle = NULL;
    const char *model_path = "${MODEL_PATH}";
    pv_status_t status = pv_koala_init(${ACCESS_KEY}, model_path, &handle);
    if (status != PV_STATUS_SUCCESS) {
        // error handling logic
    }

${ACCESS_KEY}替换为您从Picovoice控制台获取的访问密钥,并将${MODEL_PATH}替换为在lib/common下可用的模型文件路径。

现在可以使用handle在实时中增强音频

extern const int16_t *get_next_audio_frame(void);

const int32_t frame_length = pv_koala_frame_length();
int16_t *enhanced_pcm = (int16_t *) malloc(frame_length * sizeof(int16_t));

while (true) {
    const int16_t *pcm = get_next_audio_frame();
    const pv_status_t status = pv_koala_process(handle, pcm, enhanced_pcm);
    if (status != PV_STATUS_SUCCESS) {
        // error handling logic
    }
}

最后,完成时要确保释放所获取的资源

pv_koala_delete(handle);

Web

使用yarn安装Web SDK

yarn add @picovoice/koala-web

或使用npm

npm install --save @picovoice/koala-web

使用KoalaWorker创建引擎实例,并在实时中增强音频

import { Koala } from "@picovoice/koala-web";
import koalaParams from "${PATH_TO_BASE64_KOALA_PARAMS}";

function processCallback(enhancedPcm) {
  // do something with enhancedPcm
}

function getAudioData(): Int16Array {
... // function to get audio data
  return new Int16Array();
}

const koala = await KoalaWorker.create(
  "${ACCESS_KEY}",
  processCallback,
  { base64: koalaParams },
);

await koala.reset();
for (;;) {
    await koala.process(getAudioData());
}

${ACCESS_KEY} 替换为您从 Picovoice 控制台 获得的信息。最后,完成操作后,使用 koala.release() 释放资源。

发行版

v1.0.0 2023年2月7日

  • 首次发布。