第一步準備工作
1.訊飛賬戶注冊(這就不介紹了,看看步驟做就可以了)
2.創(chuàng)建應(yīng)用獲取應(yīng)用的Appid
(1)創(chuàng)建應(yīng)用

(2)獲取Appid(下面代碼會用到)

3.下載訊飛在線語音SDK資源

第二步Android的資源以及權(quán)限配置
1.依賴jar包
首先把下載的jar包放到app下的libs下面

之后進行jar依賴

2.so庫以及assets資源導入
在app\src\main文件夾下面放入so庫以及asstes文件


3.獲取相應(yīng)權(quán)限
<uses-permission android:name="android.permission.INTERNET">
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE">
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE">
<uses-permission android:name="android.permission.CHANGE_NETWORK_STATE">
<uses-permission android:name="android.permission.READ_PHONE_STATE">
<uses-permission android:name="android.permission.READ_CONTACTS">
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE">
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE">
<uses-permission android:name="android.permission.WRITE_SETTINGS">
<uses-permission android:name="android.permission.CAMERA">
第三步語音合成使用代碼
1.進行第三方語音合成的注冊 (第二個參數(shù)appid就是的第一注冊的appid)
public static void intSpeech(Context context,String appid){
? SpeechUtility.createUtility(context, SpeechConstant.APPID+"="+appid);
}
2.在進行文件讀取位置的語音操作(speechText語音文字,speaker語音發(fā)音人可以為null為默認)
public static void speak( Context context,String speechText,String speaker) {
//1.創(chuàng)建SpeechSynthesizer對象, 第二個參數(shù):本地合成時傳InitListener
SpeechSynthesizer mTts = SpeechSynthesizer.createSynthesizer(context,newInitListener() {
@Override
public voidonInit(inti) {
Log.e("app","errorInfo"+i);
}
});
Log.e("app","isnull>"+(mTts==null));
//2.合成參數(shù)設(shè)置,詳見《科大訊飛MSC API手冊(Android)》SpeechSynthesizer 類
if(speaker==null){
mTts.setParameter(SpeechConstant.VOICE_NAME,"xiaoyan");//設(shè)置發(fā)音人
}else{
mTts.setParameter(SpeechConstant.VOICE_NAME, speaker);//設(shè)置發(fā)音人
}
mTts.setParameter(SpeechConstant.SPEED,"50");//設(shè)置語速
mTts.setParameter(SpeechConstant.VOLUME,"80");//設(shè)置音量,范圍0~100
mTts.setParameter(SpeechConstant.ENGINE_TYPE, SpeechConstant.TYPE_CLOUD);//設(shè)置云端
//設(shè)置合成音頻保存位置(可自定義保存位置),保存在“./sdcard/iflytek.pcm”
//保存在SD卡需要在AndroidManifest.xml添加寫SD卡權(quán)限
//如果不需要保存合成音頻,注釋該行代碼
mTts.setParameter(SpeechConstant.TTS_AUDIO_PATH,"./sdcard/iflytek.pcm");
//3.開始合成
mTts.startSpeaking(""+speechText,newcom.iflytek.cloud.SynthesizerListener() {
//開始播放
@Override
public voidonSpeakBegin() {
}
//緩沖進度回調(diào)
//percent為緩沖進度0~100,beginPos為緩沖音頻在文本中開始位置,endPos表示緩沖音頻在文本中結(jié)束位置,info為附加信息。
@Override
public voidonBufferProgress(inti,inti1,inti2, String s) {
}
//暫停播放
@Override
public voidonSpeakPaused() {
}
//恢復播放回調(diào)接口
@Override
public voidonSpeakResumed() {
}
//播放進度回調(diào)
//percent為播放進度0~100,beginPos為播放音頻在文本中開始位置,endPos表示播放音頻在文本中結(jié)束位置.
@Override
public voidonSpeakProgress(inti,inti1,inti2) {
}
//會話結(jié)束回調(diào)接口,沒有錯誤時,error為null
@Override
public voidonCompleted(SpeechError speechError) {
}
//會話事件回調(diào)接口
@Override
public voidonEvent(inti,inti1,inti2, Bundle bundle) {
}
});
}