那么,智能时代跟FreeSWITCH什么关系呢?严格来说,其实没什么关系。你看,我今天又标题党了。
FreeSWITCH是一个软交换系统,或者更科普一点说就是个电话系统。虽然在智能手机时代,更多的人都在使用互联网,上微信,但电话,永远是更方便更直接的交流方式。而FreeSWITCH里,跟AI搭边的,就是ASR和TTS。
FreeSWITCH很早的版本就有ASR和TTS接口。是的,FreeSWITCH本身其实并不做ASR和TTS。
那么,什么是ASR和TTS?
ASR的全称是Automatic Speech Recognition,即自动语音识别。TTS的全称是Text To Speech,即文本到语音的转换。可以看出,它们是相对的,说得再土一点就是「语音转文字」和「文字转语音」。
然而,ASR和TTS本来跟人工智能也没有关系。但是,在智能时代,它们就有了关系。我们先来看TTS。
据说早在17世纪就有法国人研发机械式的说话装置。直到19世纪,贝尔实验室对语音合成技术的研究,才开启年代语音合成技术的发展。1939年,贝尔实验室制作出第一个电子语音合成器VODER。是一種利用共振峰原理所制作的合成器。 1960年,瑞典語言学家G. Fant則提出利用线性预测编码技术(LPC)來作为语音合成分析技术,并推動了日后的发展。后來1980年代Moulines E和Charpentier F提出新的语音合成演算法PSOLA,此技术可以合成比较自然的语音。
伟大的物理学家与宇宙学家霍金离开我们了,但他的发音(用语音合成技术实现的)却永远留在了我们的脑子里。霍金21岁时患上肌肉萎缩性侧索硬化症(卢伽雷氏症),全身瘫痪,不能言语。
剑桥精益通讯公司(Cambridge Adaptive Communication)」的David Mason 帮他在电动轮椅子上装了一款语音合成器,据说是由加州电脑专家花托茲(Walt Woltosz)于1985年帮他研发的。发音很有机器人的感觉,而且还带有美国口音。
TTS的大力发展还是在20世纪90年代,随着计算机计算和存储能力的大幅提升,通过使用大语料库和波形拼接方法,可以合成高质量的人声。到了21世纪,语音合成技术更是飞速发展,音色和情感的加入,使合成的语音更加自然和有个性。
目前,最高水准的TTS应该是谷歌的Tacotron 2了:
https://research.googleblog.com/2017/12/tacotron-2-generating-human-like-speech.html
https://www.androidpolice.com/2017/12/28/googles-new-text-speech-system-sounds-convincingly-human/
嗯,我听了一直,确实难以分辨是否是机器还是真人发音了。
由于每篇文章只能放一个语音,因此,我将两段语音连在一起了。你能分辨出哪段是真人,哪是机器吗?
另外,上面我还附加了一段中文的Wavenet产生的语音。Tacotron 2应该也是基于Wavenet技术实现的。
再说ASR。ASR是人机交互很关键的一环。一直以来,ASR只是一个梦想和玩具,直到苹果手机上Siri的出现,才算真正进入了千家万户。
以下内容抄自维基百科:
早在计算机发明之前,自动语音识别的设想就已经被提上了议事日程,早期的声码器可被视作语音识别及合成的雏形。而1920年代生产的"Radio Rex"玩具狗可能是最早的语音识别器,当这只狗的名字被呼唤的时候,它能够从底座上弹出来[2]。最早的基于电子计算机的语音识别系统是由AT&T贝尔实验室开发的Audrey语音识别系统,它能够识别10个英文数字。其识别方法是跟踪语音中的共振峰。该系统得到了98%的正确率。[3]。到1950年代末,伦敦学院(Colledge of London)的Denes已经将语法概率加入语音识别中。
1960年代,人工神经网络被引入了语音识别。这一时代的两大突破是线性预测编码Linear Predictive Coding (LPC), 及动态时间规整Dynamic Time Warp技术。
语音识别技术的最重大突破是隐含马尔科夫模型Hidden Markov Model的应用。从Baum提出相关数学推理,经过Rabiner等人的研究,卡内基梅隆大学的李开复最终实现了第一个基于隐马尔科夫模型的大词汇量语音识别系统Sphinx。此后严格来说语音识别技术并没有脱离HMM框架。
说到卡内基梅隆大学,确实对TTS和ASR的贡献很大。FreeSWITCH内部的两个模块`mod_flite`(TTS)和`mod_pockerspinx`(ASR)底层库就都出自于这个大学的研究。
OK,好像终于回到我们的主题了。时间可以抹平一切。自从Siri出现后,好像市面上一下子出了一堆令人眼花燎乱的ASR产品。它们有一个共同的特点:都是出现在智能时代。
随着「大数据」的不断积累,「深度学习」和「神经网络」的不断进步,更「聪明」的ASR是历史进步的必然结果。
我们来看一下这些产品吧:
Siri
Nuance
Google Now
GCloud (google)
Watson (IBM)
Polly (Amazon)
Cortana (Microsoft)
迅飞语音
百度语音
阿里语音
腾迅语音
……
当然,FreeSWITCH并不仅仅能合成和识别语音,什么人脸啊,人民币啊,统统都能识别。还记得那篇「如何优雅地在夏威夷海滩上写代码」吗?
嗯,最后回到我们的主题。我们的工程师闲得腚疼,为每种提供在线语音API的服务写了一个ASR及(或)TTS接口的模块。看到语音识别需要VAD(Voice Activity Detection,嗯,比较低级的功能,就是检测你是不是在说话),就连夜写了一个VAD库。我跟他们说了,写归写,如果卖不出去,估计下个月工资要给他们发西北风了。
好在,万众期待的XSWITCH平台也即将对外发布了。很抱歉让很多朋友等了一年,但这次,我们有点认真了。