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

4 months ago
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()