语音合成TTS(Text-To-Speech,从文本到语音)
一、核心概念
1、TTS(Text-To-Speech,从文本到语音)
我们比较熟悉的ASR(Automatic Speech Recognition),是将声音转化为文字,可类比于人类的耳朵。
而TTS是将文字转化为声音(朗读出来),类比于人类的嘴巴。
大家在siri等各种语音助手中听到的声音,都是由TTS来生成的,并不是真人在说话。
TTS的实现方法,主要有2种:“拼接法”和“参数法”
2、拼接法
1)定义:从预先录制的大量语音中,选择所需的基本单位拼接而成。这样的单位可以是音节、音素等等;为了追求合成语音的连贯性,也常常使用双音子(从一个音素的中央到下一个音素的中央)作为单位。
2)优点:语音质量较高
3)缺点:数据库要求太大。一般需要几十个小时的成品预料。企业级商用的话,需要至少5万句,费用成本在几百万元。
3、参数法
1)定义:根据统计模型来产生每时每刻的语音参数(包括基频、共振峰频率等),然后把这些参数转化为波形。
主要分为3个模块:前端处理、建模和声码器。
前端做的事情,是把文本进行解析,决定每个字的发音是什么,这句话用什么样的语气语调,用什么样的节奏来读,哪些地方是需要强调的重点,等等。常见的语气相关的数据描述包含但不限于下面这些:韵律边界,重音,边界调,甚至情感。 还有更多的信息甚至是难以客观描述的,目前的算法只能暂且忽略。
注:拼接法和参数法,都有前端模块,拼接和参数的区别主要是后端声学建模方法的区别。
2)优点:数据库要求相对较小一些。
如果只需要出声(做demo),大概500句就可以,但是效果肯定不行。
通用TTS,一般至少需要5000句,6个小时(一般录制800句话,需要1个小时)。——从前期的准备、找人、找录音场地、录制、数据筛选、标注,最终成为“可以用的数据”,可能至少需要3个月。(讯飞在各方面比较成熟,用时会短很多)。
个性化TTS,大多数是用“参数”方法的。(adobe、微软也有尝试过拼接法,不过相对参数方法来说不是太成熟,效果也并不是太通用)。
3)缺点:质量比拼接法差一些。因为受制于发声算法,有损失。
因为主要弱点和难点就是声码器。声码器的作用是复现声音信号,难在重现声音细节,并且让人听不出各种杂音、沉闷、机械感等等。目前常见的声码器都是对声音信号本身作各种理论模型以及简化假设,可以说对细节的描述近似于忽略。
而DeepMind的wavenet,基本解决了声码器的问题。因为他们直接对语音样本进行预测,不依赖任何发音理论模型。最后出来的音质细节十分丰富,基本达到了与原始语音类似的音质水准(所谓质量提高了50%,就是这里)。而且几乎可以对任意声音建模(这就太牛了)。目前wavenet的缺陷是计算量问题,速度太慢。大概100倍实时的量级,所以没有办法直接实用。
今年开始火起来的end-to-end的TTS建模方法,加上wavenent的声码器思想,才是未来TTS的发展方向。
4、TTS的评判标准
1)主观测试
A)MOS(Mean Opinion Scores),专家级评测(主观);1-5分,5分最好。
微软小冰公开宣传是4.3分,但有业内朋友认为,也不能据此就说其“绝对”比科大讯飞好,因为每次评审的专家人选都不一样。说白了,目前整个AI行业内,还是各家说自己好的节奏。
B)ABX,普通用户评测(主观)。让用户来视听两个TTS系统,进行对比,看哪个好。
C)每次主观测评应该有区分。比如这次着重听多音字,下次主要听语气词等。
2)客观测试
A)对合成系统产生的声学参数进行评估,一般是计算欧式距离等(RMSE,LSD)
B)对合成系统工程上的测试:实时率(合成耗时/语音时长),首包响应时间(用户发出请求到用户感知到的第一包到达时间)。
二、当前技术边界
1、通用TTS
1)在用户预期不苛刻的场景(APP/硬件),能满足商业化需求,比如语音助手/滴滴/高德/智能音箱/机器人);但如果用户预期非常高的话,是很难满足的,因为还是会有“机器感/机械感”,不能非常自然的模拟人声。
2)行业各家公司的产品效果差不多,都基本能商用;当然,讯飞会稍好一些。
2、个性化TTS
1)在用户预期不苛刻的场景,能“基本”满足商业化需求,但是效果没通用TTS那么好。但如果用户预期非常高的话,是满足不了的。
2)目前行业内能成熟商用的,主要还是科大讯飞。
3、情感TTS
1)目前业界的情感合成更多了,是因为数据本身变多了、更有节奏了,超过了传统的播音风格,但并不是真正的“喜怒哀乐”等情感合成(想高兴就高兴的这种智能)。
2)在情感TTS的理论方面,学术界是有储备的,但是,整个行业都没怎么做(或者没做好),是因为情感TTS很依赖“情感意图识别”,“情感特征挖掘”、“情感数据”以及“情感声学技术”等,是个系统工程。其中第1点,即是和自然语言处理相关,比如需要知道“什么时侯该高兴或悲伤”。
三、瓶颈和机会
1、基础技术
1)end-to-end的TTS建模方法,加上wavenent的声码器思想。(来源:https://www.zhihu.com/people/meng-meng-55-13/answers );
2)据报道,百度的Deep Voice团队(在美国硅谷的AI Lab),实时语音合成神经网络系统(Real-Time Neural Text-to-Speech for Production)比 WaveNet 要快 400 倍。
3)如何让离线版效果达到在线版水平。很多客户希望(奢望)有离线版本,并且效果和在线版本一样好。。。
2、数据缺乏
一方面,特别是个性化TTS,需要数据量更大。比如默认男孩声音,要转成女孩,就比较难。另一方面,数据的获取(制作)成本和周期,也是各家在初期的竞争着力点。
3、人才匮乏:不仅没法跟NLP、CV等热门AI人才比,就算跟同样不算热门的ASR比,TTS的人才都还要少一些。
4、产品化难度:由于技术限制,现阶段不可能有非常完美的TTS效果,所以
1)尽量选择用户预期不苛刻的场景,或者在产品体验设计时,管理好用户预期。(比如打车软件,郭德纲/林志玲的声音,差不多就行)
2)选择“参数法”还是“拼接法”,和公司的技术储备、成本、以及产品目标相关。在垂直领域,现有的TTS技术(参数或者拼接)都可以针对产品做得很好。现在行业还没有太好的效果,很大原因是因为产品经理还没有深入介入,有很多细节的坑要踩~未来一定会有惊艳的产品出现。
3)体验细节设计,和一般互联网产品很不同,比如:
A)文案设计,非常重要;因为在语音交互场景,不能太长,用户没耐心和时间听完的。
B)可以加入背景音乐,掩盖杂音等细节瑕疵。
C)特殊场景,还有有特别的需求,比如远场TTS,和戴耳机场景,还会区别。
D)中英文混合TTS。比如用户想播首英语歌曲,困难在于:所有中文的发音当中,中文和英文合拍念出来是很难的,为什么呢?因为往往录音的人。录中文是一批人,录英文又是一批人。两种语言结合起来,再用机器学习学出来,声音就会变得非常怪。小雅音箱找到了一个能够和中文发音很像的女孩子,录了很多英语的音。
5、商业化压力
1)如果要有足够的市场竞争力,至少需要12个月的时间,2~6人团队,几百万资金投入(1个GPU一年十万,支持并发只有几十个)。并且,大公司的先发优势巨大,小公司必须切细分场景。
2)我个人认为,个性化TTS、情感TTS会在各细分场景得到更大的应用,比如知识付费、明星IP、智能硬件、机器人等。
附:相关资料
1、文章
1)《目前,人工智能语音在说中文时的语气感觉上还比较机械,怎样使人工智能语音的语气更自然一些?》https://www.zhihu.com/question/50240209/answer/156842223
2)《如何评价谷歌下一代语音合成系统WaveNet?》https://www.zhihu.com/question/50509644/answer/167870206
3)《TTS(Text-To-Speech)的原理是什么?》https://www.zhihu.com/question/26815523
4)《百度Deep Voice作者与Bengio团队探讨五大技术细节,端到端的语音合成还有多远?》http://t.cn/RoUvHAg
2、产品或视频
1)讯飞的2个APP:配音阁、讯飞快听
2)百度飞桨
转: https://blog.csdn.net/weixin_44489823/article/details/90576928
https://blog.csdn.net/weixin_41809530/article/details/119910578