语音合成

java 语音合成并生成wav文件

岁酱吖の 提交于 2019-12-24 16:40:13
1.下载jacob文件,根据自己操作系统,将jacob-1.18-x64.dll文件复制到C:/windows/System32文件夹中 下载链接: https://pan.baidu.com/s/1mimoaBeFhzVMsGOLzsvpBw 提取码: wsfz 2.pom.xml引入依赖 <!--文字转语音--> <dependency> <groupId>com.hynnet</groupId> <artifactId>jacob</artifactId> <version>1.18</version> </dependency> 3.代码 import com.jacob.activeX.ActiveXComponent; import com.jacob.com.Dispatch; import com.jacob.com.Variant; public class ReadText { public static void main(String[] args) { // ActiveXComponent sap = new ActiveXComponent("Sapi.SpVoice"); //// // Dispatch是做什么的? // Dispatch sapo = sap.getObject(); try { // // 音量 0-100 // sap

语音合成以及语音识别

徘徊边缘 提交于 2019-12-23 17:39:05
AI开放平台: http://ai.baidu.com/ 图灵机器人: http://www.tuling123.com/ 语音合成以及语音识别: hecheng.py # 图灵机器人 import requests url = "http://openapi.tuling123.com/openapi/api/v2" data_dict = { "reqType":0, "perception": { "inputText": { "text": "北京" }, }, "userInfo": { "apiKey": "c3a9ba0d958a43658a5acdcae50c13ae", "userId": "jinwangbas" } } def tl(text,uid): data_dict["perception"]["inputText"]["text"] = text data_dict["userInfo"]["userId"] = uid res = requests.post(url,json=data_dict) res_json = res.json() return res_json.get("results")[0]["values"]["text"] goto_tuling.py 来源: https://www.cnblogs.com/shuai1993

语音机器人开发

耗尽温柔 提交于 2019-12-22 12:38:12
服务机器人缺少了语音交互的话,就会让人觉得不像个机器人。在当前非常多的服务机器人上,语音交互成为一个非常大的亮点。 当然如果我们从头做起,这样就太麻烦,还好当前有很多公司提供了解决方案。科大讯飞、百度语音等都提供了非常好的语音识别和语音合成工具。 1.1 简介 这里我采用图灵机器人作为语义理解的工具,搭建一个语音机器人。 具体可以参考图灵机器人官网http://www.tuling123.com/help/h_cent_andriodsdk.jhtml?nav=doc 大致框架如下: 1.2 概念解释 (1)语音识别:Automatic Speech Recognition(ASR),也称自动语音识别,其目标是将人类的语音中的词汇内容转换相应的文本。 (2)自然语言理解:Natural Language Understanding(NLU),俗称人机对话,是人工智能的分支学科。本学科通过电子计算机模拟人的语言交际过程,从而使计算机能理解和运用人类社会的自然语言,实现人机之间的自然语言通信,进而代替人的部分脑力劳动,包括查询资料、解答问题、摘录文献、汇编资料以及一切有关自然语言信息的加工处理。 (3)TRClient:TRClient 是一个封装了语音采集、处理、网络收发、语义理解等功能的语音识别和语义解析整体解决方案。 (4)应用程序:在开发中使用了 TRClient

论文翻译-语音合成:Tacotron 2

北战南征 提交于 2019-12-14 09:10:34
原论文地址:https://arxiv.org/abs/1712.05884 摘要 这篇论文描述了Tacotron 2, 一个直接从文本合成语音的神经网络架构。系统由两部分构成,一个循环seq2seq结构的特征预测网络,把字符向量映射到梅尔声谱图,后接一个WaveNet模型的修订版,把梅尔声谱图合成为时域波形。我们的模型得到了4.53的平均意见得分(MOS),而专业录制语音的MOS得分是4.58。为了验证模型设计,我们对系统的关键组件作了剥离实验研究,并且评估了使用梅尔频谱替代语言学、音长和F0特征作为WaveNet输入带来的影响。我们进一步展示了使用紧凑的声学中间表征可以显著地简化WaveNet架构。 索引词: Tacotron 2, WaveNet, text-to-speech 1. 介绍 从文本生成自然语音(语音合成,TTS)研究了几十年[1]仍然是一项有挑战的任务。这一领域的主导技术随着时代的发展不断更迭。单元挑选和拼接式合成方法,是一项把预先录制的语音波形的小片段缝合在一起的技术[2, 3],过去很多年中一直代表了最高水平。统计参数语音合成方法[4, 5, 6, 7],是直接生成语音特征的平滑轨迹,然后交由声码器来合成语音,这种方法解决了拼接合成方法中出现的边界人工痕迹的很多问题。然而由这些方法构造的系统生成的语音与人类语音相比,经常模糊不清并且不自然。 WaveNet

语音合成系统WORLD

梦想的初衷 提交于 2019-12-13 00:10:53
WORLD是一个基于C语言的开源语音合成系统,语音合成主要包括波形拼接和参数合成两种方法,WORLD是一种基于vocoder的参数合成方法,它相比于STRAIGHT的优势是减少了计算复杂度,并且可以应用于实时的语音合成。由于STRAIGHT不是开源的系统,并且在WORLD论文中已经对比了WORLD相比于STRAIGHT无论是在合成的音频质量上还是合成速度上都处于领先优势,所以这里我不准备介绍STRAIGHT,我们今天主要讲一下WORLD语音合成系统的原理以及使用方法。 WORLD系统如下图所示,包含三个模块,分别是DIO、CheapTrick、PLATINUM,其中DIO的作用是用来估计一段波形的Fundamental Frequency(简称F0),CheapTrick算法是根据波形和F0来计算spectral envelope,PLATINUM算法是基于波形、F0和spectral envelope来计算aperiodic parameter,下面我们来分别看这些参数的计算原理。 1. F0的计算 F0在维基百科中的定义是:当发声体由于振动而发出声音时,声音一般可以分解为许多单纯的正弦波,所有的自然声音基本都是由许多频率不同的正弦波组成的,其中频率最低的正弦波即为基音,而其他频率较高的正弦波则为泛音,即这些不同正弦波中的最低频率称为基频。F0是一种非常常用的可以表示声音的特征

关于语音合成和识别

匿名 (未验证) 提交于 2019-12-03 00:37:01
最近研究了下语音合成和语音识别。分别看了一些文章,也下载jdk写了些代码测试了下。 发现,对于语音合成。中文来说,百度语音和科大讯飞,基本都差不多。 英文的话,百度合成出来的效果不佳。科大讯飞稍好点。但是总体都没有国外语音合成好。比如 iSpeech、FreeTTS,可能国外的主语都是英语的缘故吧。 百度日调用额度比较多,据说有2万额度。讯飞每天就500,有点少。iSpeech 是要收费的。FreeTTS 可以离线使用。 百度识别和合成代码: public class SoundAPI { private static final Logger logger = LoggerFactory.getLogger(SoundAPI.class); final static String FILE_PATH = Config.getString("download.folder"); // 设置APPID/AK/SK private static final String APP_ID = "你的APP ID"; private static final String API_KEY = "你的key"; private static final String SECRET_KEY = "你的秘钥"; // 初始化一个AipSpeech private static AipSpeech

百度语音合成api/sdk及demo

匿名 (未验证) 提交于 2019-12-02 23:41:02
1.流程   1)换取token     用Api Key 和 SecretKey。访问https://openapi.baidu.com/oauth/2.0/token 换取 token    // appKey = Va5yQRHl********LT0vuXV4 // appSecret = 0rDSjzQ20XUj5i********PQSzr5pVw2 https://openapi.baidu.com/oauth/2.0/token?grant_type=client_credentials&client_id=Va5yQRHl********LT0vuXV4&client_secret=0rDSjzQ20XUj5i********PQSzr5pVw2   返回:   2)访问合成接口 #从上文中我们获取的token是 1.a6b7dbd428f731035f771b8d********.86400.1292922000-2346678-124328 http://tsn.baidu.com/text2audio?lan=zh&ctp=1&cuid=abcdxxx&tok=1.a6b7dbd428f731035f771b8d****.86400.1292922000-2346678-124328&tex=%e7%99%be%e5%ba%a6%e4%bd%a0%e5%a5

ROS语音交互系统_(1)科大讯飞linux版TTS代码解析

匿名 (未验证) 提交于 2019-12-02 21:59:42
科大讯飞官网下载SDK #解压命令 unzip Linux_tts_online1195_5b160a9b.zip 后续命令如下 $ cd voice/samples/tts_sample $ source 64 bit_make.sh $ make $ cp 64 bit_make.sh ../../bin/ $ cd ../../bin/ $ ./tts_sample 完成以上操作语音合成完毕,同时在该目录下生成tts_sample.wav 为了可以在命令行播放该文件,需要下载sox $ sudo apt-get install sox $ play tts_sample.wav (1)在tts_sample目录下进入Makefile,修改该文件的相关内容,修改后如下图所示 $ gedit Makefile (2)将x64目录下的动态库拷贝到usr/lib文件下 $ cd voice/libs/x64/ $ sudo cp libmsc.so /usr/lib 如此一来,就不必 source #在tts_samples目录下 $ make clean $ make #在voice/bin目录下 $ ./tts_sample $ play tts_sample.wav 学习大神视频及度娘时记录的笔记,有问题可留言 大神视频链接 文章来源: ROS语音交互系统_(1

javascript实现语音合成

匿名 (未验证) 提交于 2019-12-02 21:40:25
在想出现播放器的地方插入一个层: <div id="speech_player" name="speech_player"></div> 层的id可以自己定。 2)把以下代码放在前面: <script type="text/javascript" src="speech.w3cool.com/swf/speech.js,前面加上http://"></script> <script type="text/javascript"> var _scid = "copytext"; // 希望朗读的文章块的id; var _spid = "speech_player"; //显示播放器的id; _sp_bg = "0xCDDFF3"; //修改成想要的颜色 _sp_leftbg = "0x357DCE"; _sp_lefticon = "0xF2F2F2"; _sp_rightbg = "0x357DCE"; _sp_rightbghover = "0x4499EE"; _sp_righticon = "0xF2F2F2"; _sp_righticonhover = "0xFFFFFF"; _sp_text = "0x357DCE"; _sp_slider = "0x357DCE"; _sp_track = "0xFFFFFF"; _sp_border = "0xFFFFFF"; _sp

【小程序】语音合成

血红的双手。 提交于 2019-12-01 21:38:43
一、预热:先看两个主要的接口 1.获取token的接口 https://openapi.baidu.com/oauth/2.0/token 2.语音合成接口 http://tsn.baidu.com/text2audio 或 https://tsn.baidu.com/text2audio 二、开通百度语音接口,创建应用获取密钥信息 https://console.bce.baidu.com/ai/?_=1533186278816#/ai/speech/app/list 三、新建小程序 1.先写好小程序页面,通过可视化操作获取接口参数 2.写获取token的方法,并在小程序加载时调用 onLoad() { that = this; that.getToken(); }, getToken() { //先看下缓存里有没有token var token = wx.getStorageSync('token'); var token_expire = wx.getStorageSync('token_expire'); //如果缓存里没有或者说过了有效期的话重新获取token if (!token || token_expire <= new Date().getTime()) { //这个要换成自己的apikey和secretkey!!!!! let api_key =