CN117880253A - 通话字幕处理方法、装置、电子设备及存储介质 - Google Patents
通话字幕处理方法、装置、电子设备及存储介质 Download PDFInfo
- Publication number
- CN117880253A CN117880253A CN202410280263.6A CN202410280263A CN117880253A CN 117880253 A CN117880253 A CN 117880253A CN 202410280263 A CN202410280263 A CN 202410280263A CN 117880253 A CN117880253 A CN 117880253A
- Authority
- CN
- China
- Prior art keywords
- call
- data packet
- caption
- packet
- server
- 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
- 238000000034 method Methods 0.000 title claims abstract description 121
- 238000012545 processing Methods 0.000 title claims abstract description 78
- 238000003672 processing method Methods 0.000 claims abstract description 33
- 230000005540 biological transmission Effects 0.000 claims description 214
- 238000012546 transfer Methods 0.000 claims description 98
- 238000004590 computer program Methods 0.000 claims description 22
- 230000015654 memory Effects 0.000 claims description 12
- 230000002159 abnormal effect Effects 0.000 claims description 8
- 238000013507 mapping Methods 0.000 claims description 4
- 230000008569 process Effects 0.000 abstract description 80
- 238000005516 engineering process Methods 0.000 abstract description 13
- 238000013473 artificial intelligence Methods 0.000 abstract description 2
- 238000007726 management method Methods 0.000 description 65
- 238000010586 diagram Methods 0.000 description 36
- 230000006854 communication Effects 0.000 description 35
- 238000004891 communication Methods 0.000 description 30
- 230000005236 sound signal Effects 0.000 description 30
- 238000004422 calculation algorithm Methods 0.000 description 10
- 230000001133 acceleration Effects 0.000 description 9
- 230000004913 activation Effects 0.000 description 9
- 230000006870 function Effects 0.000 description 7
- 238000007781 pre-processing Methods 0.000 description 7
- 238000000926 separation method Methods 0.000 description 7
- 230000009471 action Effects 0.000 description 5
- 239000002131 composite material Substances 0.000 description 5
- 230000003287 optical effect Effects 0.000 description 5
- 238000013519 translation Methods 0.000 description 5
- 230000009286 beneficial effect Effects 0.000 description 4
- 230000003111 delayed effect Effects 0.000 description 4
- 230000003993 interaction Effects 0.000 description 4
- 238000012856 packing Methods 0.000 description 4
- 230000008901 benefit Effects 0.000 description 3
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 238000011161 development Methods 0.000 description 3
- 208000016354 hearing loss disease Diseases 0.000 description 3
- 230000001629 suppression Effects 0.000 description 3
- 238000004364 calculation method Methods 0.000 description 2
- 230000006835 compression Effects 0.000 description 2
- 238000007906 compression Methods 0.000 description 2
- 238000012790 confirmation Methods 0.000 description 2
- 238000013135 deep learning Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 239000000284 extract Substances 0.000 description 2
- 230000006872 improvement Effects 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000006467 substitution reaction Methods 0.000 description 2
- 230000001960 triggered effect Effects 0.000 description 2
- 230000007175 bidirectional communication Effects 0.000 description 1
- 230000033228 biological regulation Effects 0.000 description 1
- 230000015556 catabolic process Effects 0.000 description 1
- 238000013136 deep learning model Methods 0.000 description 1
- 238000006731 degradation reaction Methods 0.000 description 1
- 230000001934 delay Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 208000037265 diseases, disorders, signs and symptoms Diseases 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- 230000004927 fusion Effects 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 230000001788 irregular Effects 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 238000003058 natural language processing Methods 0.000 description 1
- 238000013021 overheating Methods 0.000 description 1
- 238000003909 pattern recognition Methods 0.000 description 1
- 230000002085 persistent effect Effects 0.000 description 1
- 230000006641 stabilisation Effects 0.000 description 1
- 238000011105 stabilization Methods 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 230000001052 transient effect Effects 0.000 description 1
Landscapes
- Telephonic Communication Services (AREA)
Abstract
本申请实施例公开了一种通话字幕处理方法、装置、电子设备及存储介质,通过获取接入目标通话的任意一个通话成员传输的通话音频数据包,将通话音频数据包传输至接入目标通话的字幕服务端,字幕服务端对通话音频数据包进行语音识别得到字幕数据包,得到的字幕数据包被传输至各个通话成员。生成字幕数据包的过程无须其他通话成员的参与,有效降低网络负载,提升通话字幕的实时性,并且由于字幕服务端被管理服务端配置为目标通话的隐藏成员,其他通话成员并不会感知到字幕服务端的存在,从而在提升通话字幕的实时性的同时,保留原有的通话体验,提升通话字幕处理的通用性,可广泛应用于云技术、人工智能等场景。
Description
技术领域
本申请涉及互联网技术领域,特别是涉及一种通话字幕处理方法、装置、电子设备及存储介质。
背景技术
随着终端技术的发展和网络带宽的提升,越来越多的用户选择使用音视频通话系统进行远程沟通,在一些场景中,往往需要在通话过程中同时显示通话字幕。相关技术中,在通话过程中生成通话字幕时,终端需要将音频数据发送至语音识别服务器进行语音识别,进而生成通话字幕,这种处理方式会增加网络负载,降低了通话字幕的实时性。
发明内容
以下是对本申请详细描述的主题的概述。本概述并非是为了限制权利要求的保护范围。
本申请实施例提供了一种通话字幕处理方法、装置、电子设备及存储介质,能够提升通话字幕的实时性。
一方面,本申请实施例提供了一种通话字幕处理方法,包括:
获取接入目标通话的任意一个通话成员传输的通话音频数据包;
将所述通话音频数据包传输至接入所述目标通话的字幕服务端,其中,所述字幕服务端是由所述目标通话的管理服务端激活并接入所述目标通话的,所述字幕服务端被所述管理服务端配置为所述目标通话的隐藏成员,所述字幕服务端用于对所述通话音频数据包进行语音识别得到字幕数据包;
获取所述字幕服务端传输的所述字幕数据包,将所述字幕数据包传输至所述通话成员。
另一方面,本申请实施例还提供了一种通话字幕处理装置,包括:
第一获取模块,用于获取接入目标通话的任意一个通话成员传输的通话音频数据包;
第一传输模块,用于将所述通话音频数据包传输至接入所述目标通话的字幕服务端,其中,所述字幕服务端是由所述目标通话的管理服务端激活并接入所述目标通话的,所述字幕服务端被所述管理服务端配置为所述目标通话的隐藏成员,所述字幕服务端用于对所述通话音频数据包进行语音识别得到字幕数据包;
第二传输模块,用于获取所述字幕服务端传输的所述字幕数据包,将所述字幕数据包传输至所述通话成员。
进一步,上述第二传输模块具体用于:
为来自不同所述通话成员的所述字幕数据包分别配置不同的字幕数据流,其中,所述字幕数据流包括按照顺序排列的所述字幕数据包;
将配置所述字幕数据流后的所述字幕数据包传输至所述通话成员,接收所述通话成员返回的反馈信息;
当所述反馈信息指示存在丢失的所述字幕数据包时,将丢失的所述字幕数据包重新传输至所述通话成员。
进一步,上述第二传输模块具体用于:
确定当前时刻与丢失的所述字幕数据包的传输时刻之间的传输时间间隔;
当所述传输时间间隔大于或者等于时长阈值,将丢失的所述字幕数据包重新传输至所述通话成员,其中,所述时长阈值是基于所述通话成员的数据接收状态确定的,所述数据接收状态用于指示所述通话成员已接收到至少一个目标数据包或者未接收到所述目标数据包,所述目标数据包为其中一个所述字幕数据包,且所述目标数据包的所述包序号大于丢失的所述字幕数据包的所述包序号。
进一步地,该通话字幕处理装置还包括:
第一获取模块,用于获取接入目标通话的任意一个通话成员传输的通话音频数据包;
第一传输模块,用于将所述通话音频数据包传输至接入所述目标通话的字幕服务端,其中,所述字幕服务端是由所述目标通话的管理服务端激活并接入所述目标通话的,所述字幕服务端被所述管理服务端配置为所述目标通话的隐藏成员,所述字幕服务端用于对所述通话音频数据包进行语音识别得到字幕数据包;
第二传输模块,用于获取所述字幕服务端传输的所述字幕数据包,将所述字幕数据包传输至所述通话成员。
进一步,上述第二传输模块具体用于:
获取所述第二数据链路的传输质量参数,当根据所述传输质量参数确定所述第二数据链路的传输质量正常时,将所述通话音频数据包以及对应的所述字幕数据包组合为合并数据包,将所述合并数据包传输至所述通话成员;
或者,获取所述第二数据链路的传输质量参数,当根据所述传输质量参数确定所述第二数据链路的传输质量异常时,将所述通话音频数据包以及对应的所述字幕数据包分别传输至所述通话成员。
进一步,上述第二传输模块具体用于:
从所述通话音频数据包中提取出音频数据,从所述字幕数据包中提取出字幕数据;
将所述音频数据以及所述字幕数据添加至合并数据包的包体,在所述合并数据包的包头中配置第一包类型、所述音频数据的数据长度以及所述字幕数据的数据长度,其中,所述第一包类型用于指示所述合并数据包中同时封装有所述音频数据以及所述字幕数据。
进一步地,该通话字幕处理装置还包括:
第二包类型确定模块:用于确定所述字幕数据包的第二包类型,其中,所述第二包类型用于指示所述字幕数据包封装有字幕数据;
确定通话成员模块:用于将所述第二包类型与预设的转发规则进行匹配,根据匹配结果将所述字幕数据包的传输对象确定为所述通话成员,其中,所述转发规则用于指示第二包类型与传输对象之间的映射关系。
进一步,上述第二包类型确定模块具体用于:
从所述字幕数据包中识别出所述字幕数据包的包头;
从所述字幕数据包的包头中提取得到所述字幕数据包的第二包类型。
另一方面,本申请实施例还提供了一种通话字幕处理方法,包括:
响应于目标通话的管理服务端传输的接入指令,以隐藏成员的身份接入所述目标通话;
获取所述目标通话的中转服务端传输的通话音频数据包,对所述通话音频数据包进行语音识别得到字幕数据包,其中,所述通话音频数据包是接入所述目标通话的任意一个通话成员传输至中转服务端的;
将所述字幕数据包传输至所述中转服务端,以供所述中转服务端将所述字幕数据包传输至所述通话成员。
另一方面,本申请实施例还提供了一种通话字幕处理装置,包括:
接入模块,用于响应于目标通话的管理服务端传输的接入指令,以隐藏成员的身份接入所述目标通话;
语音识别模块,用于获取所述目标通话的中转服务端传输的通话音频数据包,对所述通话音频数据包进行语音识别得到字幕数据包,其中,所述通话音频数据包是接入所述目标通话的任意一个通话成员传输至所述中转服务端的;
第三传输模块,用于将所述字幕数据包传输至所述中转服务端,以供所述中转服务端将所述字幕数据包传输至所述通话成员。
进一步,上述语音识别模块具体用于:
从所述通话音频数据包中提取出音频数据,对所述音频数据进行语音识别得到字幕数据;
对所述字幕数据进行加密,将加密后的所述字幕数据添加至字幕数据包的包体;
在所述字幕数据包的包头中配置第二包类型,其中,所述第二包类型用于指示所述字幕数据包封装有所述字幕数据。
另一方面,本申请实施例还提供了一种电子设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现上述的通话字幕处理方法。
另一方面,本申请实施例还提供了一种计算机可读存储介质,所述存储介质存储有计算机程序,所述计算机程序被处理器执行实现上述的通话字幕处理方法。
另一方面,本申请实施例还提供了一种计算机程序产品,该计算机程序产品包括计算机程序,该计算机程序存储在计算机可读存介质中。计算机设备的处理器从计算机可读存储介质读取该计算机程序,处理器执行该计算机程序,使得该计算机设备执行实现上述的通话字幕处理方法。
本申请实施例至少包括以下有益效果:通过获取接入目标通话的任意一个通话成员传输的通话音频数据包,将通话音频数据包传输至接入目标通话的字幕服务端,由于字幕服务端是由目标通话的管理服务端激活并接入目标通话的,因此在通话过程中字幕服务端能够像普通的通话成员一样快捷地获取到通话过程中的通话音频数据包,再对通话音频数据包进行语音识别得到字幕数据包,得到的字幕数据包被传输至各个通话成员,可见,生成字幕数据包的过程无须其他通话成员的参与,从而有效地降低了网络负载,提升了通话字幕的实时性,并且,由于字幕服务端被管理服务端配置为目标通话的隐藏成员,其他通话成员并不会感知到字幕服务端的存在,从而在提升通话字幕的实时性的同时,保留了原有的通话体验,提升了通话字幕处理的通用性。
本申请的其他特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本申请而了解。
附图说明
附图用来提供对本申请技术方案的进一步理解,并且构成说明书的一部分,与本申请的实施例一起用于解释本申请的技术方案,并不构成对本申请技术方案的限制。
图1为相关技术中在终端上进行通话字幕的处理示意图。
图2为相关技术中在终端发送音频数据到语音识别服务器上的处理示意图。
图3为本申请实施例提供的一种可选的实施环境的示意图。
图4为本申请实施例提供的字幕服务端的结构关系示意图。
图5为本申请实施例提供的通话字幕处理方法的一种可选的流程图。
图6为本申请实施例提供的目标通话的建立过程示意图。
图7为本申请实施例提供的目标通话示意图。
图8为本申请实施例提供的通话字幕处理框架示意图。
图9是本申请实施例提供的字幕数据包的发送框架示意图。
图10是本申请实施例提供的字幕数据包的发送框架示意图。
图11为本申请实施例提供的字幕数据流的传输结构示意图。
图12是本申请实施例提供的发送字幕数据流的示意图。
图13为本申请实施例中字幕数据包丢包情况示意图。
图14为本申请实施例提供的合并数据包的包结构示意图。
图15为本申请实施例提供的待传输数据包的包结构示意图。
图16为本申请实施例提供的通话字幕处理方法的一种可选的总体流程示意图。
图17为本申请实施例提供的通话字幕处理方法的又一种可选的流程图。
图18为本申请实施例提供的通话字幕处理方法的整体流程图。
图19为本申请实施例提供的通话字幕处理装置的一种可选的结构示意图。
图20为本申请实施例提供的通话字幕处理装置的又一种可选的结构示意图。
图21为本申请实施例提供的终端的部分结构框图。
图22为本申请实施例提供的服务器的部分结构框图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本申请,并不用于限定本申请。
需要说明的是,在本申请的各个具体实施方式中,当涉及到需要根据目标对象属性信息或属性信息集合等与目标对象特性相关的数据进行相关处理时,都会先获得目标对象的许可或者同意,而且,对这些数据的收集、使用和处理等,都会遵守相关法律法规和标准。其中,目标对象可以是用户。此外,当本申请实施例需要获取目标对象属性信息时,会通过弹窗或者跳转到确认页面等方式获得目标对象的单独许可或者单独同意,在明确获得目标对象的单独许可或者单独同意之后,再获取用于使本申请实施例能够正常运行的必要的目标对象相关数据。
本申请实施例中,术语“模块”或“单元”是指有预定功能的计算机程序或计算机程序的一部分,并与其他相关部分一起工作以实现预定目标,并且可以通过使用软件、硬件(如处理电路或存储器)或其组合来全部或部分实现。同样的,一个处理器(或多个处理器或存储器)可以用来实现一个或多个模块或单元。此外,每个模块或单元都可以是包含该模块或单元功能的整体模块或单元的一部分。
为便于理解本申请实施例提供的技术方案,这里先对本申请实施例使用的一些关键名词进行解释:
音视频通话系统:是一种通过网络进行实时音频和视频通信的系统,允许两个或多个不同地点的人进行语音和视频交流。通过传输线路和多媒体设备,该系统能够传输声音、影像及文件资料,实现即时且互动的沟通。音视频通话系统利用网络在终端之间传输音频和视频数据,并在传输过程中对信号进行编码和解码。编码器负责将原始音频和视频数据压缩成较小的数据包,而解码器则将这些数据包还原为可播放的音频和视频信号。
实时字幕:在音视频通话应用中,需以实时方式识别通话参与者的自然语言,并在其终端设备上显示字幕。与离线视频字幕提取和语音消息转写文字的场景不同,音视频通话中的字幕显示对实时性的要求较高。
语音识别技术(Automatic Speech Recognition,ASR):也被称为自动语音识别,是一种能够将人类语音转换为计算机可处理的文本形式的技术。具体来说,语音识别技术ASR通过使用信号处理、模式识别和自然语言处理等技术,对输入的语音信号进行分析和处理,最终将其转换成计算机可读的文本。
音视频通信框架(Selective Forwarding Unit,SFU)架构:该系统架构由一个服务器和多个终端组成一个星形结构。终端将自己要共享的音视频流发送给服务器,服务器接收来自多个终端的音视频流,并根据需要选择性地转发这些流到其他终端。
随着终端技术的发展和网络带宽的提升,越来越多的用户选择使用音视频通话系统进行远程沟通,在一些场景中,往往需要在通话过程中同时显示通话字幕。例如,音视频通话场景中,有不少需要对语音进行实时识别然后转文本的实时字幕场景。如听力障碍的用户进行通话,此时听力障碍用户的终端上集成了实时字幕技术,当对方说话时,终端能够实时将语音转换成文字显示,使得听力障碍的用户可以阅读到对方所说的话。又例如,嘈杂环境下可以结合噪声抑制算法和实时字幕技术,消除背景噪音,并实时将清晰的语音转换为文本,供双方阅读。又例如,不同语种之间的交流过程,需要利用实时字幕技术结合翻译算法实现实时翻译,将用户的语音实时转录为文本,并利用翻译算法将文本翻译成目标用户能够理解的文本。又例如,一些重要通话过程需要进行会议内容的自动记录,利用实时字幕技术进行记录,无需手动整理,从而能够提升沟通效率。
相关技术中,在通话过程中生成字幕时,有两种方式,第一种是终端完成音频采集后,直接在终端完成语音识别过程,然后将识别后的字幕信息复用音视频传输通道发送给其他终端。参照图1,图1为相关技术中在终端上进行字幕的处理示意图。图1中终端a1利用内置麦克风或其他音频输入设备执行音频采集,采集得到的音频数据在终端a1上经过语音识别处理后,生成的文本将作为字幕,通过通信协议传输至其他终端,如终端a2和a3。这些接收的终端可能是智能手机、计算机或其他类型的显示设备。可以理解的是,终端a1可以同步采集音视频信号,音视频信号中既包括音频信号也包括视频信号,然后将音视频信号和生成的字幕同步发送到其他终端。在此类场景中,字幕处理过程全程在终端上完成。考虑到字幕对低延迟的要求,这不仅对算法的计算效率有较高需求,还要求终端具备较强的处理能力。当前语音识别算法普遍基于深度学习模型,因而需要占用大量终端的计算资源,包括CPU资源和GPU资源。若终端为智能手机,这种密集处理可能导致设备过热和电量迅速消耗。并且随着语言使用的演变和技术的发展,语音识别算法需持续进行迭代更新,以确保字幕的准确度。这也意味着用户可能需要周期性地更新其应用程序或系统软件。
另一种方法是终端将音频数据发送至语音识别服务器进行语音识别,然后接收语音识别服务器返回的字幕,将其作为字幕复用音视频传输通道发送给其他终端。参照图2,图2为相关技术中在终端发送音频数据到语音识别服务器上的处理示意图。图2中,终端a1利用内置麦克风或其他音频输入设备执行音频或音视频采集,如果采集到的是音视频信号,则需要利用信号处理技术从音视频信号中分离出音频信号。将采集得到的音频信号发送至语音识别服务器利用语音识别算法(可能是深度学习或其他机器学习技术)进行语音识别,生成相关的字幕,然后语音识别服务器将生成的字幕返回至终端a1。然后终端a1将字幕和音视频信号(或音频信号)通过通信协议传输至其他终端,如终端a2和a3。在这一处理流程中,音频数据传输至语音识别服务器以及字幕返回的过程都可能引入额外延迟。此外,音频数据及字幕在终端与服务器之间的传输会占用更多网络带宽,对于网络条件较差的用户可能会造成卡顿、延迟等问题。由于需要等待语音识别服务器返回字幕后,才能向其他终端发送,使得整体处理链路较长,难以满足实时字幕的需求。
基于此,本申请实施例提供了一种通话字幕处理方法、装置、电子设备及存储介质,能够在提升通话字幕的实时性的同时,保留原有的通话体验,提升通话字幕处理的通用性。
参照图3,图3为本申请实施例提供的一种可选的实施环境的示意图,该实施环境包括至少两个终端301、服务器302和字幕服务端303,其中,至少两个终端301分别和服务器302之间通过通信网络连接,服务器302和字幕服务端303之间通过通信网络连接。
其中,服务器302和字幕服务端303都可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、CDN(Content DeliveryNetwork,内容分发网络)、以及大数据和人工智能平台等基础云计算服务的云服务器。另外,服务器202还可以是区块链网络中的一个节点服务器。
终端301可以是手机、电脑、智能语音交互设备、智能家电、车载终端等,但并不局限于此。终端301以及服务器302可以通过有线或无线通信方式进行直接或间接地连接,本申请实施例在此不做限制。
示例性地,以终端301为手机为例,两个终端301之间通过服务器302进行通话,此时,服务器302中配置有通话系统,该通话系统作为管理服务端创建一个目标通话,目标通话中的两个终端301都属于通话成员。服务器302中配置有中转服务端,获取接入目标通话的任意一个通话成员传输的通话音频数据包,将通话音频数据包传输至接入目标通话的字幕服务端303。此时,字幕服务端303是被服务器302上进行目标通话管理的管理服务端激活后才接入该目标通话的,在目标通话中,两个终端301和字幕服务端303都属于通话成员,均能快捷地获取到通话过程中的通话音频数据包,区别在于,字幕服务端303被管理服务端配置为目标通话的隐藏成员,其他通话成员并不会感知到字幕服务端的存在。此时字幕服务端303像普通的通话成员对通话音频数据包进行语音识别得到字幕数据包,字幕数据包再被服务器302传输至各个通话成员,可见,生成通话字幕消息的过程无须其他通话成员的参与,从而有效地降低了网络负载,提升了通话字幕的实时性。
可以理解的是,参照图4,图4为本申请实施例提供的字幕服务端的结构关系示意图。本申请实施例中字幕服务端303由于需要将接收到的通话音频数据包转化成通话字幕消息,因此字幕服务端303连接一个语音识别模块304,这里的语音识别模块304负责对通话音频数据包利用如深度学习等语音识别算法进行识别,得到对应的文本,该文本作为通话字幕消息。其中,语音识别模块304可以与字幕服务端303同机部署,这样避免需要再次对通话音频数据包进行转发的过程,避免额外的传输时延。当然在对实时性要求稍弱的场景中,语音识别模块304也可以作为一个单独的服务器进行单独部署。本申请实施例对语音识别模块304的位置不做限定。
另外,字幕服务端303可以作为独立的服务器,与服务器302分开部署,但是由于服务器302需要对其进行激活,将其作为隐藏成员加入目标通话中,再将通话音频数据包发送至字幕服务端303进行处理,因此为了减少数据传输时间,字幕服务端303与服务器302可以位于同一或临近的机房,通过局域网或者物理连接的方式进行数据传输,提升通话音频数据包或通话字幕消息之间的传输速度,从而满足实时字幕的要求。或者将字幕服务端303与服务器302同机部署,进一步减少传输时延。本申请实施例对字幕服务端303与服务器302的位置关系不做限定。
另外,中转服务端和管理服务端也可以分别配置于不同的服务器中。
本申请实施例提供的通话字幕处理方法可应用于不同的场景,包括但不限于即时通话、在线会议、实时翻译等通话场景。
下面详细描述本申请实施例提供的通话字幕处理方法的原理。
参照图5,图5为本申请实施例提供的通话字幕处理方法的一种可选的流程图,以通话字幕处理方法的执行主体为中转服务端为例进行说明,该通话字幕处理方法包括但不限于以下步骤501至步骤503。
步骤501:获取接入目标通话的任意一个通话成员传输的通话音频数据包。
其中,通话成员指的是用户使用的任意终端,包括电脑、平板电脑、智能手机、智能手表、专业视频会议系统、智能电视等。用户通过终端作为通话成员发起与其他通话成员之间的通话过程。本实施例对通话成员不做限定。
在一种可能的实现方式中,任意两个或两个以上的通话成员基于通话需求即可建立目标通话,这里的通话需求对应的场景包括:一对一通话、群组通话、视频会议、直播、实时对讲等场景。其中,一对一通话指两个通话成员间进行音视频通话,例如使用手机通过社交软件进行相互的视频通话。群组通话指多个通话成员可以加入一个音视频通话,例如利用社交软件进行群视频聊天。视频会议指多个通话成员利用视频会议软件进行在线会议。直播指面一对多的通话成员之间进行单向或互动的音视频广播。实时对讲中通话成员间利用对讲软件进行音视频通话等。本实施例对通话需求不做限定。
可以理解的是,在不同的通话需求场景下,可能需要运用不同的软件来实现通话。因此,在本申请的实施例中,可以根据具体的应用场景来建立不同通话成员间的会话,作为目标通话。每个目标通话均设有明确的应用时效,在该时效期内,目标通话中的通话成员可以进行音视频数据传输。一旦某个目标通话结束,即便相同的通话成员提出相同的通话需求,并再次启动通话过程,此时新建立的目标通话与先前的通话也是两个独立的会话。
在一种可能的实现方式中,所有的通话成员与服务器的中转服务端通信连接,通过中转服务端建立不同通话成员之间的目标通话。例如图6为本申请实施例提供的目标通话的建立过程示意图。图6中示出了5个通话成员,分别是通话成员b1、通话成员b2、通话成员b3、通话成员b4和通话成员b5,每个通话成员均与服务器的中转服务端连接。此时通话需求是:通话成员b1和通话成员b3之间建立一对一通话,通话成员b2和通话成员b4、通话成员b5建立群组通话。此时,通过中转服务端建立通话成员b1和通话成员b3之间的目标通话1,建立通话成员b2和通话成员b4、通话成员b5之间的目标通话2。可见,不同的目标通话中接入的通话成员不同。
在一种可能的实现方式中,如果目标通话建立,并且此时通话成员间发生了通话过程,中转服务端会接收到任意一个通话成员传输的通话音频数据包。例如通话成员间进行单纯的音频通话,此时通话成员使用麦克风或其他音频输入设备捕获用户的语音信号,进行实时音频采集,接着对采集的语音信号进行包括噪声抑制、回声消除等预处理操作,以改善音质,最后将模拟的语音信号转换成数字信号,并进行压缩编码得到音频信号,减少数据量后发送至中转服务端。此时中转服务端接收的通话音频数据包即采集的音频信号。如果进行视频通话,此时通话成员使用摄像头和麦克风同时捕获视频数据和音频数据,得到包含视频数据和音频数据的音视频流,再从复合的音视频流中分离出音频流,对分离的音频流进行预处理和编码得到音频信号。同时对视频数据执行类似的预处理和编码步骤得到视频信号,将音频信号和视频信号同步传输至中转服务端。此时中转服务端将接收到的音频信号作为通话音频数据包。另外,如果进行视频通话,通话成员产生的音视频信号,也可以都发送到中转服务端,然后中转服务端对音视频信号进行音视频分离,从中采集得到音频信号作为通话音频数据包,然后执行后续的操作。
可以理解的是,在通话成员中做音视频分离,能够减少数据传输的时间,具有较低的网络延迟,另外可以节约服务器资源,中转服务端无需对多个通话成员的大量音视频数据进行处理和分析,节约服务器端的计算和存储资源。而在中转服务端进行处理的好处是,中转服务端通常具备更强大的计算能力,提升音视频分离的处理效率,得到更清晰的音频信号,提升后续通话字幕的准确性。本申请实施例可以根据实际需求设定音视频分离的处理端。
以在中转服务端对音视频信号进行音视频分离为例进行说明,参照图6,例如通话成员b1和通话成员b3之间建立了目标通话1,进行视频通信,此时通话成员b1实时采集到视频数据和音频数据,得到包含视频数据和音频数据的音视频流,接着将音视频流发送至中转服务端,中转服务端从复合的音视频流中分离出音频流,再对分离的音频流进行预处理和编码得到音频信号,将音频信号作为通话音频数据包。
本申请实施例的中转服务端无论哪种场景中,都至少能够得到通话音频数据包。
步骤502:将通话音频数据包传输至接入目标通话的字幕服务端。
其中,字幕服务端是由目标通话的管理服务端激活并接入目标通话的。管理服务端激活字幕服务端之后,将字幕服务端作为目标通话的新成员,由于字幕服务端接入了目标通话,因此可以获取对应通话成员的通话音频数据包,从而根据通话音频数据包进行语音识别得到字幕数据包,相应地,真正进行通话的终端为目标通话的普通的通话成员。
可以理解的是,当一个语音句子构成一个通话音频数据包时,字幕服务端可以在获取到一个语音句子就对其进行语音识别得到对应的字幕,然后将该字幕作为字幕数据包,也可以将很短时间内接收到的语音句子对应的字幕进行汇总后作为字幕数据包。当多个语音句子构成一个通话音频数据包时,字幕服务端对多个语音句子分别进行语音识别得到对应的字幕,然后将多个字幕进行汇总后作为字幕数据包。
在一种可能的实现方式中,字幕服务端所在的服务器中对应为字幕服务端配置对应的与通话相关的软件开发工具包(Software Development Kit,SDK),并预先对该通话SDK进行相应的初始化过程,以保证字幕服务端可以通过通话SDK与管理服务端进行正常的通话过程。然后管理服务端在准备激活字幕服务端时,根据通话SDK提供的接口获取所需的组件,这些组件用于建立与字幕服务端的通话过程,并在通话过程中进行通话管理。在将通话SDK初始化完成并获取所有必要的组件后,管理服务端建立一条新的物理双向通信链路承载通道,并发送接入指令来通知字幕服务端接入目标通话,这些指令可以是:发起呼叫指令或加入已存在的通话指令。另外在通话过程中,通话SDK会提供对应的通话状态信息给管理服务端,如通话是否已连接、通话质量如何等,管理服务端通话状态信息对通话过程进行管理和维护。当需要结束目标通话时,管理服务端会通知通话SDK释放对应的资源并断开连接。
在一种可能的实现方式中,管理服务端激活字幕服务端的激活时机包括以下几种。例如管理服务端在建立通话成员间的目标通话的时候,就可以同步将字幕服务端激活并接入目标通话。也可以在目标通话建立后,采集到任意通话成员的通话音频数据包时,同步激活字幕服务端。也可以在通话成员的通话界面上显示字幕控件,当通话成员点击字幕控件后,管理服务端响应该点击动作,激活字幕服务端。本申请实施例对激活时机不做限定,可以根据实际业务需求进行设定。
另外,字幕服务端被管理服务端配置为目标通话的隐藏成员。隐藏成员的意思是字幕服务端的加入并不会通知到目标通话中的通话成员,任意通话成员都对字幕服务端无感,这样能够减少不必要的干扰,不会影响到其他成员的通话体验,使得字幕的处理过程具有通用性。
在一种可能的实现方式中,管理服务端为了便于对目标通话进行管理,可以利用标识对通话成员和字幕服务端对应的隐藏成员进行区分。例如利用第一通话成员标识对通话成员进行标识,利用第二通话成员标识对隐藏成员进行标识,同时在通话成员的通话界面上不显示第二通话成员标识。参照图7,图7为本申请实施例提供的目标通话示意图。图7中示出了包括3个通话成员的目标通话。通话成员c1、通话成员c2和通话成员c3之间建立了目标通话,此时在管理服务端对通话成员c1、通话成员c2和通话成员c3都设定第一通话成员标识,记为标识d1。此时根据激活时机,将字幕服务端作为隐藏成员c4加入目标通话,此时为隐藏成员c4添加第二通话成员标识,记为标识d2。通话成员c1采集音视频流,通过中转服务端发送至通话成员c2和通话成员c3,此时中转服务端从音视频流中采集得到通话音频数据包发送给隐藏成员c4,隐藏成员c4中的语音识别模块对通话音频数据包进行音频识别得到字幕数据包。此时,通话成员c1的通话界面上仅显示通话成员c2和通话成员c3,通话成员c2的通话界面上仅显示通话成员c1和通话成员c3,通话成员c3的通话界面上仅显示通话成员c1和通话成员c2,可见隐藏成员c4对于通话成员c1、通话成员c2和通话成员c3都是不被察觉的。
在一种可能的实现方式中,管理服务端在创建目标会话时可以创建第一子房间和第二子房间,第一子房间和第二子房间均可以与中转服务端进行数据交互,目标通话中的通话成员接入第一子房间,而字幕服务端接入第二子房间,因此,第一子房间中的通话成员无法感知到字幕服务端,从而实现字幕服务端的隐藏接入。
在一种可能的实现方式中,为了进一步提升字幕处理的效率,管理服务端中可以配置多个不同隐藏成员对应的SDK,在普通的通话成员接入目标会话后,管理服务端可以将通话成员划分为多个成员集合,并为每一个成员集合分配一个隐藏成员对应的SDK,因此,在字幕处理过程中,多个隐藏成员可以并行地进行字幕处理,从而提升字幕处理的效率。其中,管理服务端可以识别不同的普通的通话成员的语音数据的长度,根据语音数据的长度来为每一个成员集合分配一个隐藏成员对应的SDK,实现音频数据的合理调度,使得各个隐藏成员对应的SDK处理的音频数据量趋于平均,从而提升整个系统的可靠性。
步骤503:获取字幕服务端传输的字幕数据包,将字幕数据包传输至通话成员。
其中,字幕服务端对通话音频数据包进行音频识别得到字幕数据包后,中转服务端需要将字幕数据包按照目标通话传输至对应的通话成员,这样通话成员在得到对应的音视频信号后,还能同步得到对应的字幕数据包,提升通信过程的通信效率。另外通话成员在获取字幕数据包和对应的音视频流之后,还对其进行相应的解密过程,将解密结果显示在对应的通话界面。同时,中转服务端还可以将字幕数据包发送回通话音频数据包所属的通话成员,这样通话成员可以对字幕数据包所包含的字幕数据进行验证,判断字幕数据的准确性,从而进一步确保通话体验。通话成员还可以对其字幕数据包的准确性进行反馈,中转服务端将反馈结果传输至字幕服务端,从而字幕服务端利用反馈结果对语音识别相关算法进行迭代优化。
参照图8,图8为本申请实施例提供的通话字幕处理框架示意图。图8中,首先管理服务端建立包含各通话成员的目标通话,同时激活字幕服务端,将其以隐藏成员的身份加入目标通话中。接着服务器的中转服务端从通话成员1中获取音视频流,然后对音视频流进行分离得到音频流作为通话音频数据包,将音频流发送至隐藏成员,然后字幕服务端将音频流发送至语音识别模块,语音识别模块对通话音频数据包进行音频识别得到字幕数据包后,隐藏成员将字幕数据包发送回中转服务端,此时中转服务端将字幕数据包和对应的音视频流,发送至通话成员2和通话成员3。至此,通话成员2和通话成员3能够实时获取对应音视频流的字幕相关信息。另外,中转服务端还可以将字幕数据包发送至通话成员,以便通话成员对字幕数据包进行准确性验证。
可见,本申请实施例的通话字幕处理方法通过获取接入目标通话的任意一个通话成员传输的通话音频数据包,将通话音频数据包传输至接入目标通话的字幕服务端,由于字幕服务端是由目标通话的管理服务端激活并接入目标通话的,因此在通话过程中字幕服务端能够像普通的通话成员一样快捷地获取到通话过程中的通话音频数据包,再对通话音频数据包进行语音识别得到字幕数据包,得到的字幕数据包被传输至各个通话成员,可见,生成字幕数据包的过程无须其他通话成员的参与,从而有效地降低了网络负载,提升了通话字幕的实时性,并且,由于字幕服务端被管理服务端配置为目标通话的隐藏成员,其他通话成员并不会感知到字幕服务端的存在,从而在提升通话字幕的实时性的同时,保留了原有的通话体验,提升了通话字幕处理的通用性。
在一种可能的实现方式中,步骤603中将字幕数据包传输至通话成员的过程具体可以包括:为来自不同通话成员的字幕数据包分别配置不同的字幕数据流,其中,字幕数据流包括按照顺序排列的字幕数据包;再将配置字幕数据流后的字幕数据包传输至通话成员,接收通话成员返回的反馈信息;当反馈信息指示存在丢失的字幕数据包时,将丢失的字幕数据包重新传输至通话成员。
在一种可能的实现方式中,来自不同通话成员的字幕数据包即通过不同通话成员的通话音频数据识别得到。为来自不同通话成员的字幕数据包分别配置不同的字幕数据流时,可以为来自不同通话成员的字幕数据包分别配置不同的流标识,一种流标识对应一个字幕数据流,后续在传输过程中可以根据流标识来确定字幕数据包所属的字幕数据流。
其中,本申请实施例的中转服务端在传输字幕数据包时,可以采用RUDP协议来传输。其中,可靠传输协议(Reliable User Datagram Protocol,RUDP)基于UDP协议实现,中转服务端接收字幕服务端传输的字幕数据包,然后中转服务端作为发送端,将字幕数据包转发给RUDP发送模块,该模块与所有的通话成员的RUDP接收模块之间建立RUDP会话链路。例如目标通话中存在两个通话成员,那么RUDP发送模块分别与这两个通话成员建立对应的RUDP会话链路。此时RUDP发送模块将封装好的字幕数据包通过RUDP会话链路分别传输给对应的通话成员,通话成员在接收到字幕数据包后,判断是不是存在丢包情况,根据丢包情况生成对应的反馈信息,再利用RUDP接收模块将反馈信息传输给中转服务端的RUDP发送模块。当反馈信息指示存在丢失的字幕数据包时,中转服务端会将丢失的字幕数据包重新传输至对应的通话成员,如果反馈信息指示所有字幕数据包都已发送完毕,此时中转服务端会删除对应的字幕数据包。
可以理解的是,中转服务端的RUDP发送模块可以为字幕数据流建立与音视频流不同的数据链路,将传输字幕数据包的数据链路称为第一数据链路,将传输音视频流的数据链路称为第二数据链路,第一数据链路和第二数据链路都是RUDP发送模块与通话成员的RUDP接收模块之间建立的RUDP会话链路。
具体地,参照图9,图9是本申请实施例提供的字幕数据包的发送框架示意图。图9中示出了两个通话成员,此时中转服务端从字幕服务端获取字幕数据包,将字幕数据包转发给RUDP发送模块,该模块与所有的通话成员的RUDP接收模块之间建立RUDP会话链路。例如与第一个通话成员建立RUDP会话链路会话1和会话2,与第二个通话成员建立RUDP会话链路会话3和会话4,其中,会话1、会话2、会话3和会话4之间的传输均互不干扰。然后将会话1和会话3作为第二数据链路,分别传输音视频流给通话成员,将会话2和会话4作为第一数据链路,分别传输对应的字幕数据包给通话成员。再利用会话2和会话4将每个通话成员对应的反馈信息传输至中转服务端,以便中转服务端根据反馈信息判断需要重传字幕数据包或者需要删除字幕数据包。
在一种可能的实现方式中,为了提高资源利用率,本申请实施例在传输字幕数据包时,也可以复用音视频流的数据链路。参照图10,图10是本申请实施例提供的字幕数据包的发送框架示意图。图10中示出了两个通话成员,此时中转服务端从字幕服务端获取字幕数据包,将字幕数据包转发给RUDP发送模块,该模块与所有的通话成员的RUDP接收模块之间建立两条RUDP会话链路。例如与第一个通话成员建立RUDP会话链路会话5,与第二个通话成员建立RUDP会话链路会话6。其中,会话5和会话6作为第二数据链路,均可以同时传输音视频流和字幕数据包。本申请实施例通过在单一传输媒介上同时传输多路信号复用数据链路,使得目标通话过程中通信资源的利用效率提升,有效地提高通信系统的容量和效率,降低传输成本,并增强系统的灵活性和扩展性。
下面描述字幕数据包的传输过程。
在一些可能的实现方式中,目标通话是实时语音通话过程,如会议或多方通话,多个通话成员会同时或交替地产生通话音频数据包。这些通话音频数据包需要被有效地采集、处理和传输,以便所有通话成员都能够听到对方的声音,进行实时地交流。因此需要对每个通话成员的通话音频数据包分别进行语音识别,以得到每个通话成员对应的字幕数据包。此时字幕服务端得到的字幕数据包可能来自不同的通话成员。在实时字幕的场景中,首先字幕数据包需要和通话音频数据包一一对应,不能出现错位现象。其次同一个通话成员的字幕数据包需要有严格的时序关系,即同一个通话成员的字幕数据包需要按照通话音频数据包的顺序进行对应,这样能够保证语言的逻辑性。而不同的通话成员之间的字幕数据包能够容忍一定程度的乱序,即在不同通话成员先后发言的时候,可以不需要严格按照通话成员的发言顺序进行字幕的显示,这样能够提高实时字幕的容差率,减少字幕数据包时序确定的复杂性,降低实时字幕的时延。
在上述场景中,为了保证同一个通话成员的多个字幕数据包具有时序性,本申请实施例为每一个通话成员配置一个字幕数据流,字幕数据流中是按照时序排列的该通话成员的字幕数据包,利用字幕数据流保证同一个通话成员的至少一个字幕数据包具有严格的时序关系。然后将不同的通话成员的字幕数据流与对应的音视频流进行关联,关联后发送给相关的通话成员,再接收通话成员对字幕数据流中的字幕数据包接收的反馈信息。具体地,在一个字幕数据流中,为每个字幕数据包添加一个包序号,用来标识该字幕数据包再字幕数据流中的时序关系,通过这种方式对字幕数据包进行标识之后,就可以利用字幕数据流同时发送多个字幕数据包至中转服务端,而不会在传输过程中造成字幕数据包的时序混淆。
可以理解的是,在传输字幕数据流时,可以独立发送不同的字幕数据流,也将字幕数据流依次排列后传输,也可以将不同通话成员的字幕数据包交替进行排列。仅需保证每个通话成员的字幕数据包是按照时序进行排列的即可,本实施例对此不做限定。
参照图11,图11为本申请实施例提供的字幕数据流的传输结构示意图。参照图11,假设目标通话中包括通话成员e1、通话成员e2和通话成员e3,其中通话成员e1输出1条通话音频数据包f1,通话成员e2输出3条通话音频数据包f2、通话音频数据包f3和通话音频数据包f4,通话成员e3输出2条通话音频数据包f5和通话音频数据包f6。此时针对每个通话音频数据包得到对应的字幕数据包,分别是:通话音频数据包f1的字幕数据包g1、通话音频数据包f2的字幕数据包g2、通话音频数据包f3的字幕数据包g3、通话音频数据包f4的字幕数据包g4、通话音频数据包f5的字幕数据包g5和通话音频数据包f6的字幕数据包g6。此时针对每个通话用户都得到对应的字幕数据流,其中,通话用户e1的字幕数据流1中字幕数据包按照时序关系分别是:字幕数据包g1;通话用户e2的字幕数据流2中字幕数据包按照时序关系分别是:字幕数据包g2、字幕数据包g3和字幕数据包g4;通话用户e3的字幕数据流3中字幕数据包按照时序关系分别是:字幕数据包g5和字幕数据包g6。
其中,RUDP发送模块在向RUDP接收模块发送字幕数据流时,可以按照三种方式进行。参照图12,图12是本申请实施例提供的发送字幕数据流的示意图。图12中第一种方式是将字幕数据流1、字幕数据流2和字幕数据流3独立发送,这种方式较为灵活,不同的字幕数据流之间互相不影响,通信的稳定性较高。第二种是将字幕数据流1、字幕数据流2和字幕数据流3依次拼接,得到一个整体的数据流进行发送。第三种与第二种较为类似,是将不同通话成员的字幕数据包交替进行排列,例如交替排列后得到一个整体的数据流:字幕数据包g1、字幕数据包g2、字幕数据包g3、字幕数据包g5、字幕数据包g4和字幕数据包g6,再将整体的数据流通过RUDP协议发送至RUDP接收模块。这两种方式可以减少协议上的冗余信息,例如重复的头信息,从而降低整体的数据量,减少实时字幕的延时。
可以理解的是,同一个字幕数据流中字幕数据包设定连续的包序号,不同的字幕数据流中字幕数据包可以根据不同的包序号进行区分,即包序号不会出现重复。例如字幕数据包的包序号可以是:字幕数据包g1(包序号为e1.1)、字幕数据包g2(包序号为e2.1)、字幕数据包g3(包序号为e2.2)、字幕数据包g5(包序号为e3.1)、字幕数据包g4(包序号为e2.3)和字幕数据包g6(包序号为e3.2),这里的包序号由两部分构成,第一部分标识通话成员,第二部分标识字幕数据包的时序。
上述过程中整体的数据流发送过程中,将字幕数据包配置成字幕数据流后,依据字幕数据流,将字幕数据包分别传输至对应的通话成员,由于字幕数据包是根据音视频流中通话音频数据包得到的,因此每个字幕数据包可以和通话音频数据包一一对应。此时通话成员接收到字幕数据包后,将根据包序号对字幕数据包进行排序和重组,接着还根据对应关系将音视频流和字幕数据包进行关联后,按照音视频流的播放顺序,在通话界面上逐一显示字幕数据包。另外,通话成员还向中转服务端发送反馈信息,告知中转服务端字幕数据包都已经接收到。如果中转服务端在一定时间内没有接收到反馈信息,则确定字幕数据包出现丢包,则重新发送对应的字幕数据包,从而减少网络拥塞和丢包造成的数据不稳定和数据不可靠。
可以理解的是,对于丢失的字幕数据包之后的其他字幕数据包来说,可以是暂停发送,等丢失的字幕数据包重传成功后再发送,或者也可以正常发送,在通信成员端进行等待,等待丢失的字幕数据包重传成功后,统一进行整理后传输至应用层。
参照图13,图13为本申请实施例中字幕数据包丢包情况示意图,参照图12中第三种情况,如果整体的数据流发送过程中,字幕数据包g1丢包了,对于通话成员e1来说,其对应的字幕数据会延迟收到,需要等待中转服务端重传字幕数据包g1后才能得到。而对于通话成员e2和通话成员e3来说,其字幕数据包的接收不受影响,RUDP接收模块在收到后续的其它字幕数据包后,判断其包序号是连续的,即可确定通话成员e2和通话成员e3分别对应的字幕数据。
在一可能的实现方式中,由于实时字幕对低时延有较高要求,中转服务端在何时判断需要重传对时延的影响较大,因此需要明确重传时机。本申请实施例中各个字幕数据包均配置有各自对应的包序号,将丢失的字幕数据包重新传输至通话成员的具体过程包括:确定当前时刻与丢失的字幕数据包的传输时刻之间的传输时间间隔,当传输时间间隔大于或者等于时长阈值,将丢失的字幕数据包重新传输至通话成员。
其中,字幕数据流中不同的字幕数据包在发送过程中,均能确定对应的传输时刻,该传输时刻即RUDP发送模块发送数据的时刻,然后实时计算当前时刻和传输时刻的时间差值,即可得到每个字幕数据包的传输时刻与当前时刻的传输时间间隔。根据实际情况设定一个时长阈值,如果传输时间间隔大于或等于这个时长阈值,则判断对应的字幕数据包可能出现了丢包现象,因此可以启动重传,将丢失的字幕数据包重新传输至对应的通话成员。
上述过程中时长阈值是基于通话成员的数据接收状态确定的,其中,数据接收状态用于指示通话成员已接收到至少一个目标数据包或者未接收到目标数据包,目标数据包为其中一个字幕数据包,且目标数据包的包序号大于丢失的字幕数据包的包序号。例如对于某一个通话成员,已经接收到i-1个字幕数据包,即本该获取第i个字幕数据包,但是获取到的是第i+1个字幕数据包,此时第i+1个字幕数据包和后续时序的字幕数据包都可以称为目标数据包。当通话成员已接收到至少一个目标数据包,说明第i个字幕数据包是在传输过程中丢失的字幕数据包。或者通话成员未接收到目标数据包,说明包括第i个字幕数据包在内的之后其他字幕数据包都未接收到。本申请实施例在字幕数据包由于网络问题导致延迟到达时,设定重传的时长阈值可以确保这些数据包最终被正确接收,而不是被丢弃。并且通过时长阈值建立一种快速重传机制,通过简单的比较时长阈值即可触发重传,而不必等待超时,减少因字幕数据包丢失导致的实时字幕的时延。
在一种可能的实现方式中,考虑到时长阈值的大小设定比较重要,如果重传的时长阈值设置过短,可能会导致过多的重传,增加网络负担,如果时长阈值设置过长,则可能在字幕数据包确实丢失时,延迟重传,降低实时字幕的显示效率。因此本申请实施例自适应设定时长阈值,在保证消息可靠性的同时,避免不必要的重传,减少网络拥塞,降低传输时延,提高数据传输效率。
具体地,自适应设定时长阈值的过程包括:当数据接收状态指示通话成员未接收到目标数据包时,确定用于传输字幕数据包的第一数据链路的传输时延,根据传输时延和预设的第一惩罚系数之和确定时长阈值。或者,当数据接收状态指示通话成员接收到至少一个目标数据包时,确定传输时延,根据第一惩罚系数以及目标数据包的数量确定第二惩罚系数,根据传输时延和第二惩罚系数之和确定时长阈值。
在一可能的实现方式中,如果数据接收状态指示通话成员未接收到目标数据包时,假设丢失的字幕数据包为第i个字幕数据包,此时说明通话成员当前没有收到比序号i更大的字幕数据包,表示当前序号i这个字幕数据包没有阻塞字幕数据流中后续的字幕数据包,因此需要确定用于传输字幕数据包的第一数据链路的传输时延rtt,再根据传输时延rtt和预设的第一惩罚系数m之和确定时长阈值即可,时长阈值/>表示为:
=rtt+m
其中,第一惩罚系数根据实际情况取值。
在一可能的实现方式中,如果数据接收状态指示通话成员接收到至少一个目标数据包时,假设丢失的字幕数据包为第i个字幕数据包,此时说明通话成员当前收到至少一个比序号i更大的字幕数据包,表示当前序号i这个字幕数据包已经对字幕数据流中后续的字幕数据包造成了阻塞,此时需要下调时长阈值,来达到尽快重传的目的。因此根据第一惩罚系数m以及目标数据包的数量n确定第二惩罚系数m/n,再根据传输时延rtt和第二惩罚系数m/n之和确定时长阈值,时长阈值/>表示为:
=rtt+m/n
根据上述两种方式,得到时长阈值的表示为:
本申请实施例基于通话成员的数据接收状态来自适应确定时长阈值,使时长阈值适应不断变化的网络环境,这种动态调整有助于在网络状态不佳时减少重传次数,而在网络状况良好时迅速恢复数据传输。
在一种可能的实现方式中,在得到字幕数据包之后,中转服务端需要将字幕数据包发送给对应的通话成员。
此时通话成员分别创建有各自对应的第二数据链路,第二数据链路用于供当前的通话成员接收其余的通话成员传输的通话音频数据包,因此将字幕数据包传输至通话成员的过程具体包括:获取第二数据链路的传输质量参数,当根据传输质量参数确定第二数据链路的传输质量正常时,将通话音频数据包以及对应的字幕数据包组合为合并数据包,将合并数据包传输至通话成员。或者,获取第二数据链路的传输质量参数,当根据传输质量参数确定第二数据链路的传输质量异常时,将通话音频数据包以及对应的字幕数据包分别传输至通话成员。
上述传输质量参数包括丢包率、时延、拥塞度、带宽、抖动、误码率等参数。其中,丢包率指的是在第二数据链路的数据传输过程中,丢失的数据包占总发送数据包的比例,较高的丢包率会导致音视频的传输质量下降。时延是指数据沿着第二数据链路,从中转服务端发送到通话成员所需的时间,这里的时延包括传播时延、处理时延、排队时延和传输时延等多个组成部分,时延会影响交互的即时性和通话的流畅度。拥塞度是指第二数据链路上的数据流量饱和程度,当第二数据链路中的数据传输需求超过其承载能力时,就会发生拥塞,这会导致音视频流火字幕数据流中数据包延迟或丢失,降低网络效率。带宽是指第二数据链路在单位时间内能够传输的最大数据量,在实时通话中,足够的带宽是保障高质量传输的基础。抖动是指第二数据链路中数据包到达时间的变异性,即数据包传输的不规律性,在实时通话中,抖动会导致音质和画质不稳定,影响通话体验。可以理解的是,本申请实施例对传输质量参数的选取不做限定,可以根据实际需求进行选取。
本申请实施例针对不同的传输质量参数均设定对应的判断标准,这些判断标准根据实际业务确定。在选取传输质量参数后,根据不同传输质量参数对应的判断标准,根据传输质量参数和判断标准之间的比对结果,确定第二数据链路的传输质量是否正常。在第二数据链路的传输质量正常时,例如丢包率小于1%,则可以利用捆包的方式提升传输效率,将通话音频数据包以及对应的字幕数据包组合为合并数据包,将合并数据包传输至通话成员,减少传输包量和数据量,降低服务器处理成本和网络传输成本。或者在第二数据链路的传输质量异常时,例如丢包率大于或等于1%,将通话音频数据包以及对应的字幕数据包分别传输至通话成员,利用不捆包单独发送的方式来降低重传的数据量。
在一种可能的实现方式中,将通话音频数据包以及对应的字幕数据包组合为合并数据包的过程具体包括:从通话音频数据包中提取出音频数据,从字幕数据包中提取出字幕数据;将音频数据以及字幕数据添加至合并数据包的包体,在合并数据包的包头中配置第一包类型、音频数据的数据长度以及字幕数据的数据长度,其中,第一包类型用于指示合并数据包中同时封装有音频数据以及字幕数据。
其中,字幕数据包的数据大小一般较小,例如几十个字节,如果从网络层来看单独发送的字幕数据包,那么包含字幕数据的有效数据占比小,其中,包头信息占比较大,导致传输效率低,因此本实施例将音频数据和字幕数据进行合并得到合并数据包,来提升传输效率。中转服务端在接收到通话音频数据包后,从通话音频数据包中提取出音频数据,再从接收到的字幕数据包中提取得到字幕数据,按照音频数据和字幕数据的对应关系,将音频数据和字幕数据进行关联后,添加到合并数据包的包体中。并利用第一包类型指示合并数据包中同时封装有音频数据以及字幕数据,将第一包类型、音频数据的数据长度以及字幕数据的数据长度封装在合并数据包的包头。此时包头和包体构成合并数据包,将合并数据包发送至对应的通话成员。
上述将音频数据和字幕数据进行关联的过程具体是:例如为音频数据和字幕数据中的事件或讲话内容分配时间码(如小时:分钟:秒:帧),利用时间码标识媒体流中特定点的唯一标识符,在字幕数据中,这些时间码标记了字幕的开始时间、结束时间以及相应的文本内容,接着使用支持时间码和多轨的容器格式来存储音频数据和字幕数据,验证字幕数据和音频同步无误后,输出最终的合并数据包。同时也可以在输出设置中选择合适的编解码器,确保合并数据包在不同通信成员的通信界面上都能兼容。
参照图14,图14为本申请实施例提供的合并数据包的包结构示意图。该数据包的包结构包括明文包头和加密数据。其中,明文包头包括:第一包类型字段type、音频数据的数据长度字段Audiu_len以及字幕数据的数据长度字段Subtitle_len,加密数据的包体包括音频数据和字幕数据。通过读取明文包头中的第一包类型字段type中字段内容即可得到第一包类型,因此中转服务端即可确定合并数据包中同时封装有音频数据以及字幕数据,通话成员在得到合并数据包后,也可以从明文包头中的Audiu_len字段以及Subtitle_len字段分别得到音频数据的数据长度以及字幕数据的数据长度,从而根据这两种数据长度对合并包数据进行解析,从而得到对应的音频数据和字幕数据,将音频数据和字幕数据交给应用层进行处理。
在一种可能的实现方式中,本申请实施例的中转服务端可能在同一时间得到多个待传输数据包,例如某一通话成员传输的视频流对应的视频数据包、某一通话成员传输的音频流对应的音频数据包以及字幕服务端传输的字幕数据包。此时将视频数据包、音频数据包和字幕数据包都作为待传输数据包,为了兼顾处理效率和数据安全性,本申请实施例需要确定中转服务端接收到的待传输数据包的第二包类型,根据确定结果选取不同的转发规则。因此将字幕数据包传输至通话成员之前,本申请实施例的通话字幕处理方法还包括:确定字幕数据包的第二包类型,其中,第二包类型用于指示字幕数据包封装有字幕数据;将第二包类型与预设的转发规则进行匹配,根据匹配结果将字幕数据包的传输对象确定为通话成员,其中,转发规则用于指示第二包类型与传输对象之间的映射关系。
其中,需要确定待传输数据包的第二包类型,根据第二包类型选择对应的传输对象。如果第二包类型指示待传输数据包为字幕数据包,字幕数据包封装有字幕数据,此时根据转发规则的匹配结果,将待传输数据包的传输对象确定为包含数据源对应的通话成员在内的所有通话成员。如果第二包类型指示待传输数据包为视频数据包,其中不包含字幕数据,此时根据转发规则的匹配结果,将待传输数据包的传输对象确定为除数据源对应的通话成员以外的其他所有通话成员。如果第二包类型指示待传输数据包为音频数据包,其中不包含字幕数据,此时根据转发规则的匹配结果,将待传输数据包的传输对象确定为除数据源对应的通话成员以外的其他所有通话成员以及隐藏成员。
参照图15,图15为本申请实施例提供的待传输数据包的包结构示意图。该待传输数据包的包结构也包括明文包头和加密数据。其中,明文包头包括:第二包类型字段type’,加密数据可以是音频数据、视频数据和字幕数据。通过读取明文包头中的第二包类型字段type’中字段内容即可得到第二包类型,将第二包类型和预设的转发规则进行匹配,即可确定待传输数据包的传输对象。
下面详细说明本申请实施例提供的通话字幕处理方法的原理。
参照图16,图16为本申请实施例提供的通话字幕处理方法的一种可选的总体流程示意图。
步骤1610:获取接入目标通话的任意一个通话成员传输的通话音频数据包。
其中,所有的通话成员与服务器的中转服务端通信连接,通过中转服务端建立不同通话成员之间的目标通话。如果目标通话建立,并且此时通话成员间发生了通话过程,中转服务端会接收到任意一个通话成员传输的通话音频数据包。例如通话成员间进行单纯的音频通话,此时通话成员使用麦克风或其他音频输入设备捕获用户的语音信号,进行实时音频采集,此时中转服务端接收的通话音频数据包即采集的音频信号。如果进行视频通话,此时通话成员使用摄像头和麦克风同时捕获视频数据和音频数据,得到包含视频数据和音频数据的音视频流,再从复合的音视频流中分离出音频流,对分离的音频流进行预处理和编码得到音频信号。同时对视频数据执行类似的预处理和编码步骤得到视频信号,将音频信号和视频信号同步传输至中转服务端。此时中转服务端将接收到的音频信号作为通话音频数据包。另外,如果进行视频通话,通话成员产生的音视频信号,也可以都发送到中转服务端,然后中转服务端对音视频信号进行音视频分离,从中采集得到音频信号作为通话音频数据包,然后执行后续的操作。本申请实施例的中转服务端无论哪种场景中,都至少能够得到通话音频数据包。
步骤1620:将通话音频数据包传输至接入目标通话的字幕服务端。
其中,字幕服务端是由目标通话的管理服务端激活并接入目标通话的。管理服务端激活字幕服务端之后,将字幕服务端作为目标通话的新成员,由于字幕服务端接入了目标通话,因此可以利用中转服务端获取对应通话成员的通话音频数据包,从而根据通话音频数据包进行语音识别得到字幕数据包。
可以理解的是,当一个语音句子构成一个通话音频数据包时,字幕服务端可以在获取到一个语音句子就对其进行语音识别得到对应的字幕,然后将该字幕作为字幕数据包,也可以将很短时间内接收到的语音句子对应的字幕进行汇总后作为字幕数据包。当多个语音句子构成一个通话音频数据包时,字幕服务端对多个语音句子分别进行语音识别得到对应的字幕,然后将多个字幕进行汇总后作为字幕数据包。
在一种可能的实现方式中,管理服务端激活字幕服务端的激活时机包括以下几种。例如管理服务端在建立通话成员间的目标通话的时候,就可以同步将字幕服务端激活并接入目标通话。也可以在目标通话建立后,采集到任意通话成员的通话音频数据包时,同步激活字幕服务端。也可以在通话成员的通话界面上显示字幕控件,当通话成员点击字幕控件后,管理服务端响应该点击动作,激活字幕服务端。本申请实施例对激活时机不做限定,可以根据实际业务需求进行设定。
另外,字幕服务端被管理服务端配置为目标通话的隐藏成员。隐藏成员的意思是字幕服务端的加入并不会通知到目标通话中的通话成员,任意通话成员都对字幕服务端无感,这样减少不必要的干扰,不会影响到其他成员的通话体验,使得字幕的处理过程具有通用性。
在一种可能的实现方式中,管理服务端为了便于对目标通话进行管理,可以利用标识对通话成员和字幕服务端对应的隐藏成员进行区分。例如利用第一通话成员标识对通话成员进行标识,利用第二通话成员标识对隐藏成员进行标识,同时在通话成员的通话界面上不显示第二通话成员标识。
步骤1630:获取字幕服务端传输的字幕数据包,将字幕数据包传输至通话成员。
其中,字幕服务端对通话音频数据包进行音频识别得到字幕数据包后,中转服务端需要将字幕数据包按照目标通话传输至对应的通话成员,这样通话成员在得到对应的音视频信号后,还能同步得到对应的字幕数据包,提升通信过程的通信效率,另外通话成员在获取字幕数据包和对应的音视频流之后,还对其进行相应的解密过程,将解密结果显示在对应的通话界面。同时,中转服务端还可以将字幕数据包发送回通话音频数据包所属的通话成员,这样通话成员可以对字幕数据包所包含的字幕数据进行验证,判断字幕数据的准确性,从而进一步确保通话体验。通话成员还可以对其字幕数据包的准确性进行反馈,中转服务端将反馈结果传输至字幕服务端,从而字幕服务端利用反馈结果对语音识别相关算法进行迭代优化。
其中,将字幕数据包传输至通话成员的具体过程包括以下步骤:
步骤1631:确定字幕数据包的第二包类型,将第二包类型与预设的转发规则进行匹配,根据匹配结果将字幕数据包的传输对象确定为通话成员。
其中,中转服务端可能在同一时间得到多个数据包,例如某一通话成员传输的视频流对应的视频数据包、某一通话成员传输的音频流对应的音频数据包以及字幕服务端传输的字幕数据包,因此对中转服务端接收到的待传输数据包设定不同的转发规则。如果第二包类型指示待传输数据包为字幕数据包,其中,字幕数据包封装有字幕数据,此时根据转发规则的匹配结果,将待传输数据包的传输对象确定为包含数据源对应的通话成员在内的所有通话成员。如果第二包类型指示待传输数据包为视频数据包,其中不包含字幕数据,此时根据转发规则的匹配结果,将待传输数据包的传输对象确定为除数据源对应的通话成员以外的其他所有通话成员。如果第二包类型指示待传输数据包为音频数据包,其中不包含字幕数据,此时根据转发规则的匹配结果,将待传输数据包的传输对象确定为除数据源对应的通话成员以外的其他所有通话成员以及隐藏成员。
步骤1632:当确定字幕数据包中封装有字幕数据时,为来自不同通话成员的字幕数据包分别配置不同的字幕数据流,将配置字幕数据流后的字幕数据包传输至通话成员,接收通话成员返回的反馈信息。
其中,字幕数据流包括按照顺序排列的字幕数据包。本申请实施例的中转服务端在传输字幕数据包时,可以采用RUDP协议来传输。中转服务端接收字幕服务端传输的字幕数据包,然后中转服务端作为发送端,将字幕数据包转发给RUDP发送模块,该模块与所有的通话成员的RUDP接收模块之间建立RUDP会话链路。例如目标通话中存在两个通话成员,那么RUDP发送模块分别与这两个通话成员建立对应的RUDP会话链路。此时RUDP发送模块将封装好的字幕数据包通过RUDP会话链路分别传输给对应的通话成员,通话成员在接收到字幕数据包后,判断是不是存在丢包情况,根据丢包情况生成对应的反馈信息,再利用RUDP接收模块将反馈信息传输给中转服务端的RUDP发送模块。
步骤1633:当反馈信息指示存在丢失的字幕数据包时,确定当前时刻与丢失的字幕数据包的传输时刻之间的传输时间间隔当传输时间间隔大于或者等于时长阈值,将丢失的字幕数据包重新传输至通话成员。
其中,当反馈信息指示存在丢失的字幕数据包时,中转服务端会将丢失的字幕数据包重新传输至对应的通话成员,如果反馈信息指示所有字幕数据包都已发送完毕,此时中转服务端会删除对应的字幕数据包。可以理解的是,对于丢失的字幕数据包之后的其他字幕数据包来说,可以是暂停发送,等丢失的字幕数据包重传成功后再发送,或者也可以正常发送,在通信成员端进行等待,等待丢失的字幕数据包重传成功后,统一进行整理。
在一可能的实现方式中,由于实时字幕对低时延有较高要求,中转服务端在何时判断需要重传对时延的影响较大,因此需要明确重传时机。本申请实施例中各个字幕数据包均配置有各自对应的包序号,将丢失的字幕数据包重新传输至通话成员的具体过程包括:确定当前时刻与丢失的字幕数据包的传输时刻之间的传输时间间隔,当传输时间间隔大于或者等于时长阈值,将丢失的字幕数据包重新传输至通话成员。
其中,字幕数据流中不同的字幕数据包在发送过程中,均能确定对应的传输时刻,该传输时刻即RUDP发送模块发送数据的时刻,然后实时计算当前时刻和传输时刻的时间差值,即可得到每个字幕数据包的传输时刻与当前时刻的传输时间间隔。根据实际情况设定一个时长阈值,如果传输时间间隔大于或等于这个时长阈值,则判断对应的字幕数据包可能出现了丢包现象,因此可以启动重传,将丢失的字幕数据包重新传输至对应的通话成员。
上述过程中时长阈值是基于通话成员的数据接收状态确定的,其中,数据接收状态用于指示通话成员已接收到至少一个目标数据包或者未接收到目标数据包,目标数据包为其中一个字幕数据包,且目标数据包的包序号大于丢失的字幕数据包的包序号。本申请实施例在字幕数据包由于网络问题导致延迟到达时,设定重传的时长阈值可以确保这些数据包最终被正确接收,而不是被丢弃。并且通过时长阈值建立一种快速重传机制,通过简单的比较时长阈值即可触发重传,而不必等待超时,减少因字幕数据包丢失导致的实时字幕的时延。
另外,本申请实施例时长阈值可以进行自适应,在保证消息可靠性的同时,避免不必要的重传,减少网络拥塞,降低传输时延,提高数据传输效率。具体地,自适应设定时长阈值的过程包括:当数据接收状态指示通话成员未接收到目标数据包时,确定用于传输字幕数据包的第一数据链路的传输时延,根据传输时延和预设的第一惩罚系数之和确定时长阈值。或者,当数据接收状态指示通话成员接收到至少一个目标数据包时,确定传输时延,根据第一惩罚系数以及目标数据包的数量确定第二惩罚系数,根据传输时延和第二惩罚系数之和确定时长阈值。本申请实施例基于通话成员的数据接收状态来自适应确定时长阈值,使时长阈值适应不断变化的网络环境,这种动态调整有助于在网络状态不佳时减少重传次数,而在网络状况良好时迅速恢复数据传输。
另一方面,将字幕数据包传输至通话成员的具体过程还可以包括以下两个并列步骤:
步骤1634:获取第二数据链路的传输质量参数,当根据传输质量参数确定第二数据链路的传输质量正常时,将通话音频数据包以及对应的字幕数据包组合为合并数据包,将合并数据包传输至通话成员。
步骤1635:获取第二数据链路的传输质量参数,当根据传输质量参数确定第二数据链路的传输质量异常时,将通话音频数据包以及对应的字幕数据包分别传输至通话成员。
其中,通话成员分别创建有各自对应的第二数据链路,第二数据链路用于供当前的通话成员接收其余的通话成员传输的通话音频数据包,因此将字幕数据包传输至通话成员的过程具体包括:获取第二数据链路的传输质量参数,当根据传输质量参数确定第二数据链路的传输质量正常时,将通话音频数据包以及对应的字幕数据包组合为合并数据包,将合并数据包传输至通话成员。或者,获取第二数据链路的传输质量参数,当根据传输质量参数确定第二数据链路的传输质量异常时,将通话音频数据包以及对应的字幕数据包分别传输至通话成员。传输质量参数包括丢包率、时延、拥塞度、带宽、抖动、误码率等参数。本申请实施例针对不同的传输质量参数均设定对应的判断标准,这些判断标准根据实际业务确定。在选取传输质量参数后,根据不同传输质量参数对应的判断标准,根据传输质量参数和判断标准之间的比对结果,确定第二数据链路的传输质量是否正常。在第二数据链路的传输质量正常时,例如丢包率小于1%,则可以利用捆包的方式提升传输效率,将通话音频数据包以及对应的字幕数据包组合为合并数据包,将合并数据包传输至通话成员,减少传输包量和数据量,降低服务器处理成本和网络传输成本。或者在第二数据链路的传输质量异常时,例如丢包率大于或等于1%,将通话音频数据包以及对应的字幕数据包分别传输至通话成员,利用不捆包单独发送的方式来降低重传的数据量。
在一种可能的实现方式中,将通话音频数据包以及对应的字幕数据包组合为合并数据包的过程具体包括:从通话音频数据包中提取出音频数据,从字幕数据包中提取出字幕数据;将音频数据以及字幕数据添加至合并数据包的包体,在合并数据包的包头中配置第一包类型、音频数据的数据长度以及字幕数据的数据长度,其中,第一包类型用于指示合并数据包中同时封装有音频数据以及字幕数据。
本申请实施例的通话字幕处理方法通过获取接入目标通话的任意一个通话成员传输的通话音频数据包,将通话音频数据包传输至接入目标通话的字幕服务端,由于字幕服务端是由目标通话的管理服务端激活并接入目标通话的,因此在通话过程中字幕服务端能够像普通的通话成员一样快捷地获取到通话过程中的通话音频数据包,再对通话音频数据包进行语音识别得到字幕数据包,得到的字幕数据包被传输至各个通话成员,可见,生成字幕数据包的过程无须其他通话成员的参与,从而有效地降低了网络负载,提升了通话字幕的实时性,并且,由于字幕服务端被管理服务端配置为目标通话的隐藏成员,其他通话成员并不会感知到字幕服务端的存在,从而在提升通话字幕的实时性的同时,保留了原有的通话体验,提升了通话字幕处理的通用性。
上述过程描述了通话字幕处理方法在服务器的执行过程,下面描述通话字幕处理方法在字幕服务端的执行过程。参照图17,图17为本申请实施例提供的通话字幕处理方法的又一种可选的流程图,以通话字幕处理方法的执行主体为字幕服务端为例进行说明,该通话字幕处理方法包括但不限于以下步骤1701至步骤1703。
步骤1701:响应于目标通话的管理服务端传输的接入指令,以隐藏成员的身份接入目标通话。
其中,由于字幕服务端是由目标通话的管理服务端激活并接入目标通话的,因此目标通话的管理服务端利用接入指令激活字幕服务端,激活字幕服务端之后,将字幕服务端作为目标通话的新成员,由于字幕服务端接入了目标通话,因此可以获取对应通话成员的通话音频数据包,从而根据通话音频数据包进行语音识别得到字幕数据包。
可以理解的是,这里的接入指令是在激活时机传输至字幕服务端的,其中,激活时机可以是管理服务端在建立通话成员间的目标通话的时候,也可以在目标通话建立后,采集到任意通话成员的通话音频数据包的时候,也可以在通话成员的通话界面上显示字幕控件,当通话成员点击字幕控件后,管理服务端响应该点击动作的时候。
另外,字幕服务端被管理服务端配置为目标通话的隐藏成员。隐藏成员的意思是字幕服务端的加入并不会通知到目标通话中的通话成员,任意通话成员都对字幕服务端无感,这样减少不必要的干扰,不会影响到其他成员的通话体验,使得字幕的处理过程具有通用性。
步骤1702:获取目标通话的中转服务端传输的通话音频数据包,对通话音频数据包进行语音识别得到字幕数据包。
其中,通话音频数据包是接入目标通话的任意一个通话成员传输至中转服务端的。如果目标通话建立,并且此时通话成员间发生了通话过程,中转服务端会接收到任意一个通话成员传输的通话音频数据包。例如通话成员间进行单纯的音频通话,此时通话成员使用麦克风或其他音频输入设备捕获用户的语音信号,进行实时音频采集,接着对采集的语音信号进行包括噪声抑制、回声消除等预处理操作,以改善音质,最后将模拟的语音信号转换成数字信号,并进行压缩编码得到音频信号,减少数据量后发送至中转服务端。此时中转服务端接收的通话音频数据包即采集的音频信号。如果进行视频通话,此时通话成员使用摄像头和麦克风同时捕获视频数据和音频数据,得到包含视频数据和音频数据的音视频流,再从复合的音视频流中分离出音频流,对分离的音频流进行预处理和编码得到音频信号。同时对视频数据执行类似的预处理和编码步骤得到视频信号,将音频信号和视频信号同步传输至中转服务端。此时中转服务端将接收到的音频信号作为通话音频数据包。另外,如果进行视频通话,通话成员产生的音视频信号,也可以都发送到中转服务端,然后中转服务端对音视频信号进行音视频分离,从中采集得到音频信号作为通话音频数据包,然后执行后续的操作。
其中,当一个语音句子构成一个通话音频数据包时,字幕服务端可以在获取到一个语音句子就对其进行语音识别得到对应的字幕,然后将该字幕作为字幕数据包,也可以将很短时间内接收到的语音句子对应的字幕进行汇总后作为字幕数据包。当多个语音句子构成一个通话音频数据包时,字幕服务端对多个语音句子分别进行语音识别得到对应的字幕,然后将多个字幕进行汇总后作为字幕数据包。
在一可能的实现方式中,对通话音频数据包进行语音识别得到字幕数据包的过程具体包括:从通话音频数据包中提取出音频数据,对音频数据进行语音识别得到字幕数据,接着对字幕数据进行加密,将加密后的字幕数据添加至字幕数据包的包体,再在字幕数据包的包头中配置第二包类型,其中,第二包类型用于指示字幕数据包封装有字幕数据。
其中,由于中转服务端可能在同一时间得到多个待传输数据包,例如某一通话成员传输的视频流对应的视频数据包、某一通话成员传输的音频流对应的音频数据包以及字幕服务端传输的字幕数据包。此时将视频数据包、音频数据包和字幕数据包都作为待传输数据包,为了兼顾处理效率和数据安全性,需要在字幕数据包的包头设定第二包类型,以提示中转服务端确定待传输数据包为字幕数据包,且其中封装有字幕数据。
如果第二包类型指示待传输数据包为字幕数据包,其中,字幕数据包封装有字幕数据,此时根据转发规则的匹配结果,将待传输数据包的传输对象确定为包含数据源对应的通话成员在内的所有通话成员。如果第二包类型指示待传输数据包为视频数据包,其中不包含字幕数据,此时根据转发规则的匹配结果,将待传输数据包的传输对象确定为除数据源对应的通话成员以外的其他所有通话成员。如果第二包类型指示待传输数据包为音频数据包,其中不包含字幕数据,此时根据转发规则的匹配结果,将待传输数据包的传输对象确定为除数据源对应的通话成员以外的其他所有通话成员以及隐藏成员。另外,如果中转服务器能够根据待传输数据包的来源得知其为字幕数据包时,则可以不为该字幕数据包配置第二包类型。
步骤1703:将字幕数据包传输至中转服务端,以供中转服务端将字幕数据包传输至通话成员。
其中,字幕服务端对通话音频数据包进行音频识别得到字幕数据包后,中转服务端需要将字幕数据包按照目标通话传输至对应的通话成员,这样通话成员在得到对应的音视频信号后,还能同步得到对应的字幕数据包,提升通信过程的通信效率,另外通话成员在获取字幕数据包和对应的音视频流之后,还对其进行相应的解密过程,将解密结果显示在对应的通话界面。
本申请实施例的通话字幕处理方法响应于目标通话的管理服务端传输的接入指令,以隐藏成员的身份接入目标通话,因此在通话过程中字幕服务端能够像普通的通话成员一样快捷地获取到通话过程中的通话音频数据包。接着获取目标通话的中转服务端传输的接入目标通话的任意一个通话成员传输至中转服务端的通话音频数据包,对通话音频数据包进行语音识别得到字幕数据包,将字幕数据包传输至中转服务端,以供中转服务端将字幕数据包传输至通话成员。可见,生成字幕数据包的过程无须其他通话成员的参与,从而有效地降低了网络负载,提升了通话字幕的实时性,并且,由于字幕服务端被管理服务端配置为目标通话的隐藏成员,其他通话成员并不会感知到字幕服务端的存在,从而在提升通话字幕的实时性的同时,保留了原有的通话体验,提升了通话字幕处理的通用性。
下面整体描述本申请实施例的通话字幕处理方法。参照图18,图18为本申请实施例提供的通话字幕处理方法的整体流程图。
步骤1801:管理服务端建立包括通话成员的目标通话。
其中,通话成员指的是用户使用的任意终端,包括电脑、平板电脑、智能手机、智能手表、专业视频会议系统、智能电视等。用户通过终端作为通话成员发起与其他通话成员之间的通话过程。任意两个或两个以上的通话成员基于通话需求即可建立目标通话,这里的通话需求对应的场景包括:一对一通话、群组通话、视频会议、直播、实时对讲等场景。
步骤1802:管理服务端向字幕服务端传输接入指令,将字幕服务端以隐藏成员的身份接入目标通话。
其中,管理服务端通过接入指令来激活字幕服务端,对应的激活时机包括以下几种。例如管理服务端在建立通话成员间的目标通话的时候,就可以同步将字幕服务端激活并接入目标通话。也可以在目标通话建立后,采集到任意通话成员的通话音频数据包时,同步激活字幕服务端。也可以在通话成员的通话界面上显示字幕控件,当通话成员点击字幕控件后,管理服务端响应该点击动作,激活字幕服务端。本申请实施例对激活时机不做限定,可以根据实际业务需求进行设定。
其中,所有的通话成员与服务器的中转服务端通信连接,通过中转服务端建立不同通话成员之间的目标通话。字幕服务端被管理服务端配置为目标通话的隐藏成员。隐藏成员的意思是字幕服务端的加入并不会通知到目标通话中的通话成员,任意通话成员都对字幕服务端无感,这样减少不必要的干扰,不会影响到其他成员的通话体验,使得字幕的处理过程具有通用性。
步骤1803:中转服务端获取接入目标通话的任意一个通话成员传输的通话音频数据包,并将通话音频数据包传输至字幕服务端。
其中,如果目标通话建立,并且此时通话成员间发生了通话过程,中转服务端会接收到任意一个通话成员传输的通话音频数据包。例如通话成员间进行单纯的音频通话,此时通话成员使用麦克风或其他音频输入设备捕获用户的语音信号,进行实时音频采集,此时中转服务端接收的通话音频数据包即采集的音频信号。如果进行视频通话,此时通话成员使用摄像头和麦克风同时捕获视频数据和音频数据,得到包含视频数据和音频数据的音视频流,再从复合的音视频流中分离出音频流,对分离的音频流进行预处理和编码得到音频信号。同时对视频数据执行类似的预处理和编码步骤得到视频信号,将音频信号和视频信号同步传输至中转服务端。此时中转服务端将接收到的音频信号作为通话音频数据包。本申请实施例的中转服务端无论哪种场景中,都至少能够得到通话音频数据包。其中,当管理服务端激活字幕服务端,并将其接入目标通话后,利用中转服务端获取对应通话成员的通话音频数据包,将该通话语音数据包发送给字幕服务端。
步骤1804:字幕服务端对通话音频数据包进行语音识别得到字幕数据包,再将字幕数据包传输至中转服务端。
其中,当一个语音句子构成一个通话音频数据包时,字幕服务端可以在获取到一个语音句子就对其进行语音识别得到对应的字幕,然后将该字幕作为字幕数据包,也可以将很短时间内接收到的语音句子对应的字幕进行汇总后作为字幕数据包。当多个语音句子构成一个通话音频数据包时,字幕服务端对多个语音句子分别进行语音识别得到对应的字幕,然后将多个字幕进行汇总后作为字幕数据包,再将字幕数据包传输至中转服务端。
在一可能的实现方式中,对通话音频数据包进行语音识别得到字幕数据包的过程具体包括:从通话音频数据包中提取出音频数据,对音频数据进行语音识别得到字幕数据,接着对字幕数据进行加密,将加密后的字幕数据添加至字幕数据包的包体,再在字幕数据包的包头中配置第二包类型。
步骤1805:中转服务端获取字幕数据包,并确定待传输数据包的第二包类型,将第二包类型与预设的转发规则进行匹配,根据匹配结果将字幕数据包的传输对象确定为通话成员。
其中,中转服务端可能在同一时间得到多个待传输数据包,例如某一通话成员传输的视频流对应的视频数据包、某一通话成员传输的音频流对应的音频数据包以及字幕服务端传输的字幕数据包,因此对中转服务端接收到的待传输数据包的第二包类型进行确认,根据确认结果设定不同的转发规则。如果第二包类型指示待传输数据包为字幕数据包,其中,字幕数据包封装有字幕数据,此时根据转发规则的匹配结果,将待传输数据包的传输对象确定为包含数据源对应的通话成员在内的所有通话成员。如果第二包类型指示待传输数据包为视频数据包,其中不包含字幕数据,此时根据转发规则的匹配结果,将待传输数据包的传输对象确定为除数据源对应的通话成员以外的其他所有通话成员。如果第二包类型指示待传输数据包为音频数据包,其中不包含字幕数据,此时根据转发规则的匹配结果,将待传输数据包的传输对象确定为除数据源对应的通话成员以外的其他所有通话成员以及隐藏成员。
步骤1806:当确定字幕数据包中封装有字幕数据时,为来自不同通话成员的字幕数据包分别配置不同的字幕数据流,将配置字幕数据流后的字幕数据包传输至通话成员,并接收通话成员返回的反馈信息。
其中,字幕数据流包括按照顺序排列的字幕数据包。本申请实施例的中转服务端在传输字幕数据包时,可以采用RUDP协议来传输。中转服务端接收字幕服务端传输的字幕数据包,然后中转服务端作为发送端,将字幕数据包转发给RUDP发送模块,该模块与所有的通话成员的RUDP接收模块之间建立RUDP会话链路。例如目标通话中存在两个通话成员,那么RUDP发送模块分别与这两个通话成员建立对应的RUDP会话链路。此时RUDP发送模块将封装好的字幕数据包通过RUDP会话链路分别传输给对应的通话成员,通话成员在接收到字幕数据包后,判断是不是存在丢包情况,根据丢包情况生成对应的反馈信息,再利用RUDP接收模块将反馈信息传输给中转服务端的RUDP发送模块。
步骤1807:当反馈信息指示存在丢失的字幕数据包时,确定当前时刻与丢失的字幕数据包的传输时刻之间的传输时间间隔当传输时间间隔大于或者等于时长阈值,将丢失的字幕数据包重新传输至通话成员。
其中,当反馈信息指示存在丢失的字幕数据包时,中转服务端会将丢失的字幕数据包重新传输至对应的通话成员,如果反馈信息指示所有字幕数据包都已发送完毕,此时中转服务端会删除对应的字幕数据包。可以理解的是,对于丢失的字幕数据包之后的其他字幕数据包来说,可以是暂停发送,等丢失的字幕数据包重传成功后再发送,或者也可以正常发送,在通信成员端进行等待,等待丢失的字幕数据包重传成功后,统一进行整理。
在一可能的实现方式中,由于实时字幕对低时延有较高要求,中转服务端在何时判断需要重传对时延的影响较大,因此需要明确重传时机。本申请实施例中各个字幕数据包均配置有各自对应的包序号,将丢失的字幕数据包重新传输至通话成员的具体过程包括:确定当前时刻与丢失的字幕数据包的传输时刻之间的传输时间间隔,当传输时间间隔大于或者等于时长阈值,将丢失的字幕数据包重新传输至通话成员。
另外,本申请实施例时长阈值可以进行自适应,在保证消息可靠性的同时,避免不必要的重传,减少网络拥塞,降低传输时延,提高数据传输效率。具体地,自适应设定时长阈值的过程包括:当数据接收状态指示通话成员未接收到目标数据包时,确定用于传输字幕数据包的第一数据链路的传输时延,根据传输时延和预设的第一惩罚系数之和确定时长阈值。或者,当数据接收状态指示通话成员接收到至少一个目标数据包时,确定传输时延,根据第一惩罚系数以及目标数据包的数量确定第二惩罚系数,根据传输时延和第二惩罚系数之和确定时长阈值。本申请实施例基于通话成员的数据接收状态来自适应确定时长阈值,使时长阈值适应不断变化的网络环境,这种动态调整有助于在网络状态不佳时减少重传次数,而在网络状况良好时迅速恢复数据传输。
示例性地,本申请实施例提供的通话字幕处理方法可应用于不同的场景,包括但不限于即时通话、在线会议、实时翻译等通话场景。
可以理解的是,虽然上述各个流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本实施例中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,上述流程图中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时间执行完成,而是可以在不同的时间执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
参照图19,图19为本申请实施例提供的通话字幕处理装置的一种可选的结构示意图,该第一通话字幕处理装置1900包括:
第一获取模块1901,用于获取接入目标通话的任意一个通话成员传输的通话音频数据包。
第一传输模块1902,用于将所述通话音频数据包传输至接入所述目标通话的字幕服务端,其中,所述字幕服务端是由所述目标通话的管理服务端激活并接入所述目标通话的,所述字幕服务端被所述管理服务端配置为所述目标通话的隐藏成员,所述字幕服务端用于对所述通话音频数据包进行语音识别得到字幕数据包。
第二传输模块1903,用于获取所述字幕服务端传输的所述字幕数据包,将所述字幕数据包传输至所述通话成员。
进一步,上述第二传输模块1903具体用于:
为来自不同所述通话成员的所述字幕数据包分别配置不同的字幕数据流,其中,所述字幕数据流包括按照顺序排列的所述字幕数据包;
将配置所述字幕数据流后的所述字幕数据包传输至所述通话成员,接收所述通话成员返回的反馈信息;
当所述反馈信息指示存在丢失的所述字幕数据包时,将丢失的所述字幕数据包重新传输至所述通话成员。
进一步,上述第二传输模块1903具体用于:
确定当前时刻与丢失的所述字幕数据包的传输时刻之间的传输时间间隔;
当所述传输时间间隔大于或者等于时长阈值,将丢失的所述字幕数据包重新传输至所述通话成员,其中,所述时长阈值是基于所述通话成员的数据接收状态确定的,所述数据接收状态用于指示所述通话成员已接收到至少一个目标数据包或者未接收到所述目标数据包,所述目标数据包为其中一个所述字幕数据包,且所述目标数据包的所述包序号大于丢失的所述字幕数据包的所述包序号。
进一步地,该第一通话字幕处理装置1900还包括时间阈值确定模块,时间阈值确定模块具体用于:
当所述数据接收状态指示所述通话成员未接收到所述目标数据包时,确定用于传输所述字幕数据包的第一数据链路的传输时延,根据所述传输时延和预设的第一惩罚系数之和确定所述时长阈值;
或者,用于当所述数据接收状态指示所述通话成员接收到至少一个目标数据包时,确定所述传输时延,根据所述第一惩罚系数以及所述目标数据包的数量确定第二惩罚系数,根据所述传输时延和所述第二惩罚系数之和确定所述时长阈值。
进一步,上述第二传输模块1903具体用于:
获取所述第二数据链路的传输质量参数,当根据所述传输质量参数确定所述第二数据链路的传输质量正常时,将所述通话音频数据包以及对应的所述字幕数据包组合为合并数据包,将所述合并数据包传输至所述通话成员;
或者,获取所述第二数据链路的传输质量参数,当根据所述传输质量参数确定所述第二数据链路的传输质量异常时,将所述通话音频数据包以及对应的所述字幕数据包分别传输至所述通话成员。
进一步,上述第二传输模块1903具体用于:
从所述通话音频数据包中提取出音频数据,从所述字幕数据包中提取出字幕数据;
将所述音频数据以及所述字幕数据添加至合并数据包的包体,在所述合并数据包的包头中配置第一包类型、所述音频数据的数据长度以及所述字幕数据的数据长度,其中,所述第一包类型用于指示所述合并数据包中同时封装有所述音频数据以及所述字幕数据。
进一步地,该第一通话字幕处理装置1900还包括:
第二包类型确定模块:用于确定所述字幕数据包的第二包类型,其中,所述第二包类型用于指示所述字幕数据包封装有字幕数据;
确定通话成员模块:用于将所述第二包类型与预设的转发规则进行匹配,根据匹配结果将所述字幕数据包的传输对象确定为所述通话成员,其中,所述转发规则用于指示第二包类型与传输对象之间的映射关系。
进一步,上述第二包类型确定模块具体用于:
从所述字幕数据包中识别出所述字幕数据包的包头;
从所述字幕数据包的包头中提取得到所述字幕数据包的第二包类型。
上述第一通话字幕处理装置1900与服务器侧的通话字幕处理方法基于相同的发明构思,上述过程描述了本申请实施例的通话字幕处理方法,通过获取接入目标通话的任意一个通话成员传输的通话音频数据包,将通话音频数据包传输至接入目标通话的字幕服务端,由于字幕服务端是由目标通话的管理服务端激活并接入目标通话的,因此在通话过程中字幕服务端能够像普通的通话成员一样快捷地获取到通话过程中的通话音频数据包,再对通话音频数据包进行语音识别得到字幕数据包,得到的字幕数据包被传输至各个通话成员,可见,生成字幕数据包的过程无须其他通话成员的参与,从而有效地降低了网络负载,提升了通话字幕的实时性,并且,由于字幕服务端被管理服务端配置为目标通话的隐藏成员,其他通话成员并不会感知到字幕服务端的存在,从而在提升通话字幕的实时性的同时,保留了原有的通话体验,提升了通话字幕处理的通用性。
参照图20,图20为本申请实施例提供的通话字幕处理装置的又一种可选的结构示意图,该第二通话字幕处理装置2000包括:
接入模块2001,用于响应于目标通话的管理服务端传输的接入指令,以隐藏成员的身份接入所述目标通话。
语音识别模块2002,用于获取所述目标通话的中转服务端传输的通话音频数据包,对所述通话音频数据包进行语音识别得到字幕数据包,其中,所述通话音频数据包是接入所述目标通话的任意一个通话成员传输至所述中转服务端的。
第三传输模块2003,用于将所述字幕数据包传输至所述中转服务端,以供所述中转服务端将所述字幕数据包传输至所述通话成员。
进一步,上述语音识别模块2002具体用于:
从所述通话音频数据包中提取出音频数据,对所述音频数据进行语音识别得到字幕数据;
对所述字幕数据进行加密,将加密后的所述字幕数据添加至字幕数据包的包体;
在所述字幕数据包的包头中配置第二包类型,其中,所述第二包类型用于指示所述字幕数据包封装有所述字幕数据。
上述第二通话字幕处理装置2000与字幕服务端的通话字幕处理方法基于相同的发明构思,上述过程描述了本申请实施例的通话字幕处理方法响应于目标通话的管理服务端传输的接入指令,以隐藏成员的身份接入目标通话,因此在通话过程中字幕服务端能够像普通的通话成员一样快捷地获取到通话过程中的通话音频数据包。接着获取目标通话的中转服务端传输的接入目标通话的任意一个通话成员传输至中转服务端的通话音频数据包,对通话音频数据包进行语音识别得到字幕数据包,将字幕数据包传输至中转服务端,以供中转服务端将字幕数据包传输至通话成员。可见,生成字幕数据包的过程无须其他通话成员的参与,从而有效地降低了网络负载,提升了通话字幕的实时性,并且,由于字幕服务端被管理服务端配置为目标通话的隐藏成员,其他通话成员并不会感知到字幕服务端的存在,从而在提升通话字幕的实时性的同时,保留了原有的通话体验,提升了通话字幕处理的通用性。
本申请实施例提供的用于执行上述通话字幕处理方法的电子设备可以是终端,参照图21,图21为本申请实施例提供的终端的部分结构框图,该终端包括:摄像头组件2110、第一存储器2120、输入单元2130、显示单元2140、传感器2150、音频电路2160、无线保真(wireless fidelity, WiFi)模块2170、第一处理器2180、以及第一电源2190等部件。本领域技术人员可以理解,图21中示出的终端结构并不构成对终端的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
摄像头组件2110可用于采集图像或视频。可选地,摄像头组件2110包括前置摄像头和后置摄像头。通常,前置摄像头设置在终端的前面板,后置摄像头设置在终端的背面。在一些实施例中,后置摄像头为至少两个,分别为主摄像头、景深摄像头、广角摄像头、长焦摄像头中的任意一种,以实现主摄像头和景深摄像头融合实现背景虚化功能、主摄像头和广角摄像头融合实现全景拍摄以及VR(Virtual Reality,虚拟现实)拍摄功能或者其它融合拍摄功能。
第一存储器2120可用于存储软件程序以及模块,第一处理器2180通过运行存储在第一存储器2120的软件程序以及模块,从而执行终端的各种功能应用以及数据处理。
输入单元2130可用于接收输入的数字或字符信息,以及产生与终端的设置以及功能控制有关的键信号输入。具体地,输入单元2130可包括触摸面板2131以及其他输入装置2132。
显示单元2140可用于显示输入的信息或提供的信息以及终端的各种菜单。显示单元2140可包括显示面板2141。
音频电路2160、扬声器2161,传声器2162可提供音频接口。
第一电源2190可以是交流电、直流电、一次性电池或可充电电池。
传感器2150的数量可以为一个或者多个,该一个或多个传感器2150包括但不限于:加速度传感器、陀螺仪传感器、压力传感器、光学传感器等等。其中:
加速度传感器可以检测以终端建立的坐标系的三个坐标轴上的加速度大小。比如,加速度传感器可以用于检测重力加速度在三个坐标轴上的分量。第一处理器2180可以根据加速度传感器采集的重力加速度信号,控制显示单元2140以横向视图或纵向视图进行用户界面的显示。加速度传感器还可以用于游戏或者用户的运动数据的采集。
陀螺仪传感器可以检测终端的机体方向及转动角度,陀螺仪传感器可以与加速度传感器协同采集用户对终端的3D动作。第一处理器2180根据陀螺仪传感器采集的数据,可以实现如下功能:动作感应(比如根据用户的倾斜操作来改变UI)、拍摄时的图像稳定、游戏控制以及惯性导航。
压力传感器可以设置在终端的侧边框和/或显示单元2140的下层。当压力传感器设置在终端的侧边框时,可以检测用户对终端的握持信号,由第一处理器2180根据压力传感器采集的握持信号进行左右手识别或快捷操作。当压力传感器设置在显示单元2140的下层时,由第一处理器2180根据用户对显示单元2140的压力操作,实现对UI界面上的可操作性控件进行控制。可操作性控件包括按钮控件、滚动条控件、图标控件、菜单控件中的至少一种。
光学传感器用于采集环境光强度。在一个实施例中,第一处理器2180可以根据光学传感器采集的环境光强度,控制显示单元2140的显示亮度。具体地,当环境光强度较高时,调高显示单元2140的显示亮度;当环境光强度较低时,调低显示单元2140的显示亮度。在另一个实施例中,第一处理器2180还可以根据光学传感器采集的环境光强度,动态调整摄像头组件2110的拍摄参数。
在本实施例中,该终端所包括的第一处理器2180可以执行前面实施例的通话字幕处理方法。
本申请实施例提供的用于执行上述通话字幕处理方法的电子设备也可以是服务器,参照图22,图22为本申请实施例提供的服务器的部分结构框图,服务器可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上第二处理器2210和第二存储器2230,一个或一个以上存储应用程序2243或数据2242的存储介质2240(例如一个或一个以上海量存储装置)。其中,第二存储器2230和存储介质2240可以是短暂存储或持久存储。存储在存储介质2240的程序可以包括一个或一个以上模块(图示没标出),每个模块可以包括对服务器中的一系列指令操作。更进一步地,第二处理器2210可以设置为与存储介质2240通信,在服务器上执行存储介质2240中的一系列指令操作。
服务器还可以包括一个或一个以上第二电源2220,一个或一个以上有线或无线网络接口2250,一个或一个以上输入输出接口2260,和/或,一个或一个以上操作系统2241,例如Windows ServerTM,Mac OS XTM,UnixTM ,LinuxTM,FreeBSDTM等等。
服务器中的第二处理器2210可以用于执行通话字幕处理方法。
本申请实施例还提供一种计算机可读存储介质,计算机可读存储介质用于存储计算机程序,计算机程序用于执行前述各个实施例的通话字幕处理方法。
本申请实施例还提供了一种计算机程序产品,该计算机程序产品包括计算机程序,该计算机程序存储在计算机可读存介质中。计算机设备的处理器从计算机可读存储介质读取该计算机程序,处理器执行该计算机程序,使得该计算机设备执行实现上述的通话字幕处理方法。
本申请的说明书及上述附图中的术语“第一”、“第二”、“第三”、“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便描述本申请的实施例,例如能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或装置不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或装置固有的其它步骤或单元。
应当理解,在本申请中,“至少一个(项)”是指一个或者多个,“多个”是指两个或两个以上。“和/或”,用于描述关联对象的关联关系,表示可以存在三种关系,例如,“A和/或B”可以表示:只存在A,只存在B以及同时存在A和B三种情况,其中A,B可以是单数或者复数。字符“/”一般表示前后关联对象是一种“或”的关系。“以下至少一项(个)”或其类似表达,是指这些项中的任意组合,包括单项(个)或复数项(个)的任意组合。例如,a,b或c中的至少一项(个),可以表示:a,b,c,“a和b”,“a和c”,“b和c”,或“a和b和c”,其中a,b,c可以是单个,也可以是多个。
应了解,在本申请实施例的描述中,多个(或多项)的含义是两个以上,大于、小于、超过等理解为不包括本数,以上、以下、以内等理解为包括本数。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机装置(可以是个人计算机,服务器,或者网络装置等)执行本申请各个实施例方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,简称ROM)、随机存取存储器(Random Access Memory,简称RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
还应了解,本申请实施例提供的各种实施方式可以任意进行组合,以实现不同的技术效果。
以上是对本申请的较佳实施进行了具体说明,但本申请并不局限于上述实施方式,熟悉本领域的技术人员在不违背本申请精神的共享条件下还可作出种种等同的变形或替换,这些等同的变形或替换均包括在本申请权利要求所限定的范围内。
Claims (15)
1.一种通话字幕处理方法,其特征在于,包括:
获取接入目标通话的任意一个通话成员传输的通话音频数据包;
将所述通话音频数据包传输至接入所述目标通话的字幕服务端,其中,所述字幕服务端是由所述目标通话的管理服务端激活并接入所述目标通话的,所述字幕服务端被所述管理服务端配置为所述目标通话的隐藏成员,所述字幕服务端用于对所述通话音频数据包进行语音识别得到字幕数据包;
获取所述字幕服务端传输的所述字幕数据包,将所述字幕数据包传输至所述通话成员。
2.根据权利要求1所述的通话字幕处理方法,其特征在于,所述将所述字幕数据包传输至所述通话成员,包括:
为来自不同所述通话成员的所述字幕数据包分别配置不同的字幕数据流,其中,所述字幕数据流包括按照顺序排列的所述字幕数据包;
将配置所述字幕数据流后的所述字幕数据包传输至所述通话成员,接收所述通话成员返回的反馈信息;
当所述反馈信息指示存在丢失的所述字幕数据包时,将丢失的所述字幕数据包重新传输至所述通话成员。
3.根据权利要求2所述的通话字幕处理方法,其特征在于,各个所述字幕数据包均配置有各自对应的包序号,所述将丢失的所述字幕数据包重新传输至所述通话成员,包括:
确定当前时刻与丢失的所述字幕数据包的传输时刻之间的传输时间间隔;
当所述传输时间间隔大于或者等于时长阈值,将丢失的所述字幕数据包重新传输至所述通话成员,其中,所述时长阈值是基于所述通话成员的数据接收状态确定的,所述数据接收状态用于指示所述通话成员已接收到至少一个目标数据包或者未接收到所述目标数据包,所述目标数据包为其中一个所述字幕数据包,且所述目标数据包的所述包序号大于丢失的所述字幕数据包的所述包序号。
4.根据权利要求3所述的通话字幕处理方法,其特征在于,所述当所述传输时间间隔大于或者等于预设的时长阈值,将丢失的所述字幕数据包重新传输至所述通话成员之前,所述通话字幕处理方法还包括:
当所述数据接收状态指示所述通话成员未接收到所述目标数据包时,确定用于传输所述字幕数据包的第一数据链路的传输时延,根据所述传输时延和预设的第一惩罚系数之和确定所述时长阈值;
或者,当所述数据接收状态指示所述通话成员接收到至少一个目标数据包时,确定所述传输时延,根据所述第一惩罚系数以及所述目标数据包的数量确定第二惩罚系数,根据所述传输时延和所述第二惩罚系数之和确定所述时长阈值。
5.根据权利要求1所述的通话字幕处理方法,其特征在于,所述通话成员分别创建有各自对应的第二数据链路,所述第二数据链路用于供当前的所述通话成员接收其余的所述通话成员传输的所述通话音频数据包,所述将所述字幕数据包传输至所述通话成员,包括:
获取所述第二数据链路的传输质量参数,当根据所述传输质量参数确定所述第二数据链路的传输质量正常时,将所述通话音频数据包以及对应的所述字幕数据包组合为合并数据包,将所述合并数据包传输至所述通话成员;
或者,获取所述第二数据链路的传输质量参数,当根据所述传输质量参数确定所述第二数据链路的传输质量异常时,将所述通话音频数据包以及对应的所述字幕数据包分别传输至所述通话成员。
6.根据权利要求5所述的通话字幕处理方法,其特征在于,所述将所述通话音频数据包以及对应的所述字幕数据包组合为合并数据包,包括:
从所述通话音频数据包中提取出音频数据,从所述字幕数据包中提取出字幕数据;
将所述音频数据以及所述字幕数据添加至合并数据包的包体,在所述合并数据包的包头中配置第一包类型、所述音频数据的数据长度以及所述字幕数据的数据长度,其中,所述第一包类型用于指示所述合并数据包中同时封装有所述音频数据以及所述字幕数据。
7.根据权利要求1所述的通话字幕处理方法,其特征在于,所述将所述字幕数据包传输至所述通话成员之前,所述通话字幕处理方法还包括:
确定所述字幕数据包的第二包类型,其中,所述第二包类型用于指示所述字幕数据包封装有字幕数据;
将所述第二包类型与预设的转发规则进行匹配,根据匹配结果将所述字幕数据包的传输对象确定为所述通话成员,其中,所述转发规则用于指示包类型与传输对象之间的映射关系。
8.根据权利要求7所述的通话字幕处理方法,其特征在于,所述确定所述字幕数据包的第二包类型,包括:
从所述字幕数据包中识别出所述字幕数据包的包头;
从所述字幕数据包的包头中提取得到所述字幕数据包的第二包类型。
9.一种通话字幕处理方法,其特征在于,包括:
响应于目标通话的管理服务端传输的接入指令,以隐藏成员的身份接入所述目标通话;
获取所述目标通话的中转服务端传输的通话音频数据包,对所述通话音频数据包进行语音识别得到字幕数据包,其中,所述通话音频数据包是接入所述目标通话的任意一个通话成员传输至所述中转服务端的;
将所述字幕数据包传输至所述中转服务端,以供所述中转服务端将所述字幕数据包传输至所述通话成员。
10.根据权利要求9所述的通话字幕处理方法,其特征在于,所述对所述通话音频数据包进行语音识别得到字幕数据包,包括:
从所述通话音频数据包中提取出音频数据,对所述音频数据进行语音识别得到字幕数据;
对所述字幕数据进行加密,将加密后的所述字幕数据添加至字幕数据包的包体;
在所述字幕数据包的包头中配置第二包类型,其中,所述第二包类型用于指示所述字幕数据包封装有所述字幕数据。
11.一种通话字幕处理装置,其特征在于,包括:
第一获取模块,用于获取接入目标通话的任意一个通话成员传输的通话音频数据包;
第一传输模块,用于将所述通话音频数据包传输至接入所述目标通话的字幕服务端,其中,所述字幕服务端是由所述目标通话的管理服务端激活并接入所述目标通话的,所述字幕服务端被所述管理服务端配置为所述目标通话的隐藏成员,所述字幕服务端用于对所述通话音频数据包进行语音识别得到字幕数据包;
第二传输模块,用于获取所述字幕服务端传输的所述字幕数据包,将所述字幕数据包传输至所述通话成员。
12.一种通话字幕处理装置,其特征在于,包括:
接入模块,用于响应于目标通话的管理服务端传输的接入指令,以隐藏成员的身份接入所述目标通话;
语音识别模块,用于获取所述目标通话的中转服务端传输的通话音频数据包,对所述通话音频数据包进行语音识别得到字幕数据包,其中,所述通话音频数据包是接入所述目标通话的任意一个通话成员传输至所述中转服务端的;
第三传输模块,用于将所述字幕数据包传输至所述中转服务端,以供所述中转服务端将所述字幕数据包传输至所述通话成员。
13.一种电子设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至10任意一项所述的通话字幕处理方法。
14.一种计算机可读存储介质,所述存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至10任意一项所述的通话字幕处理方法。
15.一种计算机程序产品,包括计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至10任意一项所述的通话字幕处理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410280263.6A CN117880253A (zh) | 2024-03-12 | 2024-03-12 | 通话字幕处理方法、装置、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410280263.6A CN117880253A (zh) | 2024-03-12 | 2024-03-12 | 通话字幕处理方法、装置、电子设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117880253A true CN117880253A (zh) | 2024-04-12 |
Family
ID=90595375
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202410280263.6A Pending CN117880253A (zh) | 2024-03-12 | 2024-03-12 | 通话字幕处理方法、装置、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117880253A (zh) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108600773A (zh) * | 2018-04-25 | 2018-09-28 | 腾讯科技(深圳)有限公司 | 字幕数据推送方法、字幕展示方法、装置、设备及介质 |
CN112672099A (zh) * | 2020-12-31 | 2021-04-16 | 深圳市潮流网络技术有限公司 | 字幕数据生成和呈现方法、装置、计算设备、存储介质 |
CN114339126A (zh) * | 2021-12-29 | 2022-04-12 | 苏州科达特种视讯有限公司 | 视频会议中的字幕显示方法、设备及存储介质 |
-
2024
- 2024-03-12 CN CN202410280263.6A patent/CN117880253A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108600773A (zh) * | 2018-04-25 | 2018-09-28 | 腾讯科技(深圳)有限公司 | 字幕数据推送方法、字幕展示方法、装置、设备及介质 |
CN112672099A (zh) * | 2020-12-31 | 2021-04-16 | 深圳市潮流网络技术有限公司 | 字幕数据生成和呈现方法、装置、计算设备、存储介质 |
CN114339126A (zh) * | 2021-12-29 | 2022-04-12 | 苏州科达特种视讯有限公司 | 视频会议中的字幕显示方法、设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10930262B2 (en) | Artificially generated speech for a communication session | |
US9509953B2 (en) | Media detection and packet distribution in a multipoint conference | |
US20180041783A1 (en) | Data processing method and live broadcasting method and device | |
US9210372B2 (en) | Communication method and device for video simulation image | |
US20070159552A1 (en) | Method and System for Video Conference | |
KR101234495B1 (ko) | 화상회의 시스템을 위한 단말, 중계 노드 및 스트림 처리 방법 | |
CN111092898B (zh) | 报文传输方法及相关设备 | |
WO2017050067A1 (zh) | 一种视频通信方法、装置及系统 | |
CN113992883B (zh) | 视频会议处理方法、处理设备、会议系统以及存储介质 | |
WO2017020711A1 (zh) | 一种通信处理方法及电子设备 | |
WO2023015974A1 (zh) | 云桌面会议共享方法、服务器和计算机可读存储介质 | |
CN110602542B (zh) | 音视频同步的方法、音视频同步系统、设备及存储介质 | |
CN110457575B (zh) | 文件推送方法、装置及存储介质 | |
CN111405230B (zh) | 会议信息处理方法、装置、电子设备及存储介质 | |
JP7377352B2 (ja) | 複数メンバーでのインスタントメッセージング方法、システム、装置及び電子機器、並びにコンピュータプログラム | |
CN110049275B (zh) | 视频会议中的信息处理方法、装置及存储介质 | |
CN112738446A (zh) | 基于线上会议的同声传译方法及系统 | |
CN110392275B (zh) | 一种文稿演示的共享方法、装置及视联网软终端 | |
CN112003875A (zh) | 一种视讯焦点内容传输系统及方法 | |
CN117880253A (zh) | 通话字幕处理方法、装置、电子设备及存储介质 | |
KR20070018269A (ko) | 다지점 영상 회의 제어장치, 이를 이용한 영상 회의 서비스확장 시스템 및 그 방법 | |
CN108989737B (zh) | 一种数据播放方法、装置和电子设备 | |
KR102299900B1 (ko) | 실시간 채팅 장치 | |
CN110087020B (zh) | 一种iOS设备进行视联网会议的实现方法及系统 | |
CN107846634B (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 |