IFlySpeechRecognizer是不帶界面的語音聽寫控件,IFlyRecognizerView是帶界面的控件,此處僅介紹不帶界面的語音聽寫控件。使用示例如下所示:
~~~
//需要實(shí)現(xiàn)IFlyRecognizerViewDelegate識(shí)別協(xié)議
@interface IATViewController : UIViewController<IFlySpeechRecognizerDelegate>
//不帶界面的識(shí)別對(duì)象
@property (nonatomic, strong) IFlySpeechRecognizer *iFlySpeechRecognizer;
@end
//創(chuàng)建語音識(shí)別對(duì)象
_iFlySpeechRecognizer = [IFlySpeechRecognizer sharedInstance];
//設(shè)置識(shí)別參數(shù)
//設(shè)置為聽寫模式
[_iFlySpeechRecognizer setParameter: @"iat" forKey: [IFlySpeechConstant IFLY_DOMAIN]];
//asr_audio_path 是錄音文件名,設(shè)置value為nil或者為空取消保存,默認(rèn)保存目錄在Library/cache下。
[_iFlySpeechRecognizer setParameter:@"iat.pcm" forKey:[IFlySpeechConstant ASR_AUDIO_PATH]];
//啟動(dòng)識(shí)別服務(wù)
[_iFlySpeechRecognizer start];
//IFlySpeechRecognizerDelegate協(xié)議實(shí)現(xiàn)
//識(shí)別結(jié)果返回代理
- (void) onResults:(NSArray *) results isLast:(BOOL)isLast{}
//識(shí)別會(huì)話結(jié)束返回代理
- (void)onError: (IFlySpeechError *) error{}
//停止錄音回調(diào)
- (void) onEndOfSpeech{}
//開始錄音回調(diào)
- (void) onBeginOfSpeech{}
//音量回調(diào)函數(shù)
- (void) onVolumeChanged: (int)volume{}
//會(huì)話取消回調(diào)
- (void) onCancel{}
~~~
## 音頻流識(shí)別
音頻流識(shí)別功能可以讓開發(fā)者將已錄制好的音頻數(shù)據(jù)寫入聽寫控件,最后得到識(shí)別結(jié)果。
~~~
//設(shè)置音頻源為音頻流(-1)
[self.iFlySpeechRecognizer setParameter:@"-1" forKey:@"audio_source"];
//啟動(dòng)識(shí)別服務(wù)
[self.iFlySpeechRecognizer startListening];
//寫入音頻數(shù)據(jù)
NSData *data = [NSData dataWithContentsOfFile:_pcmFilePath]; //從文件中讀取音頻
[self.iFlySpeechRecognizer writeAudio:data];//寫入音頻,讓SDK識(shí)別。建議將音頻數(shù)據(jù)分段寫入。
//音頻寫入結(jié)束或出錯(cuò)時(shí),必須調(diào)用結(jié)束識(shí)別接口
[self.iFlySpeechRecognizer stopListening];//音頻數(shù)據(jù)寫入完成,進(jìn)入等待狀態(tài)
~~~
