導航:首頁 > 操作系統 > android語音傳輸

android語音傳輸

發布時間:2022-09-06 15:15:22

A. 有人用SIP做過android客戶端的多人語音通話嗎

我在這里先給出我了解到的資料。 相關技術:
1.sip 2.nat穿越 3.語音編解碼 4.語音傳輸(rtp)
以上四個技術點其實就是sip電話裡面的四個模塊,sip負責會話創建、維護、中斷等;nat穿越就是傳說中的p2p打洞,需要stun伺服器配合。將語音數據按照某種格式編碼,交給傳輸層傳輸,傳輸通常是基於udp的rtp流。
相關協議:
1.sip 2.sdp 3.stun、turn、ice 4.rtp
sip,Session Initiation Protocol,會話初始協議是一個協議棧,集合了注冊,呼叫,接聽,掛斷等相關協議;sdp是會話描述協議,我的理解TA是讓兩個通訊方指定通訊規則,比如用何種協議傳輸,音頻是何種格式等等,stun、turn、ice是nat穿越使用的,stun採用p2p打洞,turn採用的是轉發,ice只是考慮當前環境適合何種方案,然後選擇相應解決辦法。rtp是實時傳輸協議,TA其實包括rtp和rtcp兩個協議,負責將語音數據的傳輸。

B. 如何調用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引擎發送多個參數。前面展示了如何決定口語消息使用的音頻流。在這種情況下,通知聲音也使用相同的音頻流。

最後,如果處理連續多個消息,最好在每個消息結束後暫停一會在播放下一個消息。這樣做會清楚的告訴用戶消息的結束和開始。

C. 在做Android與pc伺服器通信,使用socket,udp協議,發送PCM語音,

This method blocks until a packet is received or a timeout has expired

D. android語音上傳用什麼編碼

看你要實時傳輸的還是非實時的.開頭的過程都是捕捉音頻然後編碼.編碼也可以說是語音壓縮,壓縮演算法有n種.gsm,g711,g723,g729,g722,silk,ilbc ====,實時傳輸可以使用RTP協議.有開源的rtp協議實現庫.在android平台上比較快速可以實現的有PJMEDIA

E. 打電話的時候,語音數據流通過Android的軟體層嗎

發簡訊的時候,簡訊內容從手機1的最上層應用程序出發,經過底層、網路發送到手機2的底層,最終到達手機2的上層。
但是打電話的時候,語音內容是只在兩個手機的GSM模塊之間傳輸的,並不像簡訊內容那樣是要經過各層的,經過各層的只是撥打、接聽電話的控制信號或返回信息,而不是通話的語音數據。

F. android 區域網對講機怎麼用

本對講機集實時語音對講、文字、表情和文件傳輸與一身。使用IP廣播機制,實現同一區域網段內的語音廣播。使用本對講機,只使用本地wifi即可以實現辦公室內的語音會議,不用打電話,無需話費和流量。適合辦公室通訊、學校寢室間溝通等。

G. android 區域網實時語音聊天音頻流用什麼編

一般如果應用需要進行大量數學運算時,推薦使用JNI在Java中調用C/C++編寫的動態庫,Java只負責邏輯和界面用戶操作的相應,

你這個APP很簡單分為以下幾個模塊

  1. 界面,與用戶進行交互,需要具備Android界面的編程

  2. 網路傳輸,需要掌握Java網路socket編程的知識,使用TCP傳輸編碼後的音頻幀;

  3. 語音編解碼模塊,由兩部分構成。一是c/c++編寫的動態庫,二是Java聲明本地native函數,並將c/c++實現的native函數進行封裝,方便Java調用。這部分需要掌握Java中JNI使用的知識,c/c++編程,語音處理的方面的知識,例如數字信號處理。

而c/c++寫的庫一般不是我們自己實現的,而是引入第三方開源代碼,這里的選擇有很多,我了解到的有

  1. ffmeg,很常用,就連暴風影音和QQ音樂據說用了他們的開源庫,而沒有遵守開源協議而進入了他們的黑名單。

  2. speex,是國外的開源庫,現已被Opus取代,但是speex多了一個預處理功能,例如降噪、自動增益、迴音消除等等。

  3. Superpowered,跨平台的,低延遲,功能多。

補充一點,Android現已支持純C++的開發了,這個就需要NDK的配合,寫出NativeActivity,然後就可以直接在C++中調用第三方的庫了,而不用JNI這樣繁瑣,但是由於剛出來,教程不多,需要具備很多嵌入式、音視頻採集處理的開發經驗。

H. android語音聊天軟體怎麼實現

介紹使用較廣的三款語音聊天軟體:
1.YY語音最早用於魔獸玩家的團隊語音指揮通話,逐漸吸引了部分傳奇私服用戶,最後發展為穿越火線游戲用戶必備的團隊語音工具,筆者曾在穿越火線游戲中目測,99%的戰隊收人廣告後面都掛著YY語音ID。2009年初YY娛樂用戶已經形成了可以和游戲用戶抗衡的用戶群,YY語音的娛樂公會開始逐步超越游戲公會,人氣也日漸增長。時至今日,YY語音已經成為集合團隊語音、好友聊天、視頻功能、頻道K歌、視頻直播、YY群聊天、應用游戲、在線影視等功能為一體的綜合型即時通訊軟體。

2.騰訊QQ(簡稱「QQ」)是騰訊公司開發的一款基於Internet的即時通信(IM)軟體。騰訊QQ支持在線聊天、視頻通話、點對點斷點續傳文件、共享文件、網路硬碟、自定義面板、QQ郵箱等多種功能,並可與多種通訊終端相連。2015年,QQ繼續為用戶創造良好的通訊體驗。其標志是一隻戴著紅色圍巾的小企鵝。目前QQ已經覆蓋Microsoft Windows、OS X、Android、iOS、Windows Phone等多種主流平台。
3.微信 (WeChat)
是騰訊公司於2011年1月21日推出的一個為智能終端提供即時通訊服務的免費應用程序,微信支持跨通信運營商、跨操作系統平台通過網路快速發送免費(需
消耗少量網路流量)語音簡訊、視頻、圖片和文字,同時,也可以使用通過共享流媒體內容的資料和基於位置的社交插件「搖一搖」、「漂流瓶」、「朋友圈」、」
公眾平台「、」語音記事本「等服務插件。截止到2015年第一季度,微信已經覆蓋中國 90% 以上的智能手機,月活躍用戶達到 5.49 億,用戶覆蓋
200 多個國家、超過 20 種語言。此外,各品牌的微信公眾賬號總數已經超過 800 萬個,移動應用對接數量超過 85000
個,微信支付用戶則達到了 4 億左右。

I. android平台通過WIFI網路實現音頻通話的方法

雖然沒有做過,但是我覺的應該是生產者-消費者的問題了,你創建一個List<byte[]>的鏈表,錄音時,依次生成固定大小的數組,放入鏈表。同時網路發送的線程不斷檢測List是否為空,不為空就取出第0個發送。另外如果錄音可能很大,可以封裝下鏈表,這樣每次加入鏈表時,鏈表自己檢測內存佔用,當鏈表數量大於某個值時,寫入本地文件。讀的時候,鏈表小於某個值,再從本地文件讀取加入鏈表,而調用介面不變。

閱讀全文

與android語音傳輸相關的資料

熱點內容
阿里雲伺服器能復制數據嗎 瀏覽:554
python拼音轉換文字 瀏覽:562
動畫遺傳演算法 瀏覽:63
php如何解析xml文件 瀏覽:702
如何改變appstore的語言 瀏覽:462
javahtmlxml 瀏覽:34
單片機啟動文件 瀏覽:811
橙app如何開啟聊天 瀏覽:899
訪問伺服器公網地址 瀏覽:666
pdf列印底色去掉 瀏覽:463
java快遞介面 瀏覽:397
哪個app可以教新爸爸 瀏覽:210
如何查看伺服器系統版本信息 瀏覽:524
成都市土地出讓金演算法 瀏覽:704
鋼筋加密標記 瀏覽:578
ps中擴展功能在文件夾的什麼位置 瀏覽:905
雙極壓縮機為什麼要先高壓 瀏覽:529
蘋果手機伺服器填什麼 瀏覽:833
android移動動畫效果 瀏覽:693
電子和伺服器是什麼意思 瀏覽:694