亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

一種VoIP服務器同步混音方法及系統(tǒng)的制作方法

文檔序號:2832973閱讀:258來源:國知局
專利名稱:一種VoIP服務器同步混音方法及系統(tǒng)的制作方法
技術領域
本發(fā)明屬于計算機技術領域,尤其涉及一種VoIP服務器同步混音方法及系統(tǒng)。
背景技術
隨著網絡技術的進步,網絡電話(Voice over Internet Protocol, VoIP)因為其低廉的通話費用和良好的網絡融合性,得到了越來越廣泛的應用。基于因特網(IP網絡)的電話會議系統(tǒng)可以利用企業(yè)原有的網絡線路和設備進行搭建,使用也非常方便,從而降低了企業(yè)成本。語音混音是VoIP電話會議系統(tǒng)和多媒體會議系統(tǒng)的重要組成部分,目前的混音方案采用了傳統(tǒng)的解碼-混音-編碼模式。然而,由于語音會議系統(tǒng)對時延控制要求比較高,大多數VoIP電話會議系統(tǒng)都是采用用戶數據包協(xié)議(UserDatagram Protocol,UDP)來發(fā)送音頻數據包,由于UDP的傳輸機制并不能保證數據包到達的順序與發(fā)送時順序相同,而且在傳輸過程中也并不 能保證數據包一定能到達目的地,從而導致VoIP電話會議系統(tǒng)音頻數據發(fā)生抖動,混音效果質量較差,目前,尚未有一種有效的方法來解決該問題。

發(fā)明內容
本發(fā)明實施例的目的在于提供一種VoIP服務器同步混音方法及系統(tǒng),旨在解決由于現(xiàn)有技術無法提供一種有效的VoIP服務器同步混音方法,導致VoIP服務器混音效果差的問題。本發(fā)明實施例是這樣實現(xiàn)的,一種VoIP服務器同步混音方法,所述方法包括下述步驟:檢測預先為各個VoIP客戶端分配的抖動緩存區(qū);當檢測到所有VoIP客戶端對應的抖動緩存區(qū)中都存在數據時,從各個VoIP客戶端對應的抖動緩存區(qū)中各自獲取一個數據包;對所有獲取的數據包進行解碼,根據預設的混音算法對解碼后的數據進行混音處理;將混音后的數據發(fā)送給所有VoIP客戶端。本發(fā)明實施例的另一目的在于提供一種VoIP服務器同步混音系統(tǒng),其特征在于,所述系統(tǒng)包括:緩存區(qū)檢測單元,用于檢測預先為各個VoIP客戶端分配的抖動緩存區(qū);第一數據包獲取單元,用于當檢測到所有VoIP客戶端對應的抖動緩存區(qū)中都存在數據時,從各個VoIP客戶端對應的抖動緩存區(qū)中各自獲取一個數據包;混音處理單元,用于對所有獲取的數據包進行解碼,根據預設的混音算法對解碼后的數據進行混音處理;以及數據發(fā)送單元,用于將混音后的數據發(fā)送給所有VoIP客戶端。本發(fā)明實施例檢測預先為各個VoIP客戶端分配的抖動緩存區(qū),當檢測到所有VoIP客戶端對應的抖動緩存區(qū)中都存在數據時,從各個VoIP客戶端對應的抖動緩存區(qū)中各自獲取一個數據包,對所有獲取的數據包進行解碼,根據預設的混音算法對解碼后的數據進行混音處理,將混音后的數據發(fā)送給所有VoIP客戶端,實現(xiàn)了 VoIP語音數據的混音,從而通過設置抖動緩存區(qū)有效消除了混音過程中數據的抖動,提高了混音質量,從而提高了 VoIP用戶的通話體驗。


圖1是本發(fā)明實施例一提供的VoIP服務器同步混音方法的實現(xiàn)流程圖;圖2是本發(fā)明實施例二提供的VoIP服務器同步混音方法的實現(xiàn)流程圖;圖3是本發(fā)明實施例三提供的VoIP服務器同步混音系統(tǒng)的結構圖;圖4是本發(fā)明實施例四提供的VoIP服務器同步混音系統(tǒng)的結構圖。
具體實施例方式為了使本發(fā)明的目的、技術方案及優(yōu)點更加清楚明白,以下結合附圖及實施例,對本發(fā)明進行進一步詳細說明。應當理解,此處所描述的具體實施例僅僅用以解釋本發(fā)明,并不用于限定本發(fā)明。以下結合具體實施例對本發(fā)明的具體實現(xiàn)進行詳細描述:實施例一:圖1示出了本發(fā)明實施例一提供的VoIP服務器同步混音方法的實現(xiàn)流程,詳述如下:
在步驟SlOl中,檢測預先為各個VoIP客戶端分配的抖動緩存區(qū)。在本發(fā)明實施例中,為了緩存VoIP客戶端發(fā)送過來的語音數據,應預先為各個VoIP客戶端分配一個對應的緩存區(qū),以用于緩存語音數據,對語音數據進行排序,從而有效消除使用UDP協(xié)議發(fā)送數據所引起的數據抖動問題。在具體的實施過程中,抖動緩存區(qū)可以用鏈表的形式進行表示,從而方便數據的存儲和刪除,提高緩存區(qū)的利用率。具體地,每個節(jié)點為一個結構體,該結構體保存的信息包括:數據的長度、時間戳、數據對應的時長(本數據包含多長時間的數據,一般為20ms)、指向存儲實際數據的指針。在接收到數據包之后,可以根據其頭部的VoIP客戶端標識信息,將其放入到對應的抖動緩存區(qū)中。在放入抖動緩存區(qū)中時,如果抖動緩存區(qū)已滿,則將最老(所謂最老即指時間戳最小)的數據包丟掉,按照時間戳的大小在其適當的位置插入該數據包,以確保在抖動緩存區(qū)中所有的數據包都是按時間戳從小到大的順序排列的。在步驟S102中,當檢測到所有VoIP客戶端對應的抖動緩存區(qū)中都存在數據時,從各個VoIP客戶端對應的抖動緩存區(qū)中各自獲取一個數據包。在本發(fā)明實施例中,檢測到所有VoIP客戶端對應的抖動緩存區(qū)中都存在數據時,從各個VoIP客戶端對應的抖動緩存區(qū)中各自獲取一個數據包,以用于后續(xù)的語音混音處理。在步驟S103中,對所有獲取的數據包進行解碼,根據預設的混音算法對解碼后的數據進行混音處理。在本發(fā)明實施例中,由于語音數據在傳送到VoIP服務器上時,已進行了編碼,因此,應相對地對其解碼,解碼后根據預設的混音算法對解碼后的數據進行混音處理。具體地,預設的混音算法可以是平均混音算法、箝位混音算法等,在此不用以限制本發(fā)明。在步驟S104中,將混音后的數據發(fā)送給所有VoIP客戶端。本發(fā)明實施例通過預先為各個VoIP客戶端分配抖動緩存區(qū),緩存各個VoIP客戶端發(fā)送的數據包,對所有獲取的數據包進行解碼,根據預設的混音算法對解碼后的數據進行混音處理,實現(xiàn)了 VoIP語音數據的混音,從而有效消除了混音過程中數據的抖動,提高了混音的效果,從而提高了 VoIP用戶的通話體驗。實施例二:圖2示出了本發(fā)明實施例二提供的VoIP服務器同步混音方法的實現(xiàn)流程,詳述如下:在步驟S201中,檢測預先為各個VoIP客戶端分配的抖動緩存區(qū)。在本發(fā)明實施例中,為了緩存VoIP客戶端發(fā)送過來的語音數據,應預先為各個VoIP客戶端分配一個對應的緩存區(qū),以用于緩存語音數據,對語音數據進行排序,從而有效消除使用UDP協(xié)議發(fā)送數據所引起的數據抖動問題。在步驟S202中,判斷此次檢測時間是否超過預設的檢測時間,是則執(zhí)行步驟S207,否則執(zhí)行步 驟S203。在本發(fā)明實施例中,對檢測時間進行計時,判斷每次檢測時間是否超過預設的檢測時間,檢測時間對混音效果會產生很大的影響。若檢測時間太長,因為有時某路(從某個VoIP客戶端發(fā)送的數據)會出現(xiàn)丟包的現(xiàn)象,延時就會變大,若檢測時間短就會因為各個VoIP客戶端的語音數據太散列而導致混音效果變差。經過大量的實驗測試得出,預設的檢測時間優(yōu)選為500-1000毫秒。在步驟S203中,判斷是否檢測到所有VoIP客戶端對應的抖動緩存區(qū)中都存在數據,是則執(zhí)行步驟S204,否則執(zhí)行步驟S201。在步驟S204中,從各個VoIP客戶端對應的抖動緩存區(qū)中各自獲取一個數據包。在步驟S205中,對所有獲取的數據包進行解碼,根據預設的混音算法對解碼后的數據進行混音處理。在步驟S206中,將混音后的數據發(fā)送給所有VoIP客戶端。在本發(fā)明實施例中,步驟S204至S206其具體實施與實施一中步驟S102至S104相同,在此不贅述。在步驟S207中,從存在數據包的各個VoIP客戶端對應的抖動緩存區(qū)中獲取數據包。在本發(fā)明實施例中,當循環(huán)檢測時間超過預設的檢測時間,并未檢測到所有的VoIP客戶端對應的抖動緩存區(qū)中都存在數據時,從存在數據包的各個VoIP客戶端對應的抖動緩存區(qū)中獲取數據包。在具體實施的實施過程中,也可以是從所有VoIP客戶端對應的抖動緩存區(qū)中獲取數據包,只是從不存在數據的緩存區(qū)獲取的結果為空。獲取數據包之后觸發(fā)步驟S205,對所有獲取的數據包進行解碼,根據預設的混音算法對解碼后的數據進行混音處理。本發(fā)明實施例通過預先為各個VoIP客戶端分配抖動緩存區(qū),對接收到的數據進行調整,另一方面通過合理設置檢測時間,防止語音數據的丟失以及語音數據過于散列,有效消除了混音過程中數據的抖動,提高了混音質量。本領域普通技術人員可以理解實現(xiàn)上述實施例方法中的全部或部分步驟是可以通過程序來指令相關的硬件來完成,所述的程序可以存儲于一計算機可讀取存儲介質中,所述的存儲介質,如R0M/RAM、磁盤、光盤等。實施例三:圖3示出了本發(fā)明實施例三提供的VoIP服務器同步混音系統(tǒng)的結構,為了便于說明,僅不出了與本發(fā)明實施例相關的部分,其中包括:緩存區(qū)檢測單元31檢測預先為各個VoIP客戶端分配的抖動緩存區(qū)。在本發(fā)明實施例中,為了緩存VoIP客戶端發(fā)送過來的語音數據,應預先為各個VoIP客戶端分配一個對應的緩存區(qū),以用于緩存語音數據,對語音數據進行排序,從而有效消除使用UDP協(xié)議發(fā)送數據所引起的數據抖動問題。第一數據包獲取單元32當檢測到所有VoIP客戶端對應的抖動緩存區(qū)中都存在數據時,從各個VoIP客戶端對應的抖動緩存區(qū)中各自獲取一個數據包。在本發(fā)明實施例中,檢測到所有VoIP客戶端對應的抖動緩存區(qū)中都存在數據時,從各個VoIP客戶端對應的抖動緩存區(qū)中各自獲取一個數據包,以用于后續(xù)的混音處理?;煲籼幚韱卧?3對所有獲取的數據包進行解碼,根據預設的混音算法對解碼后的數據進行混音處理。在本發(fā)明實施例中,由于語音數據在傳送到VoIP服務器上時,已進行了編碼,因此,應相對地對其解碼,解碼后根據預設的混音算法對解碼后的數據進行混音處理。具體地,預設的混音算法可以是平均混音算法、箝位混音算法等,在此不用以限制本發(fā)明。數據發(fā)送單元34將混音后的數據發(fā)送給所有VoIP客戶端。在本發(fā)明實施中,各單元的具體實施方式
與實施例一中各步驟相對應,在此不再贅述。本發(fā)明實施例通過預先為各個VoIP客戶端分配抖動緩存區(qū),緩存各個VoIP客戶端發(fā)送的數據包,對所有獲取的數據包進行解碼,根據預設的混音算法對解碼后的數據進行混音處理,實現(xiàn)了 VoIP語音數據的混音,從而有效消除了混音過程中數據的抖動,提高了混音的效果,從而提高了 VoIP用戶的通話體驗。實施例四:圖4示出了本發(fā)明實施例四提供的VoIP服務器同步混音系統(tǒng)的結構,為了便于說明,僅不出了與本發(fā)明實施例相關的部分,其中包括:緩存區(qū)檢測單元41檢測預先為各個VoIP客戶端分配的抖動緩存區(qū)。檢測時間判斷單元42判斷此次檢測時間是否超過預設的檢測時間。在本發(fā)明實施例中,當檢測時間判斷單元42判斷此次檢測時間超過預設的檢測時間,觸發(fā)第二數據包獲取單元46執(zhí)行從存在數據包的各個VoIP客戶端對應的抖動緩存區(qū)中獲取數據包的步驟。第一數據包獲取單元43當檢測到所有VoIP客戶端對應的抖動緩存區(qū)中都存在數據時,從各個VoIP客戶端對應的抖動緩存區(qū)中各自獲取一個數據包。在本發(fā)明實施例中,當檢測時間判斷單元42判斷此次檢測時間沒有超過預設的檢測時間,且檢測到所有VoIP客 戶端對應的抖動緩存區(qū)中都存在數據時,第一數據包獲取單元43從各個VoIP客戶端對應的抖動緩存區(qū)中各自獲取一個數據包?;煲籼幚韱卧?4對所有獲取的數據包進行解碼,根據預設的混音算法對解碼后的數據進行混音處理。數據發(fā)送單元45將混音后的數據發(fā)送給所有VoIP客戶端。第二數據包獲取單元46當所述檢測時間判斷單元42判斷此次檢測時間超過預設的檢測時間時,從存在數據包的各個VoIP客戶端對應的抖動緩存區(qū)中獲取數據包。在本發(fā)明實施例中,當循環(huán)檢測時間超過預設的檢測時間,并未檢測到所有的VoIP客戶端對應的抖動緩存區(qū)中都存在數據時,從存在數據包的各個VoIP客戶端對應的抖動緩存區(qū)中獲取數據包。在具體實施的實施過程中,也可以是從所有VoIP客戶端對應的抖動緩存區(qū)中獲取數據包,只是從不存在數據的緩存區(qū)獲取的結果為空。因此,第二數據包獲取單元46和第一數據包獲取單元43在具體實施過程中可以由一個單元完成,在此不用以限制本發(fā)明。在本發(fā)明實施中,各單元的具體實施方式
與實施例二中各步驟相對應,在此不再贅述。本發(fā)明實施例檢測預先為各個VoIP客戶端分配的抖動緩存區(qū),當檢測到所有VoIP客戶端對應的抖動緩存區(qū)中都存在數據時,從各個VoIP客戶端對應的抖動緩存區(qū)中各自獲取一個數據包,對所有獲取的數據包進行解碼,根據預設的混音算法對解碼后的數據進行混音處理,將混音后的數據發(fā)送給所有VoIP客戶端,從而通過預先為各個VoIP客戶端分配抖動緩存區(qū),對接收到的數據進行調整,另一方面通過合理設置檢測時間,防止語音數據的丟失以及語音數據過于散列,有效消除了混音過程中數據的抖動,提高了混音質量。以上所述僅為本發(fā)明的較佳實施例而已,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內所作的任何·修改、等同替換和改進等,均應包含在本發(fā)明的保護范圍之內。
權利要求
1.一種VoIP服務器同步混音方法,其特征在于,所述方法包括下述步驟: 檢測預先為各個VoIP客戶端分配的抖動緩存區(qū); 當檢測到所有VoIP客戶端對應的抖動緩存區(qū)中都存在數據時,從各個VoIP客戶端對應的抖動緩存區(qū)中各自獲取一個數據包; 對所有獲取的數據包進行解碼,根據預設的混音算法對解碼后的數據進行混音處理; 將混音后的數據發(fā)送給所有VoIP客戶端。
2.如權利要求1所述的方法,其特征在于,所述數據包包括數據包中數據的長度、時間戳以及數據對應的時長。
3.如權利要求1所述的方法,其特征在于,所述當檢測到所有VoIP客戶端對應的抖動緩存區(qū)中都存在數據時,從各個VoIP客戶端對應的抖動緩存區(qū)中各自獲取一個數據包的步驟之前,所述方法還包括: 判斷此次檢測時間是否超過預設的檢測時間; 當此次檢測時間沒有超過預設的檢測時間,且檢測到所有VoIP客戶端對應的抖動緩存區(qū)中都存在數據時,執(zhí)行所述從各個VoIP客戶端對應的抖動緩存區(qū)中各自獲取一個數據包的步驟。
4.如權利要求3所述的方法,其特征在于,所述方法還包括下述步驟: 當此次檢測時間超過預設的檢測時間時,從存在數據包的各個VoIP客戶端對應的抖動緩存區(qū)中獲取數據包,并跳轉至所述對所有獲取的數據包進行解碼,根據預設的混音算法對解碼后的數據進行混音處理 的步驟。
5.如權利要求3或4所述的方法,其特征在于,所述預設的檢測時間為500-1000毫秒。
6.如權利要求1所述的方法,其特征在于,所述混音算法為箝位混音算法。
7.—種VoIP服務器同步混音系統(tǒng),其特征在于,所述系統(tǒng)包括: 緩存區(qū)檢測單元,用于檢測預先為各個VoIP客戶端分配的抖動緩存區(qū); 第一數據包獲取單元,用于當檢測到所有VoIP客戶端對應的抖動緩存區(qū)中都存在數據時,從各個VoIP客戶端對應的抖動緩存區(qū)中各自獲取一個數據包; 混音處理單元,用于對所有獲取的數據包進行解碼,根據預設的混音算法對解碼后的數據進行混音處理;以及 數據發(fā)送單元,用于將混音后的數據發(fā)送給所有VoIP客戶端。
8.如權利要求7所述的系統(tǒng),其特征在于,所述系統(tǒng)還包括: 檢測時間判斷單元,用于判斷此次檢測時間是否超過預設的檢測時間。
9.如權利要求8所述的系統(tǒng),其特征在于,所述系統(tǒng)還包括: 第二數據包獲取單元,用于當所述檢測時間判斷單元判斷此次檢測時間超過預設的檢測時間時,從存在數據包的各個VoIP客戶端對應的抖動緩存區(qū)中獲取數據包。
10.如權利要求8或9所述的系統(tǒng),其特征在于,所述預設的檢測時間為500-1000毫秒。
全文摘要
本發(fā)明適用于計算機技術領域,提供了一種VoIP服務器同步混音方法及系統(tǒng),所述方法包括下述步驟檢測預先為各個VoIP客戶端分配的抖動緩存區(qū);當檢測到所有VoIP客戶端對應的抖動緩存區(qū)中都存在數據時,從各個VoIP客戶端對應的抖動緩存區(qū)中各自獲取一個數據包;對所有獲取的數據包進行解碼,根據預設的混音算法對解碼后的數據進行混音處理;將混音后的數據發(fā)送給所有VoIP客戶端。本發(fā)明通過設置抖動緩存區(qū)有效消除了混音過程中數據的抖動,提高了混音的效果,從而提高了VoIP用戶的通話體驗。
文檔編號G10L19/008GK103248774SQ20121003163
公開日2013年8月14日 申請日期2012年2月13日 優(yōu)先權日2012年2月13日
發(fā)明者張海東, 陳劍勇 申請人:陳劍勇
網友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1