讯飞语音合成 下载音频Java Demo

注册讯飞账号

实名认证

创建应用

这里有一张图片
这里有一张图片

添加语音合成服务

进入控制台,点击我的应用,然后添加语音合成服务(免费),并记下APPID
这里有一张图片

下载SDK

点击应用右侧的SDK下载
这里有一张图片
这里有一张图片
你将会下载到一个压缩包:
这里有一张图片

解压下载到的SDK压缩包

应用到Java项目

创建一个Java项目,然后把压缩包中的lib目录下的的所有东西全部复制粘贴到这个Java项目中:
这里有一张图片
然后把jar包添加到build path中:
这里有一张图片
到这里项目就搭建好了,下面来创建测试类。

创建测试类

1 设置合成监听器

在测试类中粘贴如下代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
// 1 设置合成监听器
static SynthesizeToUriListener synthesizeToUriListener = new SynthesizeToUriListener()
{
// progress为合成进度0~100
public void onBufferProgress(int progress)
{
}
// 会话合成完成回调接口
// uri为合成保存地址,error为错误信息,为null时表示合成会话成功
public void onSynthesizeCompleted(String uri, SpeechError error)
{
}
@Override
public void onEvent(int arg0, int arg1, int arg2, int arg3, Object arg4,
Object arg5)
{
// TODO Auto-generated method stub
}
};

设置好监听器之后,下面就可来合成并下载音频了。

编写main方法

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
public static void main(String[] args)
{
// 2 将“XXXXXXXX”替换成您申请的APPID
SpeechUtility.createUtility(SpeechConstant.APPID + "=XXXXXXXX");
// 3.创建SpeechSynthesizer对象
SpeechSynthesizer mTts = SpeechSynthesizer.createSynthesizer();
// 4.合成参数设置,详见《MSC Reference Manual》SpeechSynthesizer 类
// 设置发音人
mTts.setParameter(SpeechConstant.VOICE_NAME, "xiaoyu");
// 设置语速,范围0~100
mTts.setParameter(SpeechConstant.SPEED, "50");
// 设置语调,范围0~100
mTts.setParameter(SpeechConstant.PITCH, "50");
// 设置音量,范围0~100
mTts.setParameter(SpeechConstant.VOLUME, "50");
// 5设置要合成的文本
String text="测试语音合成";
// 6.开始合成 //设置合成音频保存位置(可自定义保存位置),默认保存在“./tts_test.pcm”
mTts.synthesizeToUri(text, "./tts_test.pcm",
synthesizeToUriListener);
}

完整下载Java demo如下

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
package demo;
import com.iflytek.cloud.speech.SpeechConstant;
import com.iflytek.cloud.speech.SpeechError;
import com.iflytek.cloud.speech.SpeechSynthesizer;
import com.iflytek.cloud.speech.SpeechUtility;
import com.iflytek.cloud.speech.SynthesizeToUriListener;
public class DownloadDemo
{
public static void main(String[] args)
{
// 2 将“XXXXXXXX”替换成您申请的APPID
SpeechUtility.createUtility(SpeechConstant.APPID + "=5c80ae6b");
// 3.创建SpeechSynthesizer对象
SpeechSynthesizer mTts = SpeechSynthesizer.createSynthesizer();
// 4.合成参数设置,详见《MSC Reference Manual》SpeechSynthesizer 类
// 设置发音人
mTts.setParameter(SpeechConstant.VOICE_NAME, "xiaoyu");
// 设置语速,范围0~100
mTts.setParameter(SpeechConstant.SPEED, "50");
// 设置语调,范围0~100
mTts.setParameter(SpeechConstant.PITCH, "50");
// 设置音量,范围0~100
mTts.setParameter(SpeechConstant.VOLUME, "50");
// 5设置要合成的文本
String text = "测试语音合成";
// 6.开始合成 //设置合成音频保存位置(可自定义保存位置),默认保存在“./tts_test.pcm”
mTts.synthesizeToUri(text, "./tts_test.pcm", synthesizeToUriListener);
}
// 1 设置合成监听器
static SynthesizeToUriListener synthesizeToUriListener = new SynthesizeToUriListener()
{
// progress为合成进度0~100
public void onBufferProgress(int progress)
{
}
// 会话合成完成回调接口
// uri为合成保存地址,error为错误信息,为null时表示合成会话成功
public void onSynthesizeCompleted(String uri, SpeechError error)
{
}
@Override
public void onEvent(int arg0, int arg1, int arg2, int arg3, Object arg4,
Object arg5)
{
// TODO Auto-generated method stub
}
};
}

运行上面程序即可合成测试语音合成这个音频信息,保存在./tts_test.pcm中,不过这个文件好像不可直接打开播放,我用audition打开

用audition cs6 打开

采样率选择16000,其他默认,然后就可以播放了,如果播放的声音跟猪叫差不多的话,那应该是采样率错了,反正采样率多测试几次下就好了
这里有一张图片
语音合成的地方肯定有些合成的不如意的地方,可以在audition中再次编辑,然后保存为mp3等等即可,这样以后就可直接播放了。