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