Files
QingLong/AI/WxMini/alibabacloud-nls-python-sdk-dev/tests/test_stream_input_tts.py
2025-08-15 09:13:13 +08:00

64 lines
1.8 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

import nls
import pyaudio
import time
from tests.test_utils import TEST_ACCESS_TOKEN, TEST_ACCESS_APPKEY
test_text = [
"流式文本语音合成SDK",
"可以将输入的文本",
"合成为语音二进制数据,",
"相比于非流式语音合成,",
"流式合成的优势在于实时性",
"更强。用户在输入文本的同时",
"可以听到接近同步的语音输出,",
"极大地提升了交互体验,",
"减少了用户等待时间。",
"适用于调用大规模",
"语言模型LLM",
"流式输入文本的方式",
"进行语音合成的场景。",
]
if __name__ == "__main__":
player = pyaudio.PyAudio()
stream = player.open(format=pyaudio.paInt16, channels=1, rate=24000, output=True)
# 创建SDK实例
# 配置回调函数
def test_on_data(data, *args):
stream.write(data)
def test_on_message(message, *args):
print('on message=>{}'.format(message))
def test_on_close(*args):
print('on_close: args=>{}'.format(args))
def test_on_error(message, *args):
print('on_error args=>{}, message=>{}'.format(args, message))
sdk = nls.NlsStreamInputTtsSynthesizer(
token=TEST_ACCESS_TOKEN,
appkey=TEST_ACCESS_APPKEY,
on_data=test_on_data,
on_sentence_begin=test_on_message,
on_sentence_synthesis=test_on_message,
on_sentence_end=test_on_message,
on_completed=test_on_message,
on_error=test_on_error,
on_close=test_on_close,
callback_args=[],
)
# 发送文本消息
sdk.startStreamInputTts()
for text in test_text:
sdk.sendStreamInputTts(text)
time.sleep(0.05)
sdk.stopStreamInputTts()
stream.stop_stream()
stream.close()
player.terminate()