美文网首页
iOS 讯飞语音听写(流式版)

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

作者: 小谢0217 | 来源:发表于2020-09-02 17:56 被阅读0次

    最近项目中用到了讯飞的语音识别,然后稍微看了一下,里面有几个值得注意的点,记录一下,先说语音听写(流式版),实时语音转写后期会附上 ,文末有 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 讯飞语音听写(流式版)

          本文链接:https://www.haomeiwen.com/subject/lvnisktx.html