日本熟妇hd丰满老熟妇,中文字幕一区二区三区在线不卡 ,亚洲成片在线观看,免费女同在线一区二区

API詳情

流式文本語音合成

流式文本語音合成可以將流式文本合成為語音二進制數(shù)據(jù),并實時地、流式地返回結(jié)果。終端用戶可以聽到接近同步的語音輸出,從而極大地提升交互體驗,減少了等待時間。一個典型適用的場景是,將大規(guī)模語言模型(LLM)返回的流式文本,無需做任何處理(如拼接、整合等),直接送入流式文本語音合成服務,并得到實時音頻流。流式文本語音合成還具備如下特點:

  • 支持輸出PCM、WAV和MP3編碼格式的數(shù)據(jù)。

  • 支持流式發(fā)送文本。在同一會話中,可以分批次發(fā)送文本并接收音頻。所合成的音頻能夠?qū)崟r播放,且具有低延遲的特點。此外,每次發(fā)送的文本不需要構(gòu)成完整的單詞或句子,服務端將根據(jù)語義進行恰當?shù)臄嗑浜椭亟M。

  • 在同一個流式TTS會話中,單次合成不超過2千字符,總計不超過20萬字符,其中1個漢字算作2個字符,1個英文字母、1個標點或1個句子中間空格均算作1個字符。

  • 支持采用UTF-8編碼的文本輸入。

  • 支持設置不同場景的聲音。

前提條件

服務地址

訪問類型

說明

URL

外網(wǎng)訪問(默認北京地域)

所有服務器均可使用外網(wǎng)訪問URL(SDK中默認設置了外網(wǎng)訪問URL)。

北京:wss://nls-gateway-cn-beijing.aliyuncs.com/ws/v1

ECS內(nèi)網(wǎng)訪問

使用阿里云北京ECS(即ECS地域為華北2(北京)),可使用內(nèi)網(wǎng)訪問URL。 ECS的經(jīng)典網(wǎng)絡不能訪問AnyTunnel,即不能在內(nèi)網(wǎng)訪問語音服務;如果希望使用AnyTunnel,需要創(chuàng)建專有網(wǎng)絡在其內(nèi)部訪問。

說明

使用內(nèi)網(wǎng)訪問方式,將不產(chǎn)生ECS實例的公網(wǎng)流量費用。

關于ECS的網(wǎng)絡類型請參見網(wǎng)絡類型

北京:ws://nls-gateway-cn-beijing-internal.aliyuncs.com:80/ws/v1

服務交互流程說明

客戶端與服務端的交互流程分為三個階段:

  • 階段一:客戶端會與服務端建立連接,并發(fā)送【StartSynthesis】指令,服務端返回響應的事件以確認建立連接成功,并可以正式開啟TTS語音合成服務。

  • 階段二:用戶循環(huán)調(diào)用發(fā)送文本接口,向服務端發(fā)送文本流。同時服務端返回語音合成數(shù)據(jù)以及相應的事件響應。

  • 階段三:文本發(fā)送完畢后,客戶端調(diào)用【StopSynthesis】指令,此時客戶端會等待服務端將所有的語音合成數(shù)據(jù)發(fā)送完畢后斷開連接。

image

API接口說明

說明

本文僅提供SDK API說明,此外您還可以通過WebSocket協(xié)議方式接入,詳情參考WebSocket協(xié)議說明

  • startStreamInputTts:與服務端進行websocket建連操作,并完成回調(diào)、參數(shù)設置等操作

    /**
     * 初始化并建連,開始流式語音合成任務
     * @param callback:事件監(jiān)聽回調(diào),參見下文具體回調(diào)。
     * @param ticket:json string形式的鑒權參數(shù),參見下方參數(shù)設置
     * @param parameters:json string形式的初始化配置參數(shù),參見下方說明或接口說明:xxxxx
     * @param session_id:會話ID,可傳入32個字節(jié)的uuid,或傳入空內(nèi)容由SDK自動生成。
     * @return:參見錯誤碼:http://m.bestwisewords.com/document_detail/459864.html。
     */
    public synchronized int startStreamInputTts(INativeTtsCallback callback,
                                                String ticket,
                                                String parameters
                                                String session_id);
    /**
     * 與服務端完成建鏈,并開始流式語音合成任務
     * @param ticket:json string形式的鑒權參數(shù),參見下方說明或接口說明:xxxxx
     * @param parameters:json string形式的初始化配置參數(shù),參見下方說明或接口說明:xxxxx
     * @param session_id:會話ID,可傳入32個字節(jié)的uuid,或傳入空內(nèi)容由SDK自動生成。
     * @param level:log打印級別,值越小打印越多。
     * @param save_log:是否保存log為文件,存儲目錄為ticket中的debug_path字段值。
     * @return:參見錯誤碼:http://m.bestwisewords.com/document_detail/459864.html。
     */
    - (int) startStreamInputTts:(const char *)ticket 
                                parameters:(const char *)parameters 
                                sessionId:(const char *)sessionId 
                                logLevel:(int)logLevel 
    、                           saveLog:(BOOL)saveLog;
    /**
     * 開始語音轉(zhuǎn)寫:發(fā)送語音轉(zhuǎn)寫請求,同步接收服務端確認
     * @throws Exception
     */
    public void startSteamInputTTS()
    """
    開始語音轉(zhuǎn)寫:發(fā)送語音轉(zhuǎn)寫請求,同步接收服務端確認
    
    Parameters:
    -----------
    voice: str
        voice for text-to-speech, default is xiaoyun
    aformat: str
        audio binary format, support: 'pcm', 'wav', 'mp3', default is 'pcm'
    sample_rate: int
        audio sample rate, default is 24000, support:8000, 11025, 16000, 22050,
        24000, 32000, 44100, 48000
    volume: int
        audio volume, from 0~100, default is 50
    speech_rate: int
        speech rate from -500~500, default is 0
    pitch_rate: int
        pitch for voice from -500~500, default is 0
    ex: dict
        dict which will merge into 'payload' field in request
    """
    def startStreamInputTts(
        self,
        voice="longxiaochun",
        aformat="pcm",
        sample_rate=24000,
        volume=50,
        speech_rate=0,
        pitch_rate=0,
    )
    //本接口實際是鴻蒙系統(tǒng)的ArkTS語言
    /**
     * 初始化并建連,開始流式語音合成任務
     * @param callback:事件監(jiān)聽回調(diào),參見下文具體回調(diào)。
     * @param ticket:json string形式的鑒權參數(shù),參見下方參數(shù)設置
     * @param parameters:json string形式的初始化配置參數(shù),參見下方說明或接口說明:xxxxx
     * @param session_id:會話ID,可傳入32個字節(jié)的uuid,或傳入空內(nèi)容由SDK自動生成。
     * @param log_level:日志等級。
     * @param save_log:是否保存SDK內(nèi)的日志文件。
     * @return:參見錯誤碼:http://m.bestwisewords.com/document_detail/459864.html。
     */
    public startStreamInputTts( callback:INativeStreamInputTtsCallback,
    			ticket:string, 
                            parameters:string,
    			session_id:string, 
                            log_level:number,
    			save_log:boolean):number

    ticket參數(shù)設置說明

    參數(shù)

    類型

    是否必選

    說明

    url

    String

    服務地址,默認使用北京服務。

    app_key

    String

    管控臺創(chuàng)建項目的appkey。

    token

    String

    請確保該Token可以使用并在有效期內(nèi)。

    complete_waiting_ms

    Integer

    調(diào)用stop后等待STREAM_INPUT_TTS_EVENT_SYNTHESIS_COMPLETE的超時時間,單位ms,默認10s。

    parameter參數(shù)設置說明

    參數(shù)

    類型

    是否必選

    說明

    voice

    String

    發(fā)音人,默認是longxiaochun。

    format/aformat(python sdk)

    String

    音頻編碼格式,默認值:pcm。支持格式:pcm、wav、mp3。

    sample_rate

    String

    音頻采樣率,默認值:24000

    volume

    String

    朗讀音量,范圍是0~100,默認50。

    speech_rate

    String

    語速,范圍是-500~500,默認是0。

    pitch_rate

    String

    語調(diào),取值范圍:-500~500,默認值:0,值越大聲音越尖銳。

  • sendStreamInputTts:以流式的方式發(fā)送文本

    /**
     * 以流式的方式發(fā)送文本
     * @param text:從大模型當中生成的流式文本
     * @return:參見錯誤碼:http://m.bestwisewords.com/document_detail/459864.html。
     */
    public synchronized int sendStreamInputTts(String text);
    /**
     * 以流式的方式發(fā)送文本
     * @param text:從大模型當中生成的流式文本
     * @return:參見錯誤碼:http://m.bestwisewords.com/document_detail/459864.html。
     */
    - (int) sendStreamInputTts:(const char *)text;
    /**
     * 以流式的方式發(fā)送文本
     * @throws Exception
     * @param text:從大模型當中生成的流式文本
     */
    public void sendStreamInputTts(String text);
    """
    以流式的方式發(fā)送文本
    Parameters:
    -----------
    text: str
        utf-8 text
    """
    def sendStreamInputTts(self, text)
    //本接口實際是鴻蒙系統(tǒng)的ArkTS語言
    /**
     * 以流式的方式發(fā)送文本
     * @param text:從大模型當中生成的流式文本
     * @return:參見錯誤碼:http://m.bestwisewords.com/document_detail/459864.html。
     */
    public sendStreamInputTts(text:string):number
  • stopStreamInputTts:以阻塞的方式停止流式文本語音合成,并與服務端斷開websocket連接

    /**
     * 結(jié)束合成任務,通知服務端流入文本數(shù)據(jù)發(fā)送完畢,阻塞等待服務端處理完成,并返回所有合成音頻。阻塞超時可以通過start接口中的complete_waiting_ms設置
     * @return:參見錯誤碼:http://m.bestwisewords.com/document_detail/459864.html。
     */
    public synchronized int stopStreamInputTts()
    /**
     * 停止合成任務,等待收到剩余合成結(jié)果后返回
     * @return:參見錯誤碼:http://m.bestwisewords.com/document_detail/459864.html。
     */
    public synchronized int stopStreamInputTts()
    /**
     * 結(jié)束合成任務,通知服務端流入文本數(shù)據(jù)發(fā)送完畢,阻塞等待服務端處理完成,并返回所有合成音頻。阻塞超時可以通過start接口中的complete_waiting_ms設置
     */
    public void stopStreamInputTts()
    """
    停止合成任務,等待收到剩余合成結(jié)果后返回
    """
    def stopStreamInputTts(self)
    //本接口實際是鴻蒙系統(tǒng)的ArkTS語言
    /**
     * 結(jié)束合成任務,通知服務端流入文本數(shù)據(jù)發(fā)送完畢,阻塞等待服務端處理完成,并返回所有合成音頻。阻塞超時可以通過start接口中的complete_waiting_ms設置
     * @param flag_async:stop接口是否使用異步等待。若為true,則stop接口非阻塞直接返回;若為false,則stop接口會阻塞直到轉(zhuǎn)寫完成或者報錯。 推薦使用true。
     * @return:參見錯誤碼:http://m.bestwisewords.com/document_detail/459864.html。
     */
    public stopStreamInputTts(flag_async:boolean=true):number
  • 回調(diào)函數(shù)說明

    事件回調(diào)函數(shù):用于響應回調(diào)事件

    /**
     * 事件回調(diào)
     * @param event:回調(diào)事件,參見如下事件列表。
     * @param task_id:請求的任務ID,每次調(diào)用一個新ID。
     * @param session_id:請求的會話ID。
     * @param ret_code:參見錯誤碼,出現(xiàn)TTS_EVENT_ERROR事件時有效,可查閱http://m.bestwisewords.com/document_detail/459864.html。。
     * @param error_msg:當產(chǎn)生錯誤碼時,返回錯誤信息。
     * @param timestamp:時間戳信息。
     * @param all_response:返回的完整json格式信息。
     */
    void onStreamInputTtsEventCallback(StreamInputTtsEvent event,
                                       String task_id, String session_id, 
                                       int ret_code, String error_msg,
                                       String timestamp, String all_response);
    /**
     * 事件回調(diào)
     * @param event:回調(diào)事件,參見如下事件列表。
     * @param task_id:請求的任務ID,每次調(diào)用一個新ID。
     * @param session_id:請求的會話ID。
     * @param ret_code:參見錯誤碼,出現(xiàn)TTS_EVENT_ERROR事件時有效,
     *   可查閱http://m.bestwisewords.com/document_detail/459864.html。。
     * @param error_msg:當產(chǎn)生錯誤碼時,返回錯誤信息。
     * @param timestamp:時間戳信息。
     * @param all_response:返回的完整json格式信息。
     */
    - (void)onStreamInputTtsEventCallback:(StreamInputTtsCallbackEvent)event 
                                           taskId:(char*)taskid 
                                           sessionId:(char*)sessionId 
                                           ret_code:(int)ret_code 
                                           error_msg:(char*)error_msg 
                                           timestamp:(char*)timestamp 
                                           all_response:(char*)all_response;
    /**
     * 服務端檢測到了一句話的開始
     * @param response
     */
    abstract public void onSentenceBegin(
        StreamInputSpeechSynthesizerResponse response);
    
    /**
     * 服務端檢測到了一句話的結(jié)束,并返回這句話的起止位置與所有時間戳
     * @param response
     */
    abstract public void onSentenceEnd(
        StreamInputSpeechSynthesizerResponse response);
    /**
     * 合成結(jié)束
     * @param response
     */
    abstract public void onSynthesisComplete(
        StreamInputSpeechSynthesizerResponse response);
    /**
     * 失敗處理
     * @param response
     */
    abstract public void onFail(StreamInputSpeechSynthesizerResponse response);
    /**
     * 增量在response=>payload中返回時間戳
     * @param response
     */
    abstract public void onSentenceSynthesis(
        StreamInputSpeechSynthesizerResponse response);
    //本接口實際是鴻蒙系統(tǒng)的ArkTS語言
    /**
     * 事件回調(diào)
     * @param event:回調(diào)事件,參見如下事件列表。
     * @param task_id:請求的任務ID,每次調(diào)用一個新ID。
     * @param session_id:請求的會話ID。
     * @param ret_code:參見錯誤碼,出現(xiàn)TTS_EVENT_ERROR事件時有效,可查閱http://m.bestwisewords.com/document_detail/459864.html。。
     * @param error_msg:當產(chǎn)生錯誤碼時,返回錯誤信息。
     * @param timestamp:時間戳信息。
     * @param all_response:返回的完整json格式信息。
     */
    onStreamInputTtsEventCallback(event:StreamInputTtsEvent, 
                                    task_id:string, 
                                    session_id:string,
    				ret_code:number, 
                                    error_msg:string, 
                                    timestamp:string,
    				all_response:string):void;

    數(shù)據(jù)回調(diào)函數(shù):用于語音合成數(shù)據(jù)返回

    /**
     * 語音合成流式數(shù)據(jù)返回
     * @param data:合成的音頻數(shù)據(jù),寫入播放器。
     */
    void onStreamInputTtsDataCallback(byte[] data);
    /**
     * 當開始識別時,此回調(diào)被連續(xù)調(diào)用,App需要在回調(diào)中進行語音數(shù)據(jù)填充,語音數(shù)據(jù)來自App的錄音
     * @param data: 合成的語音數(shù)據(jù),寫入播放器
     * @param len: 合成的語音長度
     */
    - (void)onStreamInputTtsDataCallback:(char*)data len:(int)len;
    /**
    * 接收到語音合成音頻數(shù)據(jù)流
    * @param message 二進制音頻數(shù)據(jù)
    */
    abstract public void onAudioData(ByteBuffer message);
    //本接口實際是鴻蒙系統(tǒng)的ArkTS語言
    /**
     * 語音合成流式數(shù)據(jù)返回
     * @param data:合成的音頻數(shù)據(jù),寫入播放器。
     */
    onStreamInputTtsDataCallback(data:ArrayBuffer|null):void;

移動端SDK回調(diào)事件說明

名稱

說明

TTS_EVENT_SYNTHESIS_STARTED

建連成功,語音合成準備開始,準備播放。對應startStreamInputTts。

TTS_EVENT_SENTENCE_BEGIN

服務端檢測到了一句話的開始。

TTS_EVENT_SENTENCE_SYNTHESIS

有新的合成結(jié)果返回。

TTS_EVENT_SENTENCE_END

服務端檢測到了一句話的結(jié)束,返回該句的全量時間戳。

TTS_EVENT_SYNTHESIS_COMPLETE

語音合成結(jié)束,合成數(shù)據(jù)已全部下發(fā)。本輪交互終止。

TTS_EVENT_TASK_FAILED

語音合成發(fā)生錯誤

Python回調(diào)函數(shù)在創(chuàng)建對象時作為參數(shù)配置,說明見下表:

參數(shù)

參數(shù)說明

on_data

當存在合成數(shù)據(jù)后的回調(diào)參數(shù)。回調(diào)參數(shù)包含以下兩個:

  • 對應start方法中aformat的二進制音頻數(shù)據(jù)

  • 用戶自定義參數(shù)

其中,用戶自定義參數(shù)為下方callback_args字段中返回的參數(shù)內(nèi)容。

on_sentence_begin

收到SentenceBegin事件時回調(diào)。回調(diào)參數(shù)包含以下兩個

  • JSON形式的字符串

  • 用戶自定義參數(shù)

其中,用戶自定義參數(shù)為下方callback_args字段中返回的參數(shù)內(nèi)容。

on_sentence_synthesis

收到SentenceSynthesis事件時回調(diào)。回調(diào)參數(shù)包含以下兩個

  • JSON形式的字符串

  • 用戶自定義參數(shù)

其中,用戶自定義參數(shù)為下方callback_args字段中返回的參數(shù)內(nèi)容。

on_sentence_end

收到SentenceEnd事件時回調(diào)。回調(diào)參數(shù)包含以下兩個

  • JSON形式的字符串,包含這句話的起止位置與所有時間戳

  • 用戶自定義參數(shù)

其中,用戶自定義參數(shù)為下方callback_args字段中返回的參數(shù)內(nèi)容。

on_complete

收到SynthesisCompleted事件時回調(diào)。回調(diào)參數(shù)包含以下兩個

  • JSON形式的字符串

  • 用戶自定義參數(shù)

其中,用戶自定義參數(shù)為下方callback_args字段中返回的參數(shù)內(nèi)容。

on_error

當SDK或云端出現(xiàn)錯誤時的回調(diào)參數(shù)。回調(diào)參數(shù)包含以下兩個:

  • JSON形式的字符串

  • 用戶自定義參數(shù)

其中,用戶自定義參數(shù)為下方callback_args字段中返回的參數(shù)內(nèi)容。

on_close

當和云端連接斷開時的回調(diào)參數(shù)。回調(diào)參數(shù)為用戶自定義參數(shù),即用戶自定義參數(shù)為下方callback_args字段中返回的參數(shù)內(nèi)容。

常見SDK錯誤碼

更多錯誤碼詳情參見錯誤碼查詢

狀態(tài)碼

狀態(tài)消息

原因

解決方案

144500

TTS_STREAM_INPUT_INTERNAL_WRONG_STATE

內(nèi)部狀態(tài)錯誤,調(diào)用內(nèi)部指令和狀態(tài)不匹配

請檢查是否存在下述錯誤:

  1. 外部調(diào)用順序錯誤

  2. 收到Failed之后繼續(xù)調(diào)用接口。

144501

TTS_STREAM_INPUT_SEND_REQUEST_FAIL

發(fā)送websockt數(shù)據(jù)失敗

請檢查Websocket連接是否正常。

144502

TTS_STREAM_INPUT_START_TIMEOUT

流式TTS調(diào)用start后10秒未收到started指令超時

請檢查是否存在下述錯誤:

  1. start發(fā)送失敗,請重試。

  2. 請檢查連接配置(appkey,url,token)是否正確。

144503

TTS_STREAM_INPUT_STOP_TIMEOUT

流式TTS調(diào)用stop后等待complete指令超時

TTS服務卡死或連接中斷,聯(lián)系技術人員排查。

144504

TTS_STREAM_INPUT_INITIALIZED_JSON_INVALID

C++ SDK初始化參數(shù)解析失敗

請檢查輸入字符串JSON格式。

144505

TTS_STREAM_INPUT_NOT_CONNECTED

流式TTS未成功建連就調(diào)用其他API接口

請在調(diào)用connect接口并成功建連后再調(diào)用其他接口。

144506

TTS_STREAM_INPUT_MISS_VOICE

沒有設定說話人

說話人為必需配置參數(shù)。

144507

TTS_STREAM_INPUT_REQUEST_IS_NULL

request為空,初始化失敗

請重新嘗試用connect建聯(lián)。