龙空技术网

讯飞webapi语音合成多音字处理

老码拾㻌 37

前言:

当前我们对“java怎么读语音”大致比较着重,看官们都想要分析一些“java怎么读语音”的相关资讯。那么小编也在网摘上网罗了一些有关“java怎么读语音””的相关知识,希望兄弟们能喜欢,朋友们快快来学习一下吧!

在使用讯飞webapi方式进行语音合成时,发现多音字经常不按语义进行发音,在讯飞论坛上找了半天,按论坛上的方法不起作用,反复试了一下,用下面组合可以起作用。

一、后台参数配置

后台主要涉及3个参数,ttp:cssml;tte:UTF8;vcn:vixy,我是用JAVA编程,用WEBAPI,用这三个参数组合,前端用简单标记可以生效。ttp这个参数在官方的说明中没有,论坛中有介绍。

            //填充business,AUE属性lame是MP3格式,raw是PCM格式                business.addProperty("aue", "lame");                //增加此参数,系统可以识别用cssml标记的多音字读法,下面发音人用vixy,用简单标记                business.addProperty("ttp", "cssml");                business.addProperty("sfl", 1);                business.addProperty("tte", "UTF8");//小语种必须使用UNICODE编码                business.addProperty("vcn", "vixy");//到控制台-我的应用-语音合成-添加试用或购买发音人,添加后即显示该发音人参数值,若试用未添加的发音人会报错11200                business.addProperty("pitch", 50);                business.addProperty("speed", 50);
二、文字标记方法

1)、设置单词发音方式。方法如下:

1. 格式: [h*] (*=0/1/2)

2. 参数: 0 – 自动判断单词发音方式

1 – 字母发音方式

2 – 单词发音方式

3. 说明: 默认单词为自动判断。

文本举例:

1. [h1]hello[h0] word

其中,hello将会按照字母发音,word就会按照单词进行发音

2)、数字处理策略。方法如下:

1. 格式: [n*] (*=0/1/2)

2. 参数: 0 – 自动判断

1 – 数字作号码处理

2 – 数字作数值处理

3. 说明: 默认为自动判断。

文本举例:

1. [n2]123[n1]456[n0]

其中,123将会按照数值处理,456则会按照号码处理,而后的文本中的数字,均会自动判断。

3)、合成时,加入静音停顿。方法如下:

1. 格式: [p*] (*=无符号整数)2. 参数: * – 静音的时间长度,单位:毫秒(ms)

文本举例:

1. 你好[p500]科大讯飞

该句合成时,将会在“你好”后加入500ms的静音

4)、指定汉字发音。方法如下:

1. 格式: [=*] (*=拼音/音标)

2. 参数: * – 为前一个汉字/单词设定的拼音/音标

3. 说明: 汉字:声调用后接一位数字1~5分别表示阴平、阳平、上声、去声和轻声5个声调。

文本举例:

1. 着[=zhuo2]手, 朴[=piao2]槿惠,朴[=pu3]树

标签: #java怎么读语音 #js语音合成