日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 运维知识 > Android >内容正文

Android

Android 语音播报,语音识别demo

發(fā)布時(shí)間:2023/12/10 Android 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Android 语音播报,语音识别demo 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

該功能是基于百度智能云實(shí)現(xiàn)的根據(jù)文字進(jìn)行語音播報(bào)。

?

1、首先到百度智能云創(chuàng)建語音應(yīng)用

https://console.bce.baidu.com/ai/

?

?填寫包名創(chuàng)建百度語音應(yīng)用,獲取AppID,API Key,Secret Key

?

2、導(dǎo)入資源文件。語音jar,assets語音庫(kù),jni系統(tǒng)文件

?

?3、創(chuàng)建工具類

?

4、activity初始化語音引擎

protected String appId = "20729771";protected String appKey = "6SSdraj9RFUKyAmf36DcpYy3";protected String secretKey = "dmqQYTXsPUmWwgSQU06vj2plHKTAdaF3"; protected TtsMode ttsMode = TtsMode.MIX;protected MySyntherizer synthesizer; SpeechSynthesizerListener listener; protected String offlineVoice = OfflineResource.VOICE_MALE;

在Application的onCreate方法里面初始化

?

Map<String, String> params = getParams(); InitConfig initConfig = new InitConfig(appId, appKey, secretKey, ttsMode, params, listener);synthesizer = new MySyntherizer(this,initConfig,null);

?

開始播報(bào)內(nèi)容

?

synthesizer.speak(str1);

?

demo鏈接:https://download.csdn.net/download/meixi_android/11193641

在線回復(fù)bug:QQ1085220040

附:切換聲音類型dialog

AlertDialog.Builder builder = new AlertDialog.Builder(SynthActivity.this, android.R.style.Theme_Holo_Light_Dialog); builder.setTitle("引擎空閑時(shí)切換"); final Map<String, String> map = new LinkedHashMap<>(4); map.put("離線女聲", OfflineResource.VOICE_FEMALE); map.put("離線男聲", OfflineResource.VOICE_MALE); map.put("離線度逍遙", OfflineResource.VOICE_DUXY); map.put("離線度丫丫", OfflineResource.VOICE_DUYY); final String[] keysTemp = new String[4]; final String[] keys = map.keySet().toArray(keysTemp); builder.setItems(keys, new DialogInterface.OnClickListener() {@Overridepublic void onClick(DialogInterface dialog, int which) {loadModel(map.get(keys[which]));Log.i("lgq","....."+map.get(keys[which]));} }); builder.show();

?

?方法二:

說明:只適用安卓6,0以上設(shè)備

兩個(gè)工具方法,即可實(shí)現(xiàn)語音播報(bào)

public interface TTS {void playText(String playText);void stopSpeak(); } public class SystemTTS extends UtteranceProgressListener implements TTS, TextToSpeech.OnUtteranceCompletedListener {private Context mContext;private static SystemTTS singleton;private TextToSpeech textToSpeech; // 系統(tǒng)語音播報(bào)類private boolean isSuccess = true;public static SystemTTS getInstance(Context context) {if (singleton == null) {synchronized (SystemTTS.class) {if (singleton == null) {singleton = new SystemTTS(context);}}}return singleton;}private SystemTTS(Context context) {this.mContext = context.getApplicationContext();textToSpeech = new TextToSpeech(mContext, new TextToSpeech.OnInitListener() {@Overridepublic void onInit(int i) {//系統(tǒng)語音初始化成功if (i == TextToSpeech.SUCCESS) {int result = textToSpeech.setLanguage(Locale.CHINA);textToSpeech.setPitch(1.0f);// 設(shè)置音調(diào),值越大聲音越尖(女生),值越小則變成男聲,1.0是常規(guī)textToSpeech.setSpeechRate(1.0f);textToSpeech.setOnUtteranceProgressListener(SystemTTS.this);textToSpeech.setOnUtteranceCompletedListener(SystemTTS.this);if (result == TextToSpeech.LANG_MISSING_DATA|| result == TextToSpeech.LANG_NOT_SUPPORTED) {//系統(tǒng)不支持中文播報(bào)isSuccess = false;}}}});}public void playText(String playText) {if (!isSuccess) {Toast.makeText(mContext, "系統(tǒng)不支持中文播報(bào)", Toast.LENGTH_SHORT).show();return;}if (textToSpeech != null) {textToSpeech.speak(playText,TextToSpeech.QUEUE_ADD, null, null);}}public void stopSpeak() {if (textToSpeech != null) {textToSpeech.stop();}}// public boolean isSpeaking() { // if (textToSpeech.isSpeaking()) { // return true; // } // return false; // }//播報(bào)完成回調(diào)@Overridepublic void onUtteranceCompleted(String utteranceId) {}@Overridepublic void onStart(String utteranceId) {}@Overridepublic void onDone(String utteranceId) {}@Overridepublic void onError(String utteranceId) {} }

?調(diào)用播報(bào):

SystemTTS systemTTS = SystemTTS.getInstance(MainActivity.this); systemTTS.playText("支付寶到賬一百萬");

?

語音識(shí)別 實(shí)現(xiàn)

語音識(shí)別比較簡(jiǎn)單,只需要引入百度的代碼庫(kù)即可實(shí)現(xiàn)

實(shí)現(xiàn)效果

?

?百度語音識(shí)別demo:https://download.csdn.net/download/meixi_android/15512732

在線語音播報(bào)bug交流:扣1085220040?

總結(jié)

以上是生活随笔為你收集整理的Android 语音播报,语音识别demo的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。