非流式语音合成和流式语音合成

文章探讨了语音合成技术的两种形式——非流式和流式语音合成,强调流式语音合成在实时性上的优越性,尤其适合语音交互场景。流式合成能减少用户等待时间,提高体验,而实时率是衡量其性能的关键指标。此外,文章还提到了云端和离线语音合成的适用场景,其中离线语音合成为语音交互提供了更好的实时响应。
摘要由CSDN通过智能技术生成

语音合成技术:https://zhuanlan.zhihu.com/p/113282101
流式语音合成技术揭秘与实践
1、非流式语音合成,一次性输入文字,一次性输出语音,注重语音合成系统的 整体运算速度 ,不适合做语音交互;流式语音合成,可以对输入文本进行分词断句、声学模型和声码器局部合成语音特征和音频,分段传回合成的音频,这种语音合成方式主要关注 首包响应时间 ,首包响应时间越短,用户就会越快收到响应,用户等待时间减少,就不会因为等待回应而失去耐心,因此整体体验感更好,更适合作为语音交互场景的语音合成方案。

2、流式语音合成和语音合成都是语音合成的一种形式,但两者之间存在一定的区别。
语音合成是将文本转换成语音的过程。通常,输入一段文字,语音合成系统会生成一个完整的音频文件,然后再将其播放出来。这种方式音频质量高,但需要等待音频文件生成完毕后才能播放。
而流式语音合成则是能够实时、动态地将文本转换成语音。这种方式可以边输入边输出,无需等待所有音频文件生成完毕,而且可以动态地调整音频的参数,如语速、音调等。它适用于需要实时将文本转换成语音的场合,比如在线客服语音回答、在线语音翻译等。
总之,语音合成更偏向于生成 complete 的结果,而流式语音合成则更适合于一边生成结果一边响应

3、在语音合成中,合成方式分为非流式合成和流失合成,非流失合成指的是一次性传入文本,一次性返回合成的文本音频;流式合成指的是文本传输给TTS时,TTS会分段传回合成的音频,这样可以减少语音合成的等待时间,在播报的同时也在合成,不用等到整段音频合成完再进行播报,所以对于语音合成时间的一个指标就是实时率。实时率等于文字合成所需时长除以文字合成的音频总时长,下面是实时率的计算公式:为什么讲实时率会说到非流失合成和流式合成,因为在流式合成场景中,开始合成的时候也就已经开始播报了,音频合成完成也就播报完成了,不会产生等待的过程,这种过程主要用于语音交互的场景,智能机器人收到语音信号之后,马上就可以给予答复,不会让用户等太久。所以为了确保用户的最佳体验,要求“文字合成所需时长”≤“文字合成出的音频时长”,也就是实时率要小于等于1 。

4、非流式合成适合语音输出,流式合成适合语音交互
语音合成分为非流式合成和流式合成,两者在实时性上有所不同。非流式语音合成,一次性输入文字,一次性输出语音,注重语音合成系统的整体运算速度,不适合做语音交互;流式语音合成,可以对输入文本进行分词断句、声学模型和声码器局部合成语音特征和音频,分段传回合成的音频,这种语音合成方式主要关注首包响应时间,首包响应时间越短,用户就会越快收到响应,用户等待时间减少,就不会因为等待回应而失去耐心,因此整体体验感更好,更适合作为语音交互场景的语音合成方案。

语音交互场景下,离线语音合成为更好的选择
目前,语音合成系统分为云端语音合成和离线语音合成。云端语音合成主要配套端到端或多层神经网络算法,语音输出质量高、算力强,但实时性更差,不适于语音交互;近年来,离线语音合成算法和算力得到逐步更新,一些参数化的合成方案质量也可达到一定的水平,适合于合成语音的交互类场景。

2 语音合成的基本流程
本教程主要讲解基于深度学习的语音合成技术,流水线包含 文本前端(Text Frontend)、声学模型(Acoustic Model) 和 声码器(Vocoder) 三个主要模块:

文本前端模块将原始文本转换为字符/音素
声学模型将字符/音素转换为声学特征,如线性频谱图、mel 频谱图、LPC 特征等
声码器将声学特征转换为波形
在这里插入图片描述

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
当然,我可以为您提供一个使用Python编写的流式语音合成代码示例。您可以使用百度AI的语音合成API来实现这个功能。首先,您需要在百度AI开放平台上创建一个应用并获取API Key和Secret Key。然后,安装百度AI的Python SDK。 以下是一个基本的代码示例: ```python from aip import AipSpeech # 设置百度AI的API Key和Secret Key APP_ID = 'your_app_id' API_KEY = 'your_api_key' SECRET_KEY = 'your_secret_key' # 创建AipSpeech对象 client = AipSpeech(APP_ID, API_KEY, SECRET_KEY) # 打开音频文件 with open('input.txt', 'r') as f: text = f.read() # 设置可选参数 options = { 'spd': 5, # 语速,取值范围0-9,默认为5中语速 'vol': 7, # 音量,取值范围0-15,默认为5中音量 'per': 0 # 发音人选择,0为女声,1为男声,默认为女声 } # 调用语音合成接口 result = client.synthesis(text, 'zh', 1, options) # 保存合成音频文件 if not isinstance(result, dict): with open('output.mp3', 'wb') as f: f.write(result) ``` 在上面的代码中,替换`your_app_id`、`your_api_key`和`your_secret_key`为您在百度AI开放平台上创建应用后获得的实际值。将待合成的文字内容保存在`input.txt`文件中。可选参数`spd`、`vol`和`per`分别控制语速、音量和发音人选择,您可以根据自己的需求进行调整。 运行代码后,将会生成一个名为`output.mp3`的音频文件,即为合成后的语音。 请注意,该代码示例基于百度AI的语音合成API,您需要确保已正确安装百度AI的Python SDK,并且已经获得了合法的API Key和Secret Key。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值