什么是TTS?
TTS是Text To Speech
的縮寫(xiě),即“從文本到語(yǔ)音”,是人機(jī)對(duì)話的一部分,讓機(jī)器能夠說(shuō)話。TTS是語(yǔ)音合成應(yīng)用的一種。
在程序開(kāi)發(fā)中,有很多TTS的插件,比如百度,訊飛,等等,但是大部分產(chǎn)品都不是完全免費(fèi)無(wú)限制次數(shù)調(diào)用的且需在線使用
本篇文章介紹一種免費(fèi)快捷且可以離線本地使用的方法:調(diào)用安卓系統(tǒng)已安裝的TTS進(jìn)行語(yǔ)音合成播放。
安卓原生自帶離線語(yǔ)音合成的使用
1. 安裝Android文字轉(zhuǎn)語(yǔ)音引擎
安卓系統(tǒng)本身是有自帶語(yǔ)音引擎的,但是有些手機(jī)沒(méi)有,如果沒(méi)有的話,需要先安裝語(yǔ)音引擎apk,可以參考這篇文章下載:Android文字轉(zhuǎn)語(yǔ)音引擎(TTS)簡(jiǎn)單比較及下載
2. 調(diào)用系統(tǒng)已安裝TTS插件 (MT-TTS)
在手機(jī)上已經(jīng)有語(yǔ)音引擎的前提下,就可以使用MT-TTS插件進(jìn)行調(diào)用了。
2.1 下載MT-TTS插件
下載地址和使用方法:MT-TTS離線語(yǔ)音合成
可以直接在下載的demo上進(jìn)行開(kāi)發(fā),或者把demo里面的nativeplugins
文件夾拷貝到自己的項(xiàng)目根目錄下
然后把項(xiàng)目用HBuilder X打開(kāi),點(diǎn)擊manifest.json
文件,App原生插件配置,把MT-TTS勾選上,確定
2.2 使用自定義基座打包uni原生插件 (注:請(qǐng)使用真機(jī)運(yùn)行自定義基座)
使用uni原生插件必須先提交云端打包才能生效,所以需要先把原生插件打包到自定義基座,然后再進(jìn)行寫(xiě)代碼真機(jī)調(diào)試(不知道怎么真機(jī)調(diào)試的可以看看我這篇文章真機(jī)調(diào)試)。
運(yùn)行-》運(yùn)行到手機(jī)或模擬器-》制作自定義調(diào)試基座
打包
打包發(fā)布
使用自定義基座開(kāi)發(fā)調(diào)試uni-app原生插件后,不可直接將自定義基座apk作為正式版發(fā)布。
應(yīng)該重新提交云端打包(不能勾選“自定義基座”)生成正式版本。
自定義基座打包完成后,選擇自定義調(diào)試基座。
之后,就可以真機(jī)運(yùn)行調(diào)試了
2.3 正式使用MT-TTS
插件的demo里面有示例代碼,挺詳細(xì)的,這里對(duì)主要使用步驟進(jìn)行簡(jiǎn)單說(shuō)明:
用requireNativePlugin
導(dǎo)入插件
const SpeechTTS= uni.requireNativePlugin("MT-TTS-Speech");
先進(jìn)行初始化
<button class="title" size="mini" @click="init">Init TTS</button>
init() {
console.log('>> TTS:init...')
SpeechTTS.init((callback) => {
this.isReady = true;
console.log('>> tts: init success');
});
SpeechTTS.onDone((res) => {
console.log(">> tts: play end " + res)
});
},
語(yǔ)音播放
<button class="title" size="mini" @click="play">播放</button>
text: '請(qǐng)。112號(hào)、張三,到,C04、檢查'
play() {
console.log('>> tts: play...');
const res = SpeechTTS.speak({
text: this.text
});
console.log('>> tts: play result = ' + res);
},
其他使用請(qǐng)參考下面的插件API文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-413772.html
插件API
- 初始化
init(options, callback)
- 設(shè)置語(yǔ)調(diào)
setPitch(num)
范圍 0-9,默認(rèn)5 - 設(shè)置語(yǔ)速
setSpeed(num)
范圍 0-9,默認(rèn)5 - 設(shè)置語(yǔ)速
setVolumn(num)
范圍 0-9,默認(rèn)15 - 獲取狀態(tài)
isSpeeking()
- 播放
speek(text, utteranceId)
- 播放
changeSpeeker(text)
text: F(度小美)、M(度小宇)、Y(度丫丫)、X(度逍遙), 成功返回0 - 停止合成
stop()
- 暫停播放
paused()
- 恢復(fù)播放
resume()
- 銷毀
destroy()
- 開(kāi)始播放回調(diào)注冊(cè)
(callback)
- 完成播放回調(diào)注冊(cè)
onDone(callback)
- 播放出錯(cuò)回調(diào)注冊(cè)
(callback)
本篇文章就介紹到這里啦,祝各位程序員1024程序員節(jié)日快樂(lè)!文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-413772.html
到了這里,關(guān)于【TTS】uni-app語(yǔ)音播報(bào)app開(kāi)發(fā) / MT-TTS安卓原生自帶語(yǔ)音合成插件(免費(fèi)無(wú)限次)的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!