CN110418021A - 一种基于双缓冲区智能缓存的语音对讲实现方法 - Google Patents
一种基于双缓冲区智能缓存的语音对讲实现方法 Download PDFInfo
- Publication number
- CN110418021A CN110418021A CN201910697141.6A CN201910697141A CN110418021A CN 110418021 A CN110418021 A CN 110418021A CN 201910697141 A CN201910697141 A CN 201910697141A CN 110418021 A CN110418021 A CN 110418021A
- Authority
- CN
- China
- Prior art keywords
- voice
- speech
- buffering area
- data
- implementation method
- 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.)
- Granted
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/56—Provisioning of proxy services
- H04L67/568—Storing data temporarily at an intermediate stage, e.g. caching
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04M—TELEPHONIC COMMUNICATION
- H04M7/00—Arrangements for interconnection between switching centres
- H04M7/006—Networks other than PSTN/ISDN providing telephone service, e.g. Voice over Internet Protocol (VoIP), including next generation networks with a packet-switched transport layer
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Telephonic Communication Services (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明提出了一种基于双缓冲区智能缓存的语音对讲实现方法,包括:设置第一语音缓冲区和第二语音缓冲区;对第一语音缓冲区和第二语音缓冲区进行初始化;当检测到一个讲话方的语音到来时,发出话权信令将话权切换到第一语音缓冲区,根据写指针的位置向第一语音缓冲区写入语音数据直至话权结束;当话权切换至另一个讲话方时,则发出话权信令将话权切换到第二语音缓冲区,根据写指针的位置向第二语音缓冲区写入语音数据直至话权结束;当话权再次切换时,则发出话权信令将话权切换到第一语音缓冲区,如此往复。本发明采用语音双缓冲区的方案,解决网络不佳引发的报文抖动、语音不连续、语音话权切换等问题,提升公网对讲语音的质量。
Description
技术领域
本发明涉及信息通讯技术领域,特别涉及一种基于双缓冲区智能缓存的语音对讲实现方法。
背景技术
众所周知,基于运营商网络的VOIP语音在实际传输和业务应用中,都会碰到网络丢包、网络抖动等问题,从而导致语音不连续、质量下降,影响客户体验。而解决网络抖动问题的主要手段就是进行语音缓存,通过语音缓存保证语音连续性。
然而基于运营商网络的语音对讲业务,除了解决网络抖动的语音缓存外,还需要解决话权切换场景下的语音播放问题。语音对讲业务,解决的方法一般还是延续VOIP语音的方案,采用单缓冲区进行语音缓存,这种方案存在如下一些问题:
(1)无法灵活调整缓冲区大小,导致语音不连续或者语音延时较大。
(2)语音话权切换时,无法准确判断语音播放的起始和停止点,从而导致语音漏字现象,也无法准确播放提示音。
(3)尤其是在遇到语音话权抢占时,可能导致话权切换失败,状态异常,从而影响正常对讲业务。
发明内容
本发明的目的旨在至少解决所述技术缺陷之一。
为此,本发明的目的在于提出一种基于双缓冲区智能缓存的语音对讲实现方法。
为了实现上述目的,本发明的实施例提供一种基于双缓冲区智能缓存的语音对讲实现方法,包括如下步骤:
步骤S1,设置第一语音缓冲区和第二语音缓冲区,其中,每个所述语音缓冲区对应一段语音通话的一个话权的讲话方,当话权切换时,语音缓冲区也相应切换;
步骤S2,对所述第一语音缓冲区和第二语音缓冲区进行初始化;
步骤S3,当检测到一个讲话方的语音到来时,发出话权信令将话权切换到第一语音缓冲区,根据写指针的位置向第一语音缓冲区写入语音数据直至话权切换;当话权切换至另一个讲话方时,则发出话权信令将话权切换到第二语音缓冲区,根据写指针的位置向第二语音缓冲区写入语音数据直至话权切换;当话权再次切换时,则发出话权信令将话权切换到第一语音缓冲区,如此往复。
进一步,在所述步骤S1中,采用智能缓冲策略根据统计得到的网络时延对所述第一语音缓冲区和第二语音缓冲区的大小进行调整。
进一步,在所述步骤S2中,所述对第一语音缓冲区和第二语音缓冲区进行初始化,包括如下步骤:将第一语音缓冲区和第二语音缓冲区的数据清零、初始化读指针的位置和写指针的位置。
进一步,每个所述语音缓冲区设置有读数据指针标识和写数据指针标识,其中,所述读数据指针标识用于判断读语音数据标识,所述写数据指针标识用于判断写语音数据标识。
进一步,每个语音缓冲区均循环使用。
进一步,在所述步骤S3中,从每个语音缓冲区读取语音数据时,等待语音数据在语音缓冲区缓冲到预设长度后开始读取数据,并持续读数据和播放语音,直到将所有写的数据读完为止。
进一步,在所述步骤S3中,在根据话权信令的基础上,进一步根据当前语音播放的位置判断话权切换。
进一步,在所述步骤S3中,当话权用户切换时,语音报文对应的会话ID会变化,当检测到会话ID变化时,则开始切换对应的写数据的语音缓冲区,并向该语音缓冲区持续写入语音数据,直至下一次会话切换。
进一步,在所述步骤S3中,当读数据缓冲到预设长度后,开始读语音数据并解码播放,直至将已有数据全部读完且话权用户已经切换,则停止读取本次会话的语音数据。
根据本发明实施例的基于双缓冲区智能缓存的语音对讲实现方法,具有以下有益效果:
(1)区别于传统的VOIP语音的单缓冲区方案,采用语音双缓冲区的方案,解决网络不佳引发的报文抖动、语音不连续、语音话权切换等问题,提升公网对讲语音的质量;
(2)根据语音数据的大小,能够准确判断语音开始和结束播放的位置点,避免漏字现象,从而更准确进行话权结束的声音提示;
(3)在进行话权切换时,能够解决话权抢占场景下语音尾音的问题,保证不会漏播语音包;
(4)通过智能缓存,能够适应不同的网络场景,保证语音总是连续的。
本发明附加的方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明的实践了解到。
附图说明
本发明的上述和/或附加的方面和优点从结合下面附图对实施例的描述中将变得明显和容易理解,其中:
图1为根据本发明实施例的基于双缓冲区智能缓存的语音对讲实现方法的流程图;
图2为根据本发明实施例的基于双缓冲区智能缓存的语音对讲实现方法的示意图。
具体实施方式
下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,旨在用于解释本发明,而不能理解为对本发明的限制。
本发明提供一种基于双缓冲区智能缓存的语音对讲实现方法,可以应用于公网对讲通讯领域,解决网络不佳引发的报文抖动、语音话权切换等问题,提升公网对讲语音的质量。
如图1所示,本发明实施例的基于双缓冲区智能缓存的语音对讲实现方法,包括如下步骤:
步骤S1,设置第一语音缓冲区和第二语音缓冲区。通过设置语音缓冲区进行语音缓存,可以解决网络抖动造成的报文乱序、报文延时等问题。
其中,每个语音缓冲区对应一段语音通话的一个话权的讲话方,当话权切换时,语音缓冲区也相应切换。在本发明的实施例中,每个语音缓冲区均循环使用。即:两个语音缓冲区循环使用,不需要多个缓冲区,这是由语音对讲的特点决定。因为PTT语音的特点,在同一时刻只能一个人讲话,即同一时刻只会有一个写缓冲区。读和写只会发生一次切换。因此,只需要两个缓冲区来回切换即可。
在本步骤中,根据网络抖动的统计数据,灵活计算缓冲区的大小。具体的,采用智能缓冲策略根据统计得到的网络时延对第一语音缓冲区和第二语音缓冲区的大小进行调整。采用智能缓冲策略可以更好地解决语音缓存大小的问题,能够适应不同的网络。
在本发明的实施例中,分别初始化2个固定大小的语音缓冲区,语音缓冲区的大小取决于最大的语音缓存时长。需要说明的是,上述“固定大小”是指语音缓冲区对应的最大的语音缓存时长。
在本发明的实施例中,每个语音缓冲区设置有读数据指针标识和写数据指针标识。其中,读数据指针标识用于判断读语音数据标识,写数据指针标识用于判断写语音数据标识。
步骤S2,在使用语音缓冲区前,对第一语音缓冲区和第二语音缓冲区进行初始化。
具体的,对第一语音缓冲区和第二语音缓冲区进行初始化,包括如下步骤:将第一语音缓冲区和第二语音缓冲区的数据清零、初始化读指针的位置和写指针的位置,初始化当前读指针的位置和当前写指针的位置等。
步骤S3,当检测到一个讲话方的语音到来时,发出话权信令将话权切换到第一语音缓冲区,根据写指针的位置向第一语音缓冲区写入语音数据直至话权切换;当话权切换至另一个讲话方时,则发出话权信令将话权切换到第二语音缓冲区,根据写指针的位置向第二语音缓冲区写入语音数据直至话权切换;当话权再次切换时,则发出话权信令将话权切换到第一语音缓冲区,如此往复。
此外,从每个语音缓冲区读取语音数据时,等待语音数据在语音缓冲区缓冲到预设长度后开始读取数据,并持续读数据和播放语音,直到将所有写的数据读完为止。
下面参考图2对语音缓冲区的初始化和读写数据的流程进行说明:
(1)当一个用户话权A的语音到来时,切换到第一语音缓冲区,开始按照写指针的位置写语音数据,语音缓冲区是循环使用的,当写指针位置到末尾时,再继续从头开始写。读数据时,需要等语音数据缓冲到预设长度才开始读操作,并持续读数据和播放语音,直至将所有写的数据读完为止。
(2)当话权切换时,另一个用户话权B的语音到来时,切换到第二语音缓冲区,开始按照写指针的位置写语音数据。读语音的位置,也跟随切换到第二语音缓冲区读语音数据。
(3)当话权再次切换时,重新回到第一语音缓冲区进行写数据和读数据。
需要说明的是,在根据话权信令的基础上,本发明可以进一步根据当前语音播放的位置判断话权切换。即,采用话权信令和语音播放的位置进行综合判断话权切换。
下面对循环切换缓冲区的流程:
(1)写数据切换的判断:当话权用户切换时,语音报文对应的会话ID会变化,当检测到会话ID变化时,则开始切换对应的写数据的语音缓冲区,并向该语音缓冲区持续写入语音数据,直至下一次会话切换。
(2)读数据切换的判断:当读数据缓冲时间满足后(即读数据缓冲到预设长度),开始读语音数据并解码播放,直到将已有数据全部读完,且话权用户已经切换,则停止读本次会话数据。当读数据结束时,如果话权用户已切换,则读指针跟随切换到另一个缓冲区。如果没有新话权用户,则保持现有缓冲区不变。
根据本发明实施例的基于双缓冲区智能缓存的语音对讲实现方法,具有以下有益效果:
(1)区别于传统的VOIP语音的单缓冲区方案,采用语音双缓冲区的方案,解决网络不佳引发的报文抖动、语音不连续、语音话权切换等问题,提升公网对讲语音的质量;
(2)根据语音数据的大小,能够准确判断语音开始和结束播放的位置点,避免漏字现象,从而更准确进行话权结束的声音提示;
(3)在进行话权切换时,能够解决话权抢占场景下语音尾音的问题,保证不会漏播语音包;
(4)通过智能缓存,能够适应不同的网络场景,保证语音总是连续的。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。
尽管上面已经示出和描述了本发明的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本发明的限制,本领域的普通技术人员在不脱离本发明的原理和宗旨的情况下在本发明的范围内可以对上述实施例进行变化、修改、替换和变型。本发明的范围由所附权利要求及其等同限定。
Claims (9)
1.一种基于双缓冲区智能缓存的语音对讲实现方法,其特征在于,包括如下步骤:
步骤S1,设置第一语音缓冲区和第二语音缓冲区,其中,每个所述语音缓冲区对应一段语音通话的一个话权的讲话方,当话权切换时,语音缓冲区也相应切换;
步骤S2,对所述第一语音缓冲区和第二语音缓冲区进行初始化;
步骤S3,当检测到一个讲话方的语音到来时,发出话权信令将话权切换到第一语音缓冲区,根据写指针的位置向第一语音缓冲区写入语音数据直至话权结束;当话权切换至另一个讲话方时,则发出话权信令将话权切换到第二语音缓冲区,根据写指针的位置向第二语音缓冲区写入语音数据直至话权结束;当话权再次切换时,则发出话权信令将话权切换到第一语音缓冲区,如此往复。
2.如权利要求1所述的基于双缓冲区智能缓存的语音对讲实现方法,其特征在于,在所述步骤S1中,采用智能缓冲策略根据统计得到的网络时延对所述第一语音缓冲区和第二语音缓冲区的大小进行调整。
3.如权利要求1所述的基于双缓冲区智能缓存的语音对讲实现方法,其特征在于,在所述步骤S2中,所述对第一语音缓冲区和第二语音缓冲区进行初始化,包括如下步骤:将第一语音缓冲区和第二语音缓冲区的数据清零、初始化读指针的位置和写指针的位置。
4.如权利要求1所述的基于双缓冲区智能缓存的语音对讲实现方法,其特征在于,每个所述语音缓冲区设置有读数据指针标识和写数据指针标识,其中,所述读数据指针标识用于判断读语音数据标识,所述写数据指针标识用于判断写语音数据标识。
5.如权利要求1所述的基于双缓冲区智能缓存的语音对讲实现方法,其特征在于,每个语音缓冲区均循环使用。
6.如权利要求1所述的基于双缓冲区智能缓存的语音对讲实现方法,其特征在于,在所述步骤S3中,从每个语音缓冲区读取语音数据时,等待语音数据在语音缓冲区缓冲到预设长度后开始读取数据,并持续读数据和播放语音,直到将所有写的数据读完为止。
7.如权利要求1所述的基于双缓冲区智能缓存的语音对讲实现方法,其特征在于,在所述步骤S3中,在根据话权信令的基础上,进一步根据当前语音播放的位置判断话权切换。
8.如权利要求1所述的基于双缓冲区智能缓存的语音对讲实现方法,其特征在于,在所述步骤S3中,当话权用户切换时,语音报文对应的会话ID会变化,当检测到会话ID变化时,则开始切换对应的写数据的语音缓冲区,并向该语音缓冲区持续写入语音数据,直至下一次会话切换。
9.如权利要求1所述的基于双缓冲区智能缓存的语音对讲实现方法,其特征在于,在所述步骤S3中,当读数据缓冲到预设长度后,开始读语音数据并解码播放,直至将已有数据全部读完且话权用户已经切换,则停止读取本次会话的语音数据。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910697141.6A CN110418021B (zh) | 2019-07-30 | 2019-07-30 | 一种基于双缓冲区智能缓存的语音对讲实现方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910697141.6A CN110418021B (zh) | 2019-07-30 | 2019-07-30 | 一种基于双缓冲区智能缓存的语音对讲实现方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110418021A true CN110418021A (zh) | 2019-11-05 |
CN110418021B CN110418021B (zh) | 2021-04-23 |
Family
ID=68364332
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910697141.6A Active CN110418021B (zh) | 2019-07-30 | 2019-07-30 | 一种基于双缓冲区智能缓存的语音对讲实现方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110418021B (zh) |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20050111479A (ko) * | 2004-05-22 | 2005-11-25 | 삼성전자주식회사 | 체감 지연이 없이 음성메시지를 전송할 수 있는 PoC이동단말기, 서버, 및 그 방법 |
CN1770748A (zh) * | 2004-11-01 | 2006-05-10 | 国际商业机器公司 | VoIP适配器、IP网络设备和实现VoIP高级功能的方法 |
US20080240004A1 (en) * | 2007-03-27 | 2008-10-02 | Cisco Technology, Inc. | Controlling a jitter buffer |
CN103686620A (zh) * | 2013-12-18 | 2014-03-26 | 北京佳讯飞鸿电气股份有限公司 | 一种群组呼叫快速建立过程中防止语音丢失的方法 |
CN103716171A (zh) * | 2013-12-31 | 2014-04-09 | 广东公信数字设备有限公司 | 一种音频数据传输方法及主机、终端 |
CN105409256A (zh) * | 2013-07-23 | 2016-03-16 | 科科通信公司 | 用于通过ip电话网络的即按即说语音通信的系统和方法 |
CN105491022A (zh) * | 2006-01-13 | 2016-04-13 | Lg电子株式会社 | 处理基于sip的会话服务的媒体数据 |
CN106878294A (zh) * | 2017-01-24 | 2017-06-20 | 青岛海信移动通信技术股份有限公司 | 一种对讲机录制语音信息的方法和装置 |
-
2019
- 2019-07-30 CN CN201910697141.6A patent/CN110418021B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20050111479A (ko) * | 2004-05-22 | 2005-11-25 | 삼성전자주식회사 | 체감 지연이 없이 음성메시지를 전송할 수 있는 PoC이동단말기, 서버, 및 그 방법 |
CN1770748A (zh) * | 2004-11-01 | 2006-05-10 | 国际商业机器公司 | VoIP适配器、IP网络设备和实现VoIP高级功能的方法 |
CN105491022A (zh) * | 2006-01-13 | 2016-04-13 | Lg电子株式会社 | 处理基于sip的会话服务的媒体数据 |
US20080240004A1 (en) * | 2007-03-27 | 2008-10-02 | Cisco Technology, Inc. | Controlling a jitter buffer |
CN105409256A (zh) * | 2013-07-23 | 2016-03-16 | 科科通信公司 | 用于通过ip电话网络的即按即说语音通信的系统和方法 |
CN103686620A (zh) * | 2013-12-18 | 2014-03-26 | 北京佳讯飞鸿电气股份有限公司 | 一种群组呼叫快速建立过程中防止语音丢失的方法 |
CN103716171A (zh) * | 2013-12-31 | 2014-04-09 | 广东公信数字设备有限公司 | 一种音频数据传输方法及主机、终端 |
CN106878294A (zh) * | 2017-01-24 | 2017-06-20 | 青岛海信移动通信技术股份有限公司 | 一种对讲机录制语音信息的方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
CN110418021B (zh) | 2021-04-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8363673B2 (en) | Method and device for processing network time delay characteristics | |
US7359324B1 (en) | Adaptive jitter buffer control | |
EP2140635B1 (en) | Method and apparatus for modifying playback timing of talkspurts within a sentence without affecting intelligibility | |
WO2020038088A1 (zh) | 相机应用的占用控制方法和装置 | |
JP5363588B2 (ja) | 受信オーディオデータをビデオデータと同期させるための装置及び方法 | |
WO2018054139A1 (zh) | 一种音频控制方法、装置及存储介质 | |
US10743222B2 (en) | Facilitation of handover coordination based on voice activity data | |
CN102857730A (zh) | 一种缓存帧数据的方法及系统 | |
CN104320699B (zh) | 蓝牙发声装置的动态调整方法 | |
CN108234790A (zh) | 多人语音通信方法、装置、终端设备和存储介质 | |
JP2009159450A (ja) | 無線通信装置 | |
EP2958266B1 (en) | Service interruption processing method and device thereof | |
CN110418021A (zh) | 一种基于双缓冲区智能缓存的语音对讲实现方法 | |
WO2022160287A1 (zh) | 一种cis链路调整方法以及相关设备 | |
CN116506672B (zh) | 内网设备的音视频同步播放方法 | |
CN101378356B (zh) | 一种ip实时流媒体的播放方法 | |
US20200211552A1 (en) | Voice interaction control method and apparatus | |
US20120009892A1 (en) | Wireless communication system and method for adjusting used depth of buffer unit in wireless communication system | |
CN109155680B (zh) | 当前音视频再现被中断覆盖后继续当前再现的方法和设备 | |
CN100411410C (zh) | 电话终端和记录/播放程序 | |
CN107124641A (zh) | 一种音视频同步播放的控制方法 | |
US20070248170A1 (en) | Transmitting Apparatus, Receiving Apparatus, and Reproducing Apparatus | |
CN101369975A (zh) | 一种时延丢包的检测方法及系统 | |
US8731556B2 (en) | Radiophone apparatus, hand-off method in radiophone apparatus, and communication system | |
CN105392040B (zh) | 一种多设备同步暂停和播放的控制方法及控制系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |