VoiceRecognizer

解释:语音识别

# 方法参数

Object object

# object 参数说明

属性名 类型 默认值 必填 说明
mode String dnn 听音模式,有效值 dnn/touch
longSpeech Boolean false 是否开启长语音
context String input 语音识别所用的场景值,有效值见下表格。

# mode 有效值如下

参数值 说明
dnn 自动听音,默认值
touch 手动听音(需要手动调用 stop 方法才会停止语音识别)

# context 有效值如下

参数值 说明
input 输入法场景
search 搜索场景值

# 示例

扫码体验
重新加载
请使用百度APP扫码

# 图片示例

# 代码示例

    // AI系列的api有宿主使用限制,只可在百度App中使用,建议使用时加一层判断防止代码报未知错误
    let host = swan.getSystemInfoSync().host;
    if (host === 'baiduboxapp') {
        const voiceRecognizer = swan.ai.getVoiceRecognizer();
        voiceRecognizer.onStart(() => {
            console.log('voice start');
        });
        voiceRecognizer.onRecognize(res => {
            console.log('voice recognize', res);
        });
        voiceRecognizer.onFinish(res => {
            console.log('voice end', res);
        });
        voiceRecognizer.onError(err => {
            console.log('voice error', err);
        });
        const options = {
            mode: 'dnn',
            longSpeech: false
        };
        voiceRecognizer.start(options);
    }
    else {
        swan.showToast({
            title: '此api目前仅可在百度App上使用',
            icon: 'none'
        });
    }
    

    # Bug & Tip

    • 长语音时,mode参数不生效,默认为dnn(自动听音)。 此模式下会自动检测,不断调用onRecognize返回中间识别结果,检测到静音(大概 5s)会自动断句,断句后调用onFnish返回一句话的识别结果并添加标点符号。在调用stop后,才正式结束识别;

    • 自动听音&短语音:开始识别后,8s 内没有检测到声音,则结束识别并触发onError;在说话后,如 5s 内未检测到声音,判定为静音,会自动结束识别,返回识别结果。如说话超过 60s,触发onError

    • 手动听音&短语音:开始识别后,8s 内没有检测到声音,则结束识别并触发onError;如说话超过 60s,触发onError;如时间未超过 60s,则可以一直记录语音,直到调用stop,在onFinish中返回识别结果。