百度智能小程序 语音识别
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中返回识别结果。