之前寫過一篇文章痛阻,當(dāng)時的需求是播放英文拧簸,最后使用的是Androi自帶的TextToSpeech類來實現(xiàn)(http://blog.csdn.net/weixin_38251977/article/details/69944088),雖然播放英文效果還行谓传,但是對中文的支持不是很好收奔。最近新項目中又遇到一個語音的需求给僵,這次是中英文都有烙无,各種對比之后,選擇了百度語音離在線融合SDK,播放效果非常好遍尺,關(guān)鍵是免費截酷。趁著有空,記錄下集成步驟乾戏,抽成一個demo迂苛,下次有需要的時候可以直接套用三热。
一 前提步驟
首先,需要在百度語音官網(wǎng)注冊一個賬號三幻,然后創(chuàng)建應(yīng)用就漾,創(chuàng)建一個應(yīng)用的大致步驟如下圖:
注冊完應(yīng)用后,根據(jù)我們給的包名念搬,會生成對應(yīng)的appid抑堡,apikey和secretkey,這幾個參數(shù)在我們代碼中會使用到朗徊。
二 代碼集成
1.拷貝資源文件
在上邊兒注冊應(yīng)用的時候首妖,我們已經(jīng)把SDK下載下來了,在里邊兒我們找到需要的jar包爷恳,so文件以及語音模型拷貝到我們的項目中有缆,各資源文件對應(yīng)目錄如下:
因為我的項目中只有armeabi架構(gòu),所以只拷貝了對應(yīng)的資源温亲,這個需要根據(jù)實際情況添加棚壁。
2.配置build文件
將jar包等拷貝到項目中后,還需要配置工程目錄下的build.gradle文件以添加依賴栈虚。
首先袖外,在android閉包中添加:
android {
sourceSets{
main{
jniLibs.srcDirs=['libs']
}
}
}
這樣Android Studio就能識別我們放在libs文件夾下的so文件了,不然的話運行的時候會報找不到so文件的錯誤节芥。
然后在刺,在dependencies閉包中添加:
compile files('libs/com.baidu.tts_2.3.0.jar')
到這里我們可以同步一下項目了,然后就可以在代碼中使用jar包提供的方法了头镊。
3.添加權(quán)限
在清單文件中聲明所需的權(quán)限:
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.WRITE_SETTINGS" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />
4.demo
關(guān)于具體的使用方法蚣驼,這里抽成了一個demo,代碼我已經(jīng)測試過了相艇,運行沒有問題(demo里只支持armeabi框架颖杏,你可以將官方sdk的所有架構(gòu)對應(yīng)的so文件都拷貝進去),代碼址:https://github.com/SolveBugs/BaiduTTSDemo坛芽。