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