我正在使用新的iOS10框架进行实时语音识别。我使用AVCaptureSession
访问音频。
我有一个“聆听”的哔声通知用户,他可以开始说话。最好的方式是在第一次打电话给captureOutput(:didOutputSampleBuffer..)
,但如果我试着在会议开始后播放声音,声音就不会播放。不会抛出错误..。只是无声地弹不出..。
我试过的是:
AudioServicesPlaySystemSound...()
)AVPlayer
播放一个资产似乎无论我在做什么,在触发识别后不可能触发任何类型的音频播放(不确定是AVCaptureSession
还是SFSpeechAudioBufferRecognitionRequest
/SFSpeechRecognitionTask
.)
有什么想法吗?苹果甚至建议播放一种“聆听”的声音效果。 (用Siri自己做),但是我找不到任何参考/例子来说明如何去做.(他们的"SpeakToMe“例子不播放声音)
发布于 2016-12-12 20:52:01
显然,要成功地开始语音识别会话,只有在识别真正的开始之后,才能发挥“倾听”效果,就必须遵循一系列“规则”。
AVPlayer
播放,而不是系统声音。AVCaptureAudioDataOutputSampleBufferDelegate
的委托调用中,当我们收到第一个sampleBuffer回调时:
func captureOutput(_ captureOutput: AVCaptureOutput!,didOutputSampleBuffer sampleBuffer: CMSampleBuffer!,from connection: AVCaptureConnection!) {//每一次识别会话,如果shouldHandleRecordingBegan { shouldHandleRecordingBegan = false player = AVPlayer(url: Bundle.main.url(forResource:“侦听”,withExtension:"aiff")!)player.play() DispatchQueue.main.async {//调用委托/处理程序闭包/post通知等。}} //附加缓冲区到语音识别speechRequest?.appendAudioSampleBuffer(sampleBuffer) }https://stackoverflow.com/questions/41096150
复制相似问题