阅读(4588) (7)

百度智能小程序 语音识别

2020-08-13 16:01:05 更新

VoiceRecognizer

解释:语音识别

方法参数

Object object


object 参数说明

属性名 类型 默认值 必填 说明

mode

String

dnn

听音模式,有效值 dnn/touch 。

longSpeech

Boolean

false

是否开启长语音

context

String

input

语音识别所用的场景值,有效值见下表格。

mode 有效值如下

参数值 说明

dnn

自动听音,默认值。

touch

手动听音(需要手动调用 stop 方法才会停止语音识别)

context 有效值如下

参数值 说明

input

输入法场景

search

搜索场景值

属性说明

属性名 说明
VoiceRecognizer.start 开始
VoiceRecognizer.stop 停止
VoiceRecognizer.cancel 取消
VoiceRecognizer.onStart 引擎准备就绪
VoiceRecognizer.onRecognize 有识别结果返回
VoiceRecognizer.onFinish 识别完成
VoiceRecognizer.onError 识别遇到错误

示例




图片示例

代码示例

// 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中返回识别结果。