VoiceRecognizer

解释:语音识别

方法参数

Object object

object 参数说明

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

mode有效值如下

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

context有效值如下

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

示例

在开发者工具中预览效果

VoiceRecognizer - 图1请使用百度APP扫码

图片示例

VoiceRecognizer - 图2

VoiceRecognizer - 图3

VoiceRecognizer - 图4

代码示例

  1. // AI系列的api有宿主使用限制,只可在百度App中使用,建议使用时加一层判断防止代码报未知错误
  2. let host = swan.getSystemInfoSync().host;
  3. if (host === 'baiduboxapp') {
  4. const voiceRecognizer = swan.ai.getVoiceRecognizer();
  5. voiceRecognizer.onStart(() => {
  6. console.log('voice start');
  7. });
  8. voiceRecognizer.onRecognize(res => {
  9. console.log('voice recognize', res);
  10. });
  11. voiceRecognizer.onFinish(res => {
  12. console.log('voice end', res);
  13. });
  14. voiceRecognizer.onError(err => {
  15. console.log('voice error', err);
  16. });
  17. const options = {
  18. mode: 'dnn',
  19. longSpeech: false
  20. };
  21. voiceRecognizer.start(options);
  22. }
  23. else {
  24. swan.showToast({
  25. title: '此api目前仅可在百度App上使用',
  26. icon: 'none'
  27. });
  28. }

Bug & Tip

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

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

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