我正在使用SpeechKit从Nuance转录文本从视频,因为我记录它。但是,当SpeechKit处于活动状态时,AVAudioSession会生成以下错误:
AVAudioSession.mm:646: -[AVAudioSession setActive:withOptions:error:]: Deactivating an audio session that has running I/O. All I/O should be stopped or paused prior to deactivating the audio session.禁用SpeechKit可以让我录制和预览视频。启用它可以生成转录的文本,但不记录视频。
我已将一个示例项目放在网上:
https://github.com/jeffreality/iOSVideoTranscriber
我的目标是保存视频与音频,以及有一个转录。
发布于 2015-02-21 17:39:21
您可以将以下行移动到viewDidLoad:
#if ENABLE_TRANSCRIPTION
[SpeechKit setupWithID:@"Your ID"
host:@"dfo.nmdp.nuancemobility.net"
port:443
useSSL:NO
delegate:nil];
#endif这确保在您在speechKit中创建自己的捕获会话时已经设置了viewDidAppear。
当识别器停止录制音频时,将调用SpeechKit委托方法recognizerDidFinishRecording。当检测到沉默时会自动调用它,在执行[voiceSearch stopRecording]时将手动调用它。当这种情况发生时,您自己的录音还没有完成,它需要时间将音频文件保存到磁盘,并且错误消息说所有i/o应该在停用音频会话之前停止。您可以通过sdk release audio session 1看到一个日志,我认为它正在关闭一个会话并释放它。所以我认为你应该在上面的方法中加上这个。
[[self.session.outputs[1] connectionWithMediaType:AVMediaTypeAudio] setEnabled:NO];输出是您先前设置的AVCaptureMovieFileOutput,而连接是音频连接,这样做似乎会使错误消失。
https://stackoverflow.com/questions/28589579
复制相似问题