跳到内容 跳到主导航 跳到页脚

语音

播放TTS

方法名称:playText

调用示例:

let listener = new TextListener();
listener.setFinish(() => {
    //TODO: 播放完成
    listener.removeListener();
});
speechApi.playText(listener.getId(), text);

参数说明:

  • callbackId:回调id
  • text:需要播放的文本内容  注意:不支持播放 json 格式内容,请尽量避免在TTS文本中使用我们无法支持的长字符串,例如超链接、混乱的字符序列等。这可能会导致程序调用失败。单次tts播放建议在300字内,最高不超过1000,如果文本内容太多可以分段tts播放。

最低版本:1.0.0

适用平台:

豹小秘mini招财豹豹小递max豹小秘DP

流式 TTS 播放(ROM 需要是 10.3 及以上版本)

方法名称:playStreamText

调用示例:

let textListener = new TextListener();
textListener.addListener(TextListener.EVENT_STREAM_COMPLETE, (params: any): void => {
     //某句话播放完成
     console.log(this.TAG, ' onPlayTTS  EVENT_STREAM_COMPLETE= ' + JSON.stringify(params));
});
speechApi.playStreamText(listener.getId(), text, textSid, streamSid);

参数说明:

  • callbackId:回调id
  • text:需要播放的文本内容  注意:不支持播放 json 格式内容,请尽量避免在TTS文本中使用我们无法支持的长字符串,例如超链接、混乱的字符序列等。这可能会导致程序调用失败。单次tts播放建议在300字内,最高不超过1000,如果文本内容太多可以分段tts播放。
  • textSid: 文案 ID,不同文案必须是不同的 ID,格式为:UUID,可以为空,空则自动分配 ID
  • streamSid:文段 ID,同一段文案必须是同一个ID,格式为:UUID,可以为空,空则认为每次是一个独立的文段,每次调用playText相互打断

使用说明:如果有一段文案,这段文案有 10 句话,这10 句话是分别收到的,可以在文段开始时候,生成唯一的streamSid,每句话使用不同的textSid,调用 10 次playText接口;由于这 10 句话的streamSid相同,则每次调用播放相互不打断,可以在正在播放上一句的时候调用playText接口;那么每句话播放完毕,则会在Listener回调中收到完成事件,回调的返回参数params包含两个字段:params.textSid 播放完成的的文本 ID、params.streamSid播放完成的文段 ID,可以对应找到是哪句话完成,进行高亮显示。注意:不同文段需要使用不同的streamSid,可以相互打断;streamSid为空的两次playText接口调用,也认为是两段不同文案,也会相互打断。

注意:orionos-eve-core需要升级到2.85.0 及以上

适用平台:

豹小秘mini招财豹豹小递max豹小秘DP

停止TTS播放

方法名称:stopTTS

调用示例:

speechApi.stopTTS();

参数说明:无

最低版本:1.0.0

适用平台:

豹小秘mini招财豹豹小递max豹小秘DP

设置是否启用语音识别

注意:需要在机器人设置里面开启 “语音识别” 与 “持续拾音”开关接口才会生效

备注:该开关作用是关闭或者开启语音识别,如果关闭,则语音功能完全关闭,语音唤醒等都不再生效;如果需要单次拾音,只需要设置拾音模式(setRecognizeMode)为false,即可用户不唤醒的时候,不拾音。

方法名称:setRecognizable

调用示例:

speechApi.setRecognizable(enbale);

参数说明:

  • enable:是否开启语音识别,true 开启 false 关闭

最低版本:1.0.0

适用平台:

豹小秘mini招财豹豹小递max豹小秘DP

设置是否启用长拾音

方法名称:setRecognizeMode

调用示例:

speechApi.setRecognizeMode(isContinue);

参数说明:

  • isContinue:是否开启长拾音。true为持续识别,不需要唤醒;false为单次识别,每次需要先唤醒(对机器说:小豹小豹),才能开始语音识别。默认值为false。

最低版本:1.0.0

适用平台:

豹小秘mini招财豹豹小递max豹小秘DP

识别指定文本内容

方法名称:queryByText

调用示例:

speechApi.queryByText(text);

参数说明:

  • text:需要识别的文本内容,文本内容经过识别后,会回调到Voice(Voice内容可参考文档应用基础知识部分),跟正常语音识别一样。

最低版本:1.0.0

适用平台:

豹小秘mini招财豹豹小递max豹小秘DP

设置语音识别区域

方法名称:setAngleCenterRange

调用示例:

speechApi.setAngleCenterRange(centerAngle, rangeAngle);

参数说明:

  • centerAngle:语音识别中心角度,范围 [0, 360)
  • rangleAngle:区间角度,范围 [0, 120]

最低版本:1.0.0

适用平台:

豹小秘mini招财豹豹小递max豹小秘DP

重置语音识别中心角度

方法名称:resetAngleCenterRange

调用示例:

speechApi.resetAngleCenterRange();

参数说明:无

最低版本:1.0.0

适用平台:

豹小秘mini招财豹豹小递max豹小秘DP

播放本地音频文件

方法名称:playToneByLocalPath

调用示例:

let listener = new ToneListener();
listener.setFinish((status:any) => {       //onStart,onStop,onError,onComplete
    //TODO: 播放完成     if(status != 'onStart'){
        listener.removeListener();    }
});
speechApi.playToneByLocalPath(listener.getId(), path);

参数说明:

  • callbackId:回调id
  • path:本地音频文件路径

最低版本:1.8.0

适用平台:

豹小秘mini招财豹豹小递max豹小秘DP

停止本地音频播放

方法名称:stopTone

调用示例:

speechApi.stopTone();

参数说明:无

最低版本:1.8.0

适用平台:

豹小秘mini招财豹豹小递max豹小秘DP

语音相关API的使用示例:点击下载

OPK语音上屏

效果(debug模式不会生效):

调用示例(***ViewModel.ts,其他文件引入可能不生效):

public onStart() {
    //this.showRecognition();
    //asr文字上屏方法
    global.recognition && global.recognition.setShow(true);

    //如果需要展示,没有人说话时候的提示语,运行下面方法
    global.recognition && global.recognition.setGuideArray([“提示1”,”提示2“]);
    global.recognition && global.recognition.setGuideShow(true);
    //注意系统 9.5 版本后,需要注意在项目***Voice文件的onListenCallback方法里,如果监听了唤醒意图:req_speech_wakeup, 需要返回 false,否则语音内容不上屏幕
}

最低版本:1.0.0

适用平台:

豹小秘mini招财豹豹小递max豹小秘DP

示例代码

这篇文章是否有帮助?

0