图片展示
搜索

技术专区为您提供行业知识、功能解释、设置常见问题

TTS是什么意思?微软tts语音合成引擎安卓版下载


TTS是什么意思?

 

TTS是Text To Speech的缩写,即“从文本到语音”,是人机对话的一部分,让机器能够说话。是指一项语音合成技术。

  

语音合成是将人类语音用人工的方式所产生。若是将电脑系统用在语音合成上,则称为语音合成器,而语音合成器可以用软/硬件所实现。

  

文字转语音系统则是将一般语言的文字转换为语音,其他的系统可以描绘语言符号的表示方式,就像音标转换至语音一样。

  

TTS的含义有很多:Track & Trace system 双向追溯系统、Text To Speech的缩写,即“从文本到语音”、语音合成技术(Text To Speech)……

 

-------------------------------- 

TTS语音合成引擎概述:

  TTS是Text To Speech的缩写,即“从文本到语音”。它是同时运用语言学和心理学的杰出之作,在内置芯片的支持之下,通过神经网络的设计,把文字智能地转化为自然语音流。TTS技术对文本文件进行实时转换,转换时间之短可以秒计算。在其特有智能语音控制器作用下,文本输出的语音音律流畅,使得听者在听取信息时感觉自然,毫无机器语音输出的冷漠与生涩感。TTS语音合成技术即将覆盖国标一、二级汉字,具有英文接口,自动识别中、英文,支持中英文混读。所有声音采用真人普通话为标准发音,实现了120-150个汉字/秒的快速语音合成,朗读速度达3-4个汉字/秒,使用户可以听到清晰悦耳的音质和连贯流畅的语调。现在有少部分MP3随身听具有了TTS功能。

        TTS是语音合成应用的一种,它将储存于电脑中的文件,如帮助文件或者网页,转换成自然语音输出。TTS可以帮助有视觉障碍的人阅读计算机上的信息,或者只是简单的用来增加文本文档的可读性。现在的TTL应用包括语音驱动的邮件以及声音敏感系统。TTS经常与声音识别程序一起使用。现在有很多TTS的产品,包括微软tts ,Read Please 2000, Proverbe Speech Unit,以及Next Up Technology的TextAloud。朗讯、 Elan、以及 AT&T都有自己的语音合成产品。

-------------------------------- 

语音合成TTS发展历史:

  1、17世纪法国人研发机械式的说话装置,直到19世纪,贝尔实验室对于电子语音合成技术的研究,才开启近代语音合成技术的发展。

  2、贝尔实验室在1939年制作出***个电子语音合成器VODER,是一种利用共振峰原理所制作的合成器。

  3、1960年,瑞典语言学家G. Fant则提出利用线性预测编码技术(LPC)来作为语音合成分析技术,并推动了日后的发展。

  4、1980年代Moulines E和Charpentier F提出新的语音合成算法PSOLA,此技术可以合成比较自然的语音。

-------------------------------- 

TTS语音合成引擎解析

        TTS文语转换用途很广,包括电子邮件的阅读、IVR系统的语音提示等等,目前IVR系统已广泛应用于各个行业(如电信、交通运输等)。

        TTS所用的关键技术就是语音合成(SpeechSynthesis)。早期的TTS一般采用专用的芯片实现,但主要用在家用电器或儿童玩具中。

        而基于微机应用的TTS一般用纯软件实现,主要包括以下几部分:

        ●文本分析-对输入文本进行语言学分析,逐句进行词汇的、语法的和语义的分析,以确定句子的低层结构和每个字的音素的组成,包括文本的断句、字词切分、多音字的处理、数字的处理、缩略语的处理等。

        ●语音合成-把处理好的文本所对应的单字或短语从语音合成库中提取,把语言学描述转化成言语波形。

        ●韵律处理-合成音质(Qualityof Synthetic Speech)是指语音合成系统所输出的语音的质量,一般从清晰度(或可懂度)、自然度和连贯性等方面进行主观评价。清晰度是正确听辨有意义词语的百分率;自然度用来评价合成语音音质是否接近人说话的声音,合成词语的语调是否自然; 连贯性用来评价合成语句是否流畅。

        要合成出高质量的语音,所采用的算法是极为复杂的,因此对机器的要求也非常高。算法的复杂度决定了目前微机并发进行多通道TTS的系统容量。

-------------------------------- 

语音合成引擎TTS在CTI的应用中的基本构架

        在一般的CTI应用系统中,都会有IVR(交互式语音应答系统)。IVR系统是呼叫中心的重要组成部分,通过IVR系统,用户可以利用音频按健电话输入信息,从系统中获得预先录制的数字或合成语音信息。具有TTS功能的IVR可以加快服务速度,节约服务成本,使IVR为呼叫者提供7*24小时的服务。

        目前常见的IVR系统大都是通用的工控机平台上插入语音板卡组成,并支持中文语音合成TTS等技术。

        一个典型的包含TTS服务的电话服务流程可分为:

        用户电话拨入,系统IVR响应,获得用户按键等信息。

        IVR根据用户的按键信息,向数据库服务器申请相关数据。

        数据库服务器返回文本数据给IVR。

        IVR通过其TCP通讯接口,将需要合成的文本信息发送给TTS服务器。

        TTS服务器将用户文本合成的语音数据分段通过TCP通讯接口发送给IVR服务器。

        IVR服务器把分段语音数据组装成为独立的语音文件。

        IVR播放相应的语音文件给电话用户。

        一般的公网接入(IVR)大都采用工控机+语音板卡,而合成的语音数据则通过局域网传给IVR。这种结构只适用于简单的应用场合。

-------------------------------- 

中文TTS语音合成引擎系统

       包括中文语音处理和语音合成,利用中文韵律等相关知识对中文语句进行分词、词性判断、注音、数字符号转换,语音合成通过查询中文语音库得到语音。目前中文TTS系统,比较***的有:IBM,Microsoft 微软TTS,Fujitsu,科大讯飞等研究的系统。目前比较关键的就是中文韵律处理、符号数字、多音字、构词方面有较多的问题,需要不断研究,使得中文语音合成的自然化程度较高。

-------------------------------- 

微软语音合成(tts)服务申请和调用


1、申请账户:

https://azure.microsoft.com/zh-cn/free/

点击资源组,里面就有部署好的服务了

点击这里,可以获取 subscription_key,另外还有个就是位置service_region (上图就是east asia),这两个后面会用到。

2、调用服务

在完成微软azure服务账号申请后,就可以进行调用了。代码:

'''

After you've set your subscription key, run this application from your working

directory with this command: python TTSSample.py

'''

import os, requests, time

from xml.etree import ElementTree

# This code is required for Python 2.7

try: input = raw_input

except NameError: pass

'''

If you prefer, you can hardcode your subscription key as a string and remove

the provided conditional statement. However, we do recommend using environment

variables to secure your subscription keys. The environment variable is

set to SPEECH_SERVICE_KEY in our sample.

For example:

subscription_key = "Your-Key-Goes-Here"

'''

if 'SPEECH_SERVICE_KEY' in os.environ:

    subscription_key = os.environ['SPEECH_SERVICE_KEY']

else:

    print('Environment variable for your subscription key is not set.')

    exit()

class TextToSpeech(object):

    def __init__(self, subscription_key):

        self.subscription_key = subscription_key

        self.tts = input("What would you like to convert to speech: ")

        self.timestr = time.strftime("%Y%m%d-%H%M")

        self.access_token = None

    '''

    The TTS endpoint requires an access token. This method exchanges your

    subscription key for an access token that is valid for ten minutes.

    '''

    def get_token(self):

        fetch_token_url = "https://westus.api.cognitive.microsoft.com/sts/v1.0/issueToken"

        headers = {

            'Ocp-Apim-Subscription-Key': self.subscription_key

        }

        response = requests.post(fetch_token_url, headers=headers)

        self.access_token = str(response.text)

    def save_audio(self):

        base_url = 'https://westus.tts.speech.microsoft.com/'

        path = 'cognitiveservices/v1'

        constructed_url = base_url + path

        headers = {

            'Authorization': 'Bearer ' + self.access_token,

            'Content-Type': 'application/ssml+xml',

            'X-Microsoft-OutputFormat': 'riff-24khz-16bit-mono-pcm',

            'User-Agent': 'YOUR_RESOURCE_NAME'

        }

        xml_body = ElementTree.Element('speak', version='1.0')

        xml_body.set('{http://www.w3.org/XML/1998/namespace}lang', 'en-us')

        voice = ElementTree.SubElement(xml_body, 'voice')

        voice.set('{http://www.w3.org/XML/1998/namespace}lang', 'en-US')

        voice.set('name', 'en-US-Guy24kRUS') # Short name for 'Microsoft Server Speech Text to Speech Voice (en-US, Guy24KRUS)'

        voice.text = self.tts

        body = ElementTree.tostring(xml_body)

        response = requests.post(constructed_url, headers=headers, data=body)

        '''

        If a success response is returned, then the binary audio is written

        to file in your working directory. It is prefaced by sample and

        includes the date.

        '''

        if response.status_code == 200:

            with open('sample-' + self.timestr + '.wav', 'wb') as audio:

                audio.write(response.content)

                print("\nStatus code: " + str(response.status_code) + "\nYour TTS is ready for playback.\n")

        else:

            print("\nStatus code: " + str(response.status_code) + "\nSomething went wrong. Check your subscription key and headers.\n")

            print("Reason: " + str(response.reason) + "\n")

    def get_voices_list(self):

        base_url = 'https://westus.tts.speech.microsoft.com/'

        path = 'cognitiveservices/voices/list'

        constructed_url = base_url + path

        headers = {

            'Authorization': 'Bearer ' + self.access_token,

        }

        response = requests.get(constructed_url, headers=headers)

        if response.status_code == 200:

            print("\nAvailable voices: \n" + response.text)

        else:

            print("\nStatus code: " + str(response.status_code) + "\nSomething went wrong. Check your subscription key and headers.\n")

if __name__ == "__main__":

    app = TextToSpeech(subscription_key)

    app.get_token()

    app.save_audio()

    # Get a list of voices https://docs.microsoft.com/en-us/azure/cognitive-services/speech-service/rest-text-to-speech#get-a-list-of-voices

    # app.get_voices_list()

参考文档下载:

https://docs.microsoft.com/zh-cn/azure/cognitive-services/speech-service/

https://github.com/Azure-Samples/Cognitive-Speech-TTS/blob/28681c8292c95aebb36d3696b8822b4cd17c3c45/Samples-Http/OLD/Python/TTSSample.py

-------------------------------- 

TTS与CTI

        CTI技术使电信和计算机相互融合,克服了传统电信和计算机服务相对单一的缺点,将两者完美结合了起来。其应用领域非常广泛,任何需要语音、数据通信,特别是那些希望把计算机网与通信网结合起来完成语音数据信息交换的系统都会用到CTI技术。

        TTS即语音合成技术(Text To Speech),它涉及声学、语言学、数学信号处理技术、多媒体技术等多个学科技术,是中文信息处理领域的一项前沿技术,实现把计算机中任意出现的文字转换成自然流畅的语音输出。

        TTS在CTI系统中可以应用在IVR(交互式语音应答)服务器上,以提供语音交互式平台,为用户电话来访提供语音提示,引导用户选择服务内容和输入电话事务所需的数据,并接受用户在电话拨号键盘上输入的信息,实现对计算机数据库等信息资料的交互式访问。

        在IVR中应用TTS可以自动将文本信息转换为语音文件,或者实时地将文本信息合成语音并通过电话发布。实现文本与语音自动双向转换,以达到人与系统的自动交互,随时随地为客户服务。维护人员不必再人工录音,只须将电子文档引入系统中,系统可以自动将电子文档转换为语音信息播放给客户。数据库中存放的大量数据,无需事先进行录音,能够随时根据查询条件查出并合成语音进行播报,从而大大减少了座席人员的工作负担。

        那么应如何将TTS功能附加到CTI应用中呢?某些比较先进的交换平台,已经在交换机的内部实现了TTS的功能,并作为标准接口的一部分对外提供,业务开发商只需要简单的调用他们即可以在业务中使用该功能。

        对于未实现TTS功能的PBX,就需要业务开发商自己去选择合适的平台,在此基础上进行二次开发,即调用所选TTS平台提供的标准接口,实现语音合成功能。

        目前CTI已经成为全球发展***为迅猛的产业之一,每年以50%的速度增长,CTI如同计算机产业一样是一个金字塔形的产业链,从上到下会以至少20倍的幅度增值。TTS作为一种诱人的新技术,如果能很好的嵌入到增值业务的应用中去,必将形成一个更好的应用前景。

        杭州音通软件有限公司是由***教育部和浙江省人民政府联办并依托浙江大学而成立的高新技术公司,音通公司主要致力于计算机语音技术的研发并逐步开拓语音识别、语音流媒体传输等其它语音领域的研究。其核心技术(Intone_TTS)是具有自主知识产权的中文语音合成技术,在由浙江省科技厅组织的鉴定中被专家一致鉴定为国内领先地位,并已申请多项***专利。

        Intone_TTS是一套把文本信息转换为语音信息的开发工具包,为系统集成商、软件开发商提供了完备的接口函数和编程示例,使用户能够灵活的进行调用,并集成到其它应用系统中。接口需要语音合成运行库的支持,适合多种开发环境。开发者可以根据具体的应用场合进行选择。

        它能够对所有的汉字、英文、阿拉伯数字进行语音合成;

        支持繁体字及多音字的编辑;

        合成效果:自然、平滑;

        规范的函数调用接口,同时支持微软SAPI的调用;支持同步调用和异步调用方式;

        支持PCM Wave,uLaw/aLaw Wave,ADPCM,Dialogic Vox等多种语音格式;

        支持GB2312码(简体中文)、BIG5码(繁体)、UNICODE码;

        支持多路通道同时合成;

        支持Dialogic、东进、三汇等主流语音板卡;

-------------------------------- 

TTS漫谈

        TTS就是Text To Speech,文本转语音,文本朗读,差不多是一个意思。在语音系统开发中经常要用到。

        目前市场上的TTS很多,实现方式也各式各样,有的很昂贵,如科大讯飞,据说当初得到863计划的资助,有很高的技术;有的相对便宜,如捷通华声, InfoTalk;也有免费的,如微软的TTS产品。

        相对于ASR(Automatic Speech Recognition,自动语音识别)来说,实现一个TTS产品所需要的技术难度不算大,在我看来也就是个力气活。

        要是让我们来做一个能够把汉语句子朗读出来的TTS,我们会怎么做呢?

有一种***简单的TTS,就是把每个字都念出来,你会问,岂不要录制6千多个汉字的语音?幸运的是,汉语的音节很少,很多同音字。我们***多只是需要录制: 声母数×韵母数×4,(其实不是每个读音都有4声),这样算来,***多只需要录制几百个语音就可以了。

        在合成的时候需要一张汉字对应拼音的对照表,汉字拼音输入法也依赖这张表,可以在网上找到,不过通常没有4声音调,大不了自己加上,呵呵,要不怎么说是力气活呢。

        这样做出来的TTS效果也还可以,特别是朗读一些没有特别含义的如姓名,家庭住址,股票代码等汉语句子,听起来足够清晰。这要归功于我们伟大的母语通常都是单音节,从古代的时候开始,每个汉字就有一个词,表达一个意思。而且汉字不同于英语,英语里面很多连读,音调节奏变化很大,汉字就简单多了。

        当然,你仍然要处理一些细节,比如多音字,把“银行”读成“yin xing”就不对了;再比如,标点符号的处理,数字、字母的处理,这些问题对于写过很多程序的你,当然不难了。

        国内的一些语音板卡带的TTS,不管是卖钱的还是免费的,大体都是这样做出来的,也就是这样的效果。

        如果要把TTS的效果弄好一点,再来点力气活,把基本的词录制成语音,如常见的两字词,四字成语等,再做个词库和语音库的对照表,每次需要合成时到词库里面找。这样以词为单位,比以字为单位,效果自然是好多了。当然,这里面还是有个技术,就是分词的技术,要把复杂的句子断成合理的词序列,也有点技术。这也要怪新文化那些先驱们,当初倡导白话文,引进西文的横排格式、标点符号的时候,没有引进西文中的空格分词。不过即使分词算法那么不***,不那么准确,也问题不大,如前面所说,汉字是单音节词,把声音合起来,大体上不会有错。

        当然,科大讯飞的力气活又干的多了些,据说已经进化到以常用句子为单位来录音了,大家可以想像,这要耗费更多的力气,换来更好的效果。

        至于增加一些衔接处的“词料”,弄一些修饰性的音调,我认为是无关紧要的,对整体的效果改进不是太大。

        市面上商品化TTS一般还支持粤语,请个粤语播音员录音,把上面的力气活重做一遍就是了。

        再说句题外话,很多人觉得录音***找电台、电视台的播音员,其实找个你周围的女同事来录制,只要吐字清晰就可以了。在某种情况下,寻常声音比字正腔圆的新闻联播来得可爱。

        再来说说文本的标识,对于复杂文本,某些内容程序没有办法处理,需要标识出来。比如,单纯的数字“128”,是应该念成“一百二十八”还是“一二八”?解决办法通常是加入XML标注,如微软的TTS:"128"念成“一百二十八”,"128"将念成“一二八”。TTS引擎可以去解释这些标注。遗憾的是,语音XML标注并没有形成大家都完全认可的标准,基本上是各自一套。

        再说说TTS应用编程,微软的TTS编程接口叫SAPI,是COM接口,开发起来还是有点麻烦,还好MSDN的网站上资料很***。微软的TTS虽然免费,但其中文角色目前是个男声,声音略嫌混浊,感觉不爽。

        国内一般的厂家提供API调用接口,相对比较简单,可以方便地嵌入应用程序中去。

商品化的TTS还有个并发许可限制,就是限制同时合成的并发线程数,我觉得这个限制用处不大。无论哪种TTS,都可以将文本文件转换成语音文件,供语音卡播放。大部分应用句子比较短小,一般不会超过100个汉字,合成的时间是非常短的,弄个线程专门负责合成,其它应用向该线程请求就是了,万一句子很长,把它分解成多个短句子就是了,播放的速度总是比合成的速度慢。

        也很多应用是脱机合成,没有实时性要求,就更不必买多个许可了。

        更多情况下,我们甚至没有必要购买TTS,比如语音开发中常见的费用催缴,拨通后播放:“尊敬的客户,您本月的费用是:212元”,前面部分对所有客户都一样,录一个语音文件就是了,而数字的合成是很简单的,你只要录制好10个数字语音,再加上十,百,千,万,再加上金钱的单位“元”。

-------------------------------- 

TTS(Training+Tool+Scheme)超越计划

        针对目前成长型企业遇到的人力资源问题,立体化解决人力资源瓶颈、通过企业与专家共建、实现人才强企的人力资源方向的重大智业项目。为企业培养人力资源高级管理人才,提供先进人力资源管理工具,并协助企业建立现代人力资源战略规划。通过“培训(Training)+工具(Tool)+方案(Scheme)”的办法,为企业系统解决人力资源难点问题,进而搭建科学、完善的人力资源管理体系。


TTS是什么意思?微软tts语音合成引擎安卓版下载
TTS是什么意思? TTS是Text To Speech的缩写,即“从文本到语音”,是人机对话的一部分,让机器能够说话。是指一项语音合成技术。  语音合成是将人
长按图片保存/分享
图片展示

Call us

总机: 020-85261379 

销售/售后: 18144823824(微信同号)

图片展示

Address

国威工厂:中国·广东省·深圳市龙岗区坪地盛佳道2号

售后/维修:中国·广东省·广州市天河区 元岗路200号

图片展示

Email

ws824@82416.com

华北

——

北京 天津 济南 青岛 太原 长治 石家庄
电话/邮箱:beijing@82416.com

东北

——

哈尔滨 长春 沈阳 大连 大庆 呼和浩特
电话/邮箱:haerbin@82416.com

华东

——

上海 杭州 南京 苏州 温州 宁波 常州 无锡
电话/邮箱:shanghai@82416.com

西北

——

银川 兰州 西宁 乌鲁木齐 石嘴山 克拉玛依
电话/邮箱:lanzhou@82416.com

华南
——
  • 广州 深圳 海口 三亚 福州 厦门 南昌 赣州
  • 电话/邮箱:guangzhou@82416.com

西南
——

重庆 贵阳 成都 南宁 昆明 遵义 柳州 桂林
电话/邮箱:chongqing@82416.com

华中

——

长沙 岳阳 武汉 孝感 西安 咸阳 郑州 合肥
电话/邮箱:wuhan@82416.com

珠三角
————

珠海 东莞 佛山 汕头 惠州 中山 湛江 阳江
电话/邮箱:shenzhen@82416.com

Copyright © 广州普国贸易有限公司 国威程控电话交换机 All Rights Reserved 粤ICP备17026317号 公安备案号:44010602002433

在线客服
联系方式
总机
020-85261379
销售/项目
18144823824
二维码
二维码
销售/技术/维修
在线客服
添加微信好友,详细了解产品
使用企业微信
“扫一扫”加入群聊
复制成功
添加微信好友,详细了解产品
我知道了