iOS语音处理程序
由加拿大温哥华的Picovoice制作
iOS语音处理程序是一个异步音频捕获库,旨在进行实时音频处理。根据某些规范,库通过监听器将原始音频数据帧提供给用户。
目录
要求
兼容性
- iOS 11.0+
安装
iOS语音处理器可通过CocoaPods获取。要将它导入到您的iOS项目中,请将以下行添加到您的Podfile中
pod 'ios-voice-processor'
权限
要使用您的iOS设备的麦克风进行录音,您必须在应用的Info.plist
文件中添加以下内容
<key>NSMicrophoneUsageDescription</key>
<string>[Permission explanation]</string>
请参阅我们的示例应用或此指南了解如何从用户那里正确请求此权限。
用法
访问VoiceProcessor
的实例
import ios_voice_processor
let voiceProcessor = VoiceProcessor.instance
添加音频帧和错误的监听器
let frameListener = VoiceProcessorFrameListener { frame in
// use audio
}
let errorListener = VoiceProcessorErrorListener { error in
// handle error
}
voiceProcessor.addFrameListener(frameListener);
voiceProcessor.addErrorListener(errorListener);
以期望的帧长度和音频采样率开始音频捕获
do {
try voiceProcessor.start(frameLength: 512, sampleRate: 16000);
} catch {
// handle start error
}
停止音频捕获
do {
try voiceProcessor.stop();
} catch {
}
音频捕获成功开始后,任何分配给VoiceProcessor
的帧监听器都将开始接收给定frameLength
和sampleRate
的音频帧。
使用多个监听器进行捕获
可以给VoiceProcessor
实例添加和移除任意数量的监听器。然而,该实例只能使用单个音频配置(frameLength
和sampleRate
)来录制音频,所有监听器在调用start()
方法后都将接收到该音频配置。要添加多个监听器
let listener1 = VoiceProcessorFrameListener({_ in })
let listener2 = VoiceProcessorFrameListener({_ in })
let listeners: [VoiceProcessorFrameListener] = [listener1, listener2];
voiceProcessor.addFrameListeners(listeners);
voiceProcessor.removeFrameListeners(listeners);
// or
voiceProcessor.clearFrameListeners();
示例
iOS Voice Processor 应用程序演示了如何请求用户权限并捕获来自VoiceProcessor
的输出。
版本发布
v1.1.0 - 2023年7月31日
- 许多 API 改进
- 错误处理改进
- 允许使用多个监听器而不是单个回调函数
- 升级测试基础设施和示例应用程序
v1.0.0 - 2021年8月5日
- 首次公开发行。