IFlySpeechRecognizer是不带界面的语音听写控件,IFlyRecognizerView是带界面的控件,此处仅介绍不带界面的语音听写控件。使用示例如下所示:
1. //需要实现IFlyRecognizerViewDelegate识别协议
2. @interface IATViewController : UIViewController<IFlySpeechRecognizerDelegate>
3. //不带界面的识别对象
4. @property (nonatomic, strong) IFlySpeechRecognizer *iFlySpeechRecognizer;
5. @end
7. //创建语音识别对象
8. _iFlySpeechRecognizer = [IFlySpeechRecognizer sharedInstance];
9. //设置识别参数
10. //设置为听写模式
11. [_iFlySpeechRecognizer setParameter: @"iat" forKey: [IFlySpeechConstant IFLY_DOMAIN]];
12. //asr_audio_path 是录音文件名,设置value为nil或者为空取消保存,默认保存目录在Library/cache下。
13. [_iFlySpeechRecognizer setParameter:@"iat.pcm" forKey:[IFlySpeechConstant ASR_AUDIO_PATH]];
14. //启动识别服务
15. [_iFlySpeechRecognizer start];
17. //IFlySpeechRecognizerDelegate协议实现
18. //识别结果返回代理
19. - (void) onResults:(NSArray *) results isLast:(BOOL)isLast{}
20. //识别会话结束返回代理
21. - (void)onCompleted: (IFlySpeechError *) error{}
22. //停止录音回调
23. - (void) onEndOfSpeech{}
24. //开始录音回调
25. - (void) onBeginOfSpeech{}
26. //音量回调函数
27. - (void) onVolumeChanged: (int)volume{}
28. //会话取消回调
29. - (void) onCancel{}
1.1. 音频流识别
音频流识别功能可以让开发者将已录制好的音频数据写入听写控件,最后得到识别结果。
1. //设置音频源为音频流(-1)
2. [self.iFlySpeechRecognizer setParameter:@"-1" forKey:@"audio_source"];
4. //启动识别服务
5. [self.iFlySpeechRecognizer startListening];
7. //写入音频数据
8. NSData *data = [NSData dataWithContentsOfFile:_pcmFilePath]; //从文件中读取音频
9. [self.iFlySpeechRecognizer writeAudio:data];//写入音频,让SDK识别。建议将音频数据分段写入。
11. //音频写入结束或出错时,必须调用结束识别接口
12. [self.iFlySpeechRecognizer stopListening];//音频数据写入完成,进入等待状态
