android開發語音
㈠ android 實現實時語音功能選擇接入哪個音視頻sdk好
可以考慮接入即構科技的音視頻sdk,他們的音視頻sdk平台兼容性強,可覆蓋 iOS、Android、Windows、macOS、Web、小程序並支持平台間互通,支持 32 路實時音視頻互動,能夠為開發者提供便捷接入、高清流暢、低延遲、高並發的音視頻服務,而且4 行代碼極速接入, 30 分鍾內即可構建完畢。
㈡ android開發調用訊飛語音,由於太久沒說話彈出對話框"您好像沒說話哦",但還出現錯誤碼:10
java">//設置語音前端點:靜音超時時間,即用戶多長時間不說話則當做超時處理
recognizer.setParameter(SpeechConstant.VAD_BOS,mSharedPreferences.getString("iat_vadbos_preference","20000"));
//設置語音後端點:後端點靜音檢測時間,即用戶停止說話多長時間內即認為不再輸入,自動停止錄音
recognizer.setParameter(SpeechConstant.VAD_EOS,mSharedPreferences.getString("iat_vadeos_preference","20000"));
把超時時間可以改長一點,然後通過錯誤碼,彈出自己的提示或者不彈。
在RecognizerListener里有一個onError(SpeechError error)的回調
if(error.getErrorCode() == 10118)
{
//TODO
}
㈢ android實現語音聊天功能難不難
如果是打算自己從零開始研發,那難不難得看自己團隊的技術水平,覺得有難度的話,不如試一試和第三方開發商合作,諸如有20年經驗的ZEGO即構科技團隊,他們自主研發了實時語音SDK,實現語音聊天功能很簡單的,直接接入SDK就可以了。
㈣ android 怎麼實現語音聊天
可以用第三方即時通訊雲服務商,也可以自己開發實現。看你公司的能力和需求。自己開發耗時耗人耗精力。用第三方,比如融雲,這里就舉個融雲的例子吧。 可以直接集成融雲的sdk,然後直接實現你說的功能。優點是快速方便,服務穩定。缺點是:不是自己開發的,如果出現問題需要提工單解決。
㈤ 如何調用android的文字轉語音
雖然視覺上的反饋通常是給用戶提供信息最快的方式,但這要求用戶把注意力設備上。當用戶不能查看設備時,則需要一些其他通信的方法。Android提供了強大的文字轉語音Text-to-Speech,TTS API。使開發者能夠在應用中添加語音通知和其他語音反饋功能,而不要求用戶看著屏幕。
下面的代碼展示了如何使用TTS API:
public class TextToSpeechDemo implements TextToSpeech.OnInitListener {
private final TextToSpeech mTextToSpeech;//TTS對象
private final ConcurrentLinkedQueue mBufferedMessages;//消息隊列
private Context mContext;
private boolean mIsReady;//標識符
public TextToSpeechDemo(Context context){
this.mContext=context;//獲取上下文
this.mBufferedMessages=new ConcurrentLinkedQueue();//實例化隊列
this.mTextToSpeech=new TextToSpeech(this.mContext,this);//實例化TTS
}
//初始化TTS引擎
@Override
public void onInit(int status) {
Log.i("TextToSpeechDemo",String.valueOf(status));
if(status==TextToSpeech.SUCCESS){
int result = this.mTextToSpeech.setLanguage(Locale.CHINA);//設置識別語音為中文
synchronized (this){
this.mIsReady=true;//設置標識符為true
for(String bufferedMessage : this.mBufferedMessages){
speakText(bufferedMessage);//讀語音
}
this.mBufferedMessages.clear();//讀完後清空隊列
}
}
}
//釋放資源
public void release(){
synchronized (this){
this.mTextToSpeech.shutdown();
this.mIsReady=false;
}
}
//更新消息隊列,或者讀語音
public void notifyNewMessage(String lanaugh){
String message=lanaugh;
synchronized (this){
if(this.mIsReady){
speakText(message);
}else{
this.mBufferedMessages.add(message);
}
}
}
//讀語音處理
private void speakText(String message){
Log.i("liyuanjinglyj",message);
HashMap params=new HashMap();
params.put(TextToSpeech.Engine.KEY_PARAM_STREAM,"STREAM_NOTIFICATION");//設置播放類型(音頻流類型)
this.mTextToSpeech.speak(message, TextToSpeech.QUEUE_ADD, params);//將這個發音任務添加當前任務之後
this.mTextToSpeech.playSilence(100,TextToSpeech.QUEUE_ADD,params);//間隔多長時間
}
}
當然一般手機是不支持中文的可以網路下載訊飛TTS引擎後在測試。
由於TTS引擎的初始化是非同步的,所以在執行實際的文字轉語音之前需要把消息放到隊列中。
可以給TTS引擎發送多個參數。前面展示了如何決定口語消息使用的音頻流。在這種情況下,通知聲音也使用相同的音頻流。
最後,如果處理連續多個消息,最好在每個消息結束後暫停一會在播放下一個消息。這樣做會清楚的告訴用戶消息的結束和開始。