3.5实现代理方法
讯飞对识别结果的处理采用的代理回调的方法,实现IFlySpeechSynthesizerDelegate协议的onResult:isLast:方法.
注意!!!!这里的是onResult,不是onResults,后者是无界面提示的语音解析的结果回调函数.
回调时默认传回来的数据是json数据,咱们大可不必疑惑解析到底使用哪种方式,科大讯飞已经为我们考虑到这些问题了,他官方提供了一个叫做“ISRDataHelper”用它解析就可以了。代码如下:
- - (void)onResult:(NSArray *)resultArray isLast:(BOOL)isLast{
-
- NSMutableString *result = [[NSMutableString alloc] init];
- NSDictionary *dic = [resultArray objectAtIndex:0];
- for (NSString *key in dic) {
- [result appendFormat:@"%@",key];
- }
-
- NSString * resu = [ISRDataHelper stringFromJson:result];
-
-
-
- _showTextLable.text = [NSString stringWithFormat:@"%@%@",_showTextLable.text,resu];
- }
3.6触发开始识别语音
拖动一个Button,给一个响应事件,用于开始监听语音识别;代码如下:
- - (IBAction)voiceRecognize:(id)sender {
-
-
- [_iflyRecognizerView start];
-
- }
这时候运行app就可以进行语音识别了,界面如下图: