CN102436818A - 一种基于能量优先的服务器端选路混音方法 - Google Patents
一种基于能量优先的服务器端选路混音方法 Download PDFInfo
- Publication number
- CN102436818A CN102436818A CN201110325795XA CN201110325795A CN102436818A CN 102436818 A CN102436818 A CN 102436818A CN 201110325795X A CN201110325795X A CN 201110325795XA CN 201110325795 A CN201110325795 A CN 201110325795A CN 102436818 A CN102436818 A CN 102436818A
- Authority
- CN
- China
- Prior art keywords
- energy value
- data
- client
- server end
- coding
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
- Telephonic Communication Services (AREA)
Abstract
本发明涉及一种基于能量优先的服务器端选路混音方法。传统混音方法中服务器端cpu负担较大。本发明方法首先是客户端将每帧声音数据的能量值和编码后的声音数据发送到服务器端,服务器端从n个用户中选取能量值最大的m个用户:如m=1,将能量值最大的数据包发送给其他客户端;如m=2,将能量值最大的2个数据包解码、混音和编码后发送给其他客户端,选中的两个数据包互相转发;如m≥3,将能量值最大的m个数据包解码、混音和编码后发送给其他客户端,选中的m个客户端将除自己数据外的数据包进行混音、编码打包后发送给自己;客户端收到数据包后,直接解码播放。本发明方法可有效降低服务器端混音时的cpu消耗,提高混音后的声音质量。
Description
技术领域
本发明属于数字语音通信技术领域,具体涉及一种基于能量优先的服务器端选路混音方法。
背景技术
在语音通信领域(如在线教育***、视频会议***等),多人具有说话权限的情况下,在服务器端进行混音与在客户端进行混音相比可以降低服务器端的网络带宽,从而节省网络带宽成本。
在多人交互的语音通信***中,混音是必不可少的一步,实现方法主要有在服务器端实现和在客户端实现两种。在服务器端实现时,服务器会将接收到的多路语音数据进行解码和混音,然后将混音后的数据编码打包,作为一路语音数据发送给听众;在客户端实现时,服务器不对接收到的多路语音数据进行处理,而是直接将接收到的语音数据转发给听众。这两种实现方案各有优缺点,假设有n个人有说话权下,则在服务器端实现混音时,由于混音后的语音数据流量从n路变成了1路,所以优点是可以降低服务器端的带宽需求,因为要进行解码、混音和编码等操作,则相应的缺点就是会占用较多的服务器端的cpu资源;而在客户端实现混音时,服务器端仅是进行n个人的语音数据转发操作,优点是不会占用服务器端的cpu资源,但是由于服务器端要发送n路语音数据给听众,所以缺点就是会增加对服务器端的带宽需求。
考虑到海量用户模式下,对服务器端的带宽要求会大大增加,所以在面向海量用户的***中,为了节省带宽成本,降低传输延迟从而获得更好的语音效果,在服务器端进行混音将会是比较好的方案。在服务器端进行混音时,传统混音方法是需要对每一路具有说话权限的用户数据进行解码,然后再混音和编码,大多情况下语音的编解码会对服务器端的cpu造成比较大的负担。如果同时具有说话权限的人数太多的话,会造成cpu不够用,从而影响到***的整体性能,造成声音断续,延迟增大等;而且绝大多数情况下,n个人具有说话权限,并不是说同时有n个人在说话,很可能只是有1个人或者2个人在同时说话,此时如果对n路都进行混音的话,一方面会将不说话的人的杂音带进混音后的语音数据中,另一方面还增加了混音后的语音数据超出取值范围(一般是16位的short型数据)的概率,从而造成语音混浊不清、破音等音质下降的问题,因此一般的大型视频会议***都会严格限制同时具有说话权限的人数。
在使用传统方法混音时需要的编解码次数和混音次数如下:
n=1时,不需要编解码和混音;
n=2时,需要解码2次,编码1次,混音1次;
n>2时,需要解码n次,编码n+1次,混音n+1次。
因为当n>2时,除了要将n个人进行1次混音后编码发送给听众外,还需要在这n个人之间互相操作,首先排除自己的声音,接着进行其他n-1个人的混音,然后将混音后的语音编码打包后发送给自己,所以一共需要n+1次的混音和编码。
可以看出,传统方法中随着n的增加,编解码次数和混音次数都是成线性增加的,将会对服务器端的cpu造成极大的负担。
发明内容
本发明的目的就是针对现有技术的不足,提供一种基于能量优先的服务器端选路混音方法,利用该方法可使在服务器端混音时降低服务器端混音时的cpu消耗,提高混音后的声音质量,使同时具有说话权限的人数大大得到提高。
本发明方法的具体步骤是:
步骤(1).客户端根据每一帧的声音数据长度,计算采集到的每一帧声音数据的能量值e,该帧中的每个采样点的绝对值的和即为该帧声音数据的能量值e;
步骤(2).用编码器对每一帧声音数据进行编码;
步骤(3).客户端将每一帧声音数据的能量值e和编码后的声音数据一起打包成数据包发送到服务器端;
步骤(4).服务器端从数据包中调取出各帧声音数据的能量值e,并从n个用户中选取能量值e最大的m个用户, m值根据需要***中配置,1≤m≤n;
如设定m=1,则从n个用户中选择能量值e最大的1个数据包发送给除该能量值e最大的客户以外的其他客户端;
如设定m=2,则从n个用户中选择能量值e最大的2个数据包进行解码、混音和编码,然后将打包后的数据发送给除该2个能量值e最大的客户以外其他客户端,被选中的两个数据包互相转发;
如设定m≥3,则从n个用户中选择能量值e最大的m个数据包进行解码、混音和编码,然后将打包后的数据发送给除该m个能量值e最大的客户以外其他客户端,被选中的m个客户端,排除掉自己的数据后,将其他m-1个数据包进行混音、编码打包后发送给自己;
步骤(5).客户端收到数据包后,直接解码播放。
本发明利用了人的听觉特性,在n(n>0)个人具有说话权限的情况下,通过能量选择原则,选择说话声音最大的m个人(n≥m≥1)进行混音,m是在***中配置的,这样既可以减少混音其他不说话人的杂音,降低破音概率,保证混音后的说话质量,又减少了cpu的消耗。
可以看出,与传统方法中相比,本发明需要的编解码次数和混音次数只是和配置的实际混音人数m有关,和拥有说话权限的人数n并没有关系。在n≤2的情况下,本发明的优势并不明显,但是随着n的增大,如果配置成m=1或者2,本发明的优势就会得到极大的体现,通过实际使用表明,m=2时是一个比较好的取值,在n取值比较大的情况下,不仅极大地降低了cpu的消耗,而且对混音后的音质影响也很小,可以满足绝大多数的使用情况,使同时具有说话权限的人数n获得大大提高,而不会给服务器的cpu带来多少负担。
具体实施方式
一种基于能量优先的服务器端选路混音方法,具体步骤是:
步骤(1).客户端根据每一帧的声音数据长度,计算采集到的每一帧声音数据的能量值e,该帧中的每个采样点的绝对值的和即为该帧声音数据的能量值e;
步骤(2).用编码器对每一帧声音数据进行编码;
步骤(3).客户端将每一帧声音数据的能量值e和编码后的声音数据一起打包成数据包发送到服务器端;
步骤(4).服务器端从数据包中调取出各帧声音数据的能量值e,并从n个用户中选取能量值e最大的m个用户, m值根据需要***中配置,1≤m≤n;
如设定m=1,则从n个用户中选择能量值e最大的1个数据包发送给除该能量值e最大的客户以外的其他客户端;
如设定m=2,则从n个用户中选择能量值e最大的2个数据包进行解码、混音和编码,然后将打包后的数据发送给除该2个能量值e最大的客户以外其他客户端,被选中的两个数据包互相转发;
如设定m≥3,则从n个用户中选择能量值e最大的m个数据包进行解码、混音和编码,然后将打包后的数据发送给除该m个能量值e最大的客户以外其他客户端,被选中的m个客户端,排除掉自己的数据后,将其他m-1个数据包进行混音、编码打包后发送给自己;
混音后的数据S通过直接对m路数据进行求和得到,如果语音采样点是用16位的short型来表示的,那么混音后的语音数据S的取值范围为32767≥ S ≥-32768;
步骤(5).客户端收到数据包后,直接解码播放。
由此可见:m=1时,不需要编解码和混音;m=2时,需要解码2次、编码1次、混音1次;m≥3时,需要解码m次,编码m+1次,混音m+1次。
Claims (1)
1.一种基于能量优先的服务器端选路混音方法,其特征在于该方法的具体步骤是:
步骤(1).客户端根据每一帧的声音数据长度,计算采集到的每一帧声音数据的能量值e,该帧中的每个采样点的绝对值的和即为该帧声音数据的能量值e;
步骤(2).用编码器对每一帧声音数据进行编码;
步骤(3).客户端将每一帧声音数据的能量值e和编码后的声音数据一起打包成数据包发送到服务器端;
步骤(4).服务器端从数据包中调取出各帧声音数据的能量值e,并从n个用户中选取能量值e最大的m个用户, m值根据需要***中配置,1≤m≤n;
如设定m=1,则从n个用户中选择能量值e最大的1个数据包发送给除该能量值e最大的客户以外的其他客户端;
如设定m=2,则从n个用户中选择能量值e最大的2个数据包进行解码、混音和编码,然后将打包后的数据发送给除该2个能量值e最大的客户以外其他客户端,被选中的两个数据包互相转发;
如设定m≥3,则从n个用户中选择能量值e最大的m个数据包进行解码、混音和编码,然后将打包后的数据发送给除该m个能量值e最大的客户以外其他客户端,被选中的m个客户端,排除掉自己的数据后,将其他m-1个数据包进行混音、编码打包后发送给自己;
步骤(5).客户端收到数据包后,直接解码播放。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201110325795XA CN102436818A (zh) | 2011-10-25 | 2011-10-25 | 一种基于能量优先的服务器端选路混音方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201110325795XA CN102436818A (zh) | 2011-10-25 | 2011-10-25 | 一种基于能量优先的服务器端选路混音方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN102436818A true CN102436818A (zh) | 2012-05-02 |
Family
ID=45984839
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201110325795XA Pending CN102436818A (zh) | 2011-10-25 | 2011-10-25 | 一种基于能量优先的服务器端选路混音方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102436818A (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111585776A (zh) * | 2020-05-26 | 2020-08-25 | 腾讯科技(深圳)有限公司 | 数据传输方法、装置、设备及计算机可读存储介质 |
CN112104836A (zh) * | 2020-11-23 | 2020-12-18 | 全时云商务服务股份有限公司 | 一种音频服务器混音方法、***、存储介质及设备 |
CN113194335A (zh) * | 2021-06-30 | 2021-07-30 | 阿里云计算有限公司 | 流媒体传输方法、传输设备和播放设备 |
US11842751B2 (en) | 2019-12-23 | 2023-12-12 | Tencent Technology (Shenzhen) Company Limited | Call method, apparatus, and system, server, and storage medium |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101252452A (zh) * | 2007-03-31 | 2008-08-27 | 红杉树(杭州)信息技术有限公司 | 一种多媒体会议中分布式混音*** |
CN101510988A (zh) * | 2009-02-19 | 2009-08-19 | 深圳华为通信技术有限公司 | 一种语音信号的处理、播放方法和装置 |
CN102065265A (zh) * | 2009-11-13 | 2011-05-18 | 华为终端有限公司 | 实现混音的方法、装置和*** |
-
2011
- 2011-10-25 CN CN201110325795XA patent/CN102436818A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101252452A (zh) * | 2007-03-31 | 2008-08-27 | 红杉树(杭州)信息技术有限公司 | 一种多媒体会议中分布式混音*** |
CN101510988A (zh) * | 2009-02-19 | 2009-08-19 | 深圳华为通信技术有限公司 | 一种语音信号的处理、播放方法和装置 |
CN102065265A (zh) * | 2009-11-13 | 2011-05-18 | 华为终端有限公司 | 实现混音的方法、装置和*** |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11842751B2 (en) | 2019-12-23 | 2023-12-12 | Tencent Technology (Shenzhen) Company Limited | Call method, apparatus, and system, server, and storage medium |
CN111585776A (zh) * | 2020-05-26 | 2020-08-25 | 腾讯科技(深圳)有限公司 | 数据传输方法、装置、设备及计算机可读存储介质 |
CN112104836A (zh) * | 2020-11-23 | 2020-12-18 | 全时云商务服务股份有限公司 | 一种音频服务器混音方法、***、存储介质及设备 |
CN113194335A (zh) * | 2021-06-30 | 2021-07-30 | 阿里云计算有限公司 | 流媒体传输方法、传输设备和播放设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1914922B (zh) | 内容的编码、分发及接收的方法、装置、*** | |
CN103179431B (zh) | Vdi环境下音视频重定向转码分离方法 | |
JP5320406B2 (ja) | オーディオ処理の方法、システム、及び制御サーバ | |
CN101313525B (zh) | 启用高质量实时音频的基础结构 | |
CN103023813B (zh) | 抖动缓冲器 | |
JP2011508546A5 (zh) | ||
CN101536088B (zh) | 用于提供冗余管理的***和方法 | |
CN100407708C (zh) | 一种即时通讯中音/视频分享的方法和*** | |
CN109618170B (zh) | 基于网络编码的d2d实时视频流传输方法 | |
CN102436818A (zh) | 一种基于能量优先的服务器端选路混音方法 | |
CN104167210A (zh) | 一种轻量级的多方会议混音方法和装置 | |
CN102291399A (zh) | 一种流媒体切换台 | |
KR102163338B1 (ko) | 방송 및 통신 시스템에서 패킷 송수신 장치 및 방법 | |
KR102564427B1 (ko) | 무접속 무선 미디어 브로드캐스트 | |
WO2004092888A3 (en) | Scalable array encoding system and method | |
CN103428175A (zh) | 基于异构移动ip网络的实时语音对讲*** | |
US20150237524A1 (en) | Method for transmitting audio information and packet communication system | |
CN101692711A (zh) | 视频编解码方法、***及一种视频监控*** | |
CN106653034A (zh) | 一种用于移动终端的语音通信***和方法 | |
Toemoeskoezi et al. | On the packet delay characteristics for serially-connected links using random linear network coding with and without recoding | |
WO2011012029A1 (zh) | 多描述音频编解码的方法、装置及*** | |
JP4218456B2 (ja) | 通話装置、通話方法及び通話システム | |
CN210129959U (zh) | 一种无线局域网络音频流传输*** | |
CN103686059A (zh) | 分布式混音处理方法及*** | |
CN103200564A (zh) | 基于ofdm的gsm语音加密***及加密方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C02 | Deemed withdrawal of patent application after publication (patent law 2001) | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20120502 |