You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

64 lines
1.8 KiB

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

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()