我正在尝试记录和语音识别通过我的蓝牙AirPods麦克风传来的音频。
我尝试了所有发现但没有运气的东西。我可以通过内置麦克风进行录音,但是一旦我将音频类别设置为蓝牙,它就会崩溃。
这是我的代码的当前版本:
askSpeechPermission()
var request = SFSpeechAudioBufferRecognitionRequest()
var listOfInputs = AVAudioSession.sharedInstance().availableInputs
do {
try AVAudioSession.sharedInstance().setCategory(AVAudioSessionCategoryRecord, mode: AVAudioSessionModeDefault, options: AVAudioSessionCategoryOptions.allowBluetooth)
} catch {
}
let node = audioEngine.inputNode
let recordingFormat = node.outputFormat(forBus: 0)
node.installTap(onBus: 0, bufferSize: 1024, format: recordingFormat) { buffer, _ in
self.request.append(buffer)
}
Run Code Online (Sandbox Code Playgroud)
这就是由此导致的崩溃错误。
***由于未捕获的异常'com.apple.coreaudio.avfaudio'而终止应用程序,原因:'所需条件为假:format.sampleRate == hwFormat.sampleRate'
您是否尝试过检查您的采样率?要修改您的采样率,您可以使用
let fmt = AVAudioFormat(commonFormat: .pcmFormatFloat32, sampleRate: 44100, channels: 1, interleaved: true)
Run Code Online (Sandbox Code Playgroud)
然后你就可以按照你的格式
node.installTap(onBus: 0, bufferSize: 1024, format: fmt) { buffer, _ in
self.request.append(buffer)
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
893 次 |
| 最近记录: |