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