iOS 讯飞语音听写(流式版)

最近项目中用到了讯飞的语音识别,然后稍微看了一下,里面有几个值得注意的点,记录一下,先说语音听写(流式版),实时语音转写后期会附上 ,文末有 demo
//语音听写(流式版)
语音听写流式版其实没设么好说的,因为直接有 SDK,导入项目就可以了,需要注意的点就是每个创建的 APP 和 SDK 是对应的,所以需要创建项目以后,点击控制台,在对应的项目里面下载 SDK,要不会有问题,下面上对可能出现的问题和代码


27670DD7-367B-4D3F-8514-1D5E8A124A36.png

还有一个问题(是目前我遇到的,不一定通用)报错如下


20AC10D1-11FD-4156-B4F9-9599ACFABBD3.png

解决办法:我圈住这两个必须在这个地方显示,要不就会报错(我是连着两次导入,才显示出来)
C89699DD-6C1C-4300-A601-D1CE7FE2D986.png

主要代码(写了部分注释,详情见 demo,简单总结了一下,可以直接调用):

        //清空上一段听到的内容
        [self.recognizer setParameter:@"" forKey:[IFlySpeechConstant PARAMS]];
        //设置业务类型
        [self.recognizer setParameter:@"iat" forKey:[IFlySpeechConstant IFLY_DOMAIN]];
        //设置语言
        [self.recognizer setParameter:@"zh_cn" forKey:[IFlySpeechConstant LANGUAGE_CHINESE]];
        //设置普通话
        [self.recognizer setParameter:@"mandarin" forKey:[IFlySpeechConstant ACCENT]];
        //超出时间  单位ms  最长 14s
        [self.recognizer setParameter:@"14000" forKey:[IFlySpeechConstant SPEECH_TIMEOUT]];
        //前断点超时(即开始检测以后多少秒没检测到说话,直接结束当前的识别)
        [self.recognizer setParameter:@"14000" forKey:[IFlySpeechConstant VAD_BOS]];
        //后断点超时(即说话以后多少秒没检测到再次说话,直接结束当前的识别)
        [self.recognizer setParameter:@"14000" forKey:[IFlySpeechConstant  VAD_EOS]];
        //音频采样率 8K/16K
        [self.recognizer setParameter:@"16000" forKey:[IFlySpeechConstant SAMPLE_RATE]];
        //标点
        [self.recognizer setParameter:@"1" forKey:[IFlySpeechConstant ASR_PTT]];
        //音频源
        [self.recognizer setParameter:@"1" forKey:@"audio_source"];
        //返回值类型
        [self.recognizer setParameter:@"json" forKey:[IFlySpeechConstant RESULT_TYPE]];
        
        [self.recognizer setDelegate:self];

-(void)startMSC:(MSCSuccess)success{
    
    self.MSCStr = @"";
    self.success = success;
    BOOL res = [self.recognizer startListening];
    if (res) {
        NSLog(@"准备就绪开始听写");
    }else{
        NSLog(@"准备过程出现错误");
    }
}
//停止录音识别此次回话
-(void)stopRecord{
    [self.recognizer stopListening];
}
//取消录音,并舍弃此次回话
-(void)cancelRecord{
    [self.recognizer cancel];
}
//结果回调
-(void)onResults:(NSArray *)results isLast:(BOOL)isLast{
    NSMutableString *resultString = [[NSMutableString alloc] init];
    NSDictionary *Dic = results[0];
    
    for (NSString *key in Dic) {
        [resultString appendFormat:@"%@",key];
    }
    NSString *result = [ISRDataHelper stringFromJson:resultString];
    self.MSCStr = [NSString stringWithFormat:@"%@%@",self.MSCStr,result];
    self.success(self.MSCStr?:@"");
    [self cancelRecord];
}

demo地址:https://github.com/xiaoxie0217/iflyMSCDemo.git

你可能感兴趣的:(iOS 讯飞语音听写(流式版))