<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ??一站式輕松地調用各大LLM模型接口,支持GPT4、智譜、豆包、星火、月之暗面及文生圖、文生視頻 廣告
                * voicemodule是app的外部依賴Module,包含有語音識別、合成、喚醒三大功能。靈聚APP當前使用的語音SDK是訊飛語音。 ### RecognizerBase:語音識別器(實現類:IflyRecognizer) * * * * * 基類RecognizerBase定義了語音識別需要的基本通用方法(作用:當開發者想要替換語音SDK時,只需另外定義一個實現類實現這些方法即可,而不需要替換整個voicemodule),而實現類IflyRecognizer則是對訊飛語音識別的封裝,并實現基類定義的方法。其中IflyRecognizer的兩個變量long_record_mode,long_time_record控制著語音的識別模式。 | long_record_mode | long_time_record | 識別模式 | | --- | --- | --- | | -1(默認) | false(默認) | 訊飛正常識別,本地不錄音,不保存錄音文件 | | 0(CREATE_MEMO_MODE) | true | 無限時音頻流識別,本地錄音,不保存錄音文件 | | 1(MODIFY_MEMO_MODE) | true | 無限時音頻流識別,本地錄音,不保存錄音文件 | | 2(DEFAULT_TAPE) | true | 訊飛正常錄音,本地錄音,保存錄音文件 | | 3(LONG_TAPE) | true | 無限時音頻流識別,本地錄音,保存錄音文件 | 變量設置方法如下: ~~~ //設置long_record_mode public void setLong_record_mode(int) //設置long_time_record public void setRecognizeMode(boolean) ~~~ ### SynthesizerBase:語音合成器(實現類:IflySynthesizer) * * * * * 基類和實現類的作用同上,不一樣的是IflySynthesizer的語音合成方法是使用了RxJava的。其好處是使得語音合成在一個獨立的線程進行,方便控制和管理,且不阻塞主線程。 語音合成示例: ~~~ SpeechMsgBuilder builder = SpeechMsgBuilder.create("合成文本"); /*可選設置,設置合成后執行的語音動作 (SpeechMsg.CONTEXT_KEEP_RECOGNIZE:合成后自動開啟識別 SpeechMsg.CONTEXT_KEEP_AWAKEN:合成后自動試圖打開喚醒) */ //builder.setContextMode(SpeechMsg.CONTEXT_KEEP_RECOGNIZE); //合成聲音 SynthesizerBase.get().startSpeakAbsolute(builder.build()) .doOnNext(new Consumer<SpeechMsg>() { @Override public void accept(SpeechMsg speechMsg) throws Exception { if (speechMsg.state() == SpeechMsg.State.OnBegin) { //發送合成動畫開始事件 EventBus.getDefault().post(new SynthesizeEvent(SynthesizeEvent.SYNTH_START)); } } }) .doOnComplete(new Action() { @Override public void run() throws Exception { //發送合成動畫結束事件 EventBus.getDefault().post(new SynthesizeEvent(SynthesizeEvent.SYNTH_END)); } }) .subscribeOn(Schedulers.io()) .observeOn(Schedulers.computation()) .subscribe(); ~~~ * SpeechMsgBuilder:合成信息建造者,包含了合成信息對象以及合成信息的來源、優先級、合成后動作等設置。 ### WakeupEngineBase:語音喚醒器(實現類:VoiceAwakener ) * * * * * 特別的,喚醒屬于訊飛語音的定制服務,需要開發者在[訊飛開放平臺](http://www.xfyun.cn/services/awaken?type=awaken)購買服務并定制喚醒詞。然后將訊飛SDK開發包的\res\ivw\路徑下的喚醒資源文件引入到 \voicemodule\src\main\assets\ivw\ 中,將訊飛appid填入\voicemodule\src\main\res\values\strings.xml的app_id中。如下圖所示: ![](https://box.kancloud.cn/ec574cf160d7635288c1f718fb88b254_279x322.png) ![](https://box.kancloud.cn/27f5f438bf7fc127428926cdd3dce16e_1163x346.png) 然后,通過語音控制類的VoiceMediator的 ~~~ /** 進入/退出喚醒模式 */ public void setWakeUpMode(boolean flag) /** 打開喚醒 */ public void startWakeup() /** 停止喚醒 */ public void stopWakenup() ~~~ 可以對語音喚醒進行控制。
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看