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

TTS標準接口

實時工作流支持您按照我們提供的標準協議來接入文本轉語音(TTS)模型。

自研TTS標準接口

您需要實現一個公網可訪問的HTTP流式數據傳輸服務,按照我們定義的輸入輸出規范,封裝好您的文本轉語音模型,即可將您的自研TTS添加到工作流中。

  1. 首先您需要在編排管理控制臺中的TTS 文字轉語音節點中,配置以下參數:

名稱

類型

必填

描述

示例值

請求服務地址

String

自研模型HTTPS接口地址

https://www.abc.com

Token

String

服務校驗令牌

AUJH-pfnTNMPBm6iWXcJAcWsrscb5KYaLitQhHBLKrI

碼率

Integer

僅支持48000

48000

  1. 在實時工作流運行期間,我們會按照以下格式,組裝表單數據,通過Post請求來訪問您配置的自研文本轉語音模型HTTPS地址,輸入參數如下:

名稱

類型

必填

描述

示例值

Text

String

語音文本

你好

SampleRate

Integer

碼率

48000

Token

String

服務校驗令牌

AUJH-pfnTNMPBm6iWXcJAcWsrscb5KYaLitQhHBLKrI

ExtendData

String

提交自定義TTS拓展信息字段,會包含實例Id,以及啟動實例時您傳入的UserData業務字段數據。

{'InstanceId':'68e00b6640e*****3e943332fee7','ChannelId':'123','SentenceId':'3',UserData':'{"aaaa":"bbbb"}'}

  • InstanceId

String

實例ID信息

68e00b6640e*****3e943332fee7

  • ChannelId

String

房間ID信息

123

  • SentenceId

Int

問答ID信息

說明

對于用戶的同一次提問,智能體回答會使用相同的ID信息。

3

  • UserData

String

啟動實例時您傳入的UserData業務字段數據

{"aaaa":"bbbb"}

說明

您需要將生成的對應音色以及采樣率的音頻源流PCM通過HTTP流式響應,分段發送給我們的服務,我們將實時地推送到后續節點當中。

自定義TTS Server

Python

自定義TTS Server代碼示例如下:

from aiohttp import web


async def stream_audio(request):
    data = await request.json()
    text = data.get('Text', "")
    token = data.get('Token', None)
    sample_rate = data.get('SampleRate', 48000)
    extend_data = data.get('ExtendData', "")
    print(f"text:{text}, token:{token}, sample_rate:{sample_rate}, extend_data:{extend_data}")
    # TODO:校驗Token是否合法

    response = web.StreamResponse(
        status=200,
        reason='OK',
        headers={'Content-Type': 'audio/mpeg'}
    )

    # 開始響應
    await response.prepare(request)

    # generate_tts_data 是一個協程,用于生成音頻數據
    async for chunk in generate_tts_data(text, sample_rate):
        await response.write(chunk)

    # 完成響應
    await response.write_eof()

    return response


async def generate_tts_data(text: str, sample_rate: int):
    # TODO: 調用TTS服務,生成對應音頻對應采樣率的音頻數據
    # 示例:從文件讀取音頻數據
    file_path = '/your_dir/sample.pcm'
    with open(file_path, 'rb') as f:
        while True:
            chunk = f.read(4096)  # 每次讀取4KB的數據
            if not chunk:
                break
            yield chunk

app = web.Application()
app.add_routes([web.post('/stream-audio', stream_audio)])

if __name__ == '__main__':
    web.run_app(app)

相關文檔

通過控制臺創建實時工作流模板