【java】试工讯飞SDK开发语音tts初步代码
【java】试用讯飞SDK开发语音tts初步代码
tts开发对中文并不很支持,网络上有个eye-free的开源项目不过没有源代码,故找了国内最好的讯飞语音进行开发工作。
首先去讯飞网站上注册,下载相应SDK,此处下载为java版本。
获取代码,修改其程序。
将所需要的dll文件放入path目录---java/bin目录
然后项目中加入两个jar包。
按照其源代码实现自己的读取程序。
讯飞除了android的sdk提供离线语音合成外,其他均需要进行网络连接。
下一步将android中的离线语音分离出来。让java也可以实现简单的离线语音功能。
tts开发对中文并不很支持,网络上有个eye-free的开源项目不过没有源代码,故找了国内最好的讯飞语音进行开发工作。
首先去讯飞网站上注册,下载相应SDK,此处下载为java版本。
获取代码,修改其程序。
将所需要的dll文件放入path目录---java/bin目录
然后项目中加入两个jar包。
按照其源代码实现自己的读取程序。
package com.duduli.li; import com.iflytek.speech.SpeechError; import com.iflytek.speech.SynthesizerPlayer; import com.iflytek.speech.SynthesizerPlayerListener; public class XunFei { public XunFei() { if (SynthesizerPlayer.getSynthesizerPlayer() == null) // 此处为util包中的定义 SynthesizerPlayer.createSynthesizerPlayer("appid=535602f2"); } public void test() { SynthesizerPlayer synthesizer = SynthesizerPlayer .getSynthesizerPlayer(); synthesizer.setVoiceName("xiaoyu"); // 设置朗读速度为50 synthesizer.setSpeed(50); // 合成文本为TEXT_CONTENT的句子,设置监听器为mSynListener synthesizer.playText("网络是由节点和连线构成,表示诸对象及其相互联系。在数学上,网络是一种图,一般认为它专指加权图。", null, mSynListener); } private SynthesizerPlayerListener mSynListener = new SynthesizerPlayerListener() { public void onEnd(SpeechError error) { } public void onBufferPercent(int percent, int beginPos, int endPos, String args) { } public void onPlayBegin() { } public void onPlayPaused() { } public void onPlayPercent(int percent, int beginPos, int endPos) { } public void onPlayResumed() { } }; public static void main(String[] args) { // TODO Auto-generated method stub XunFei xf = new XunFei(); xf.test(); } }
讯飞除了android的sdk提供离线语音合成外,其他均需要进行网络连接。
下一步将android中的离线语音分离出来。让java也可以实现简单的离线语音功能。