CN117219096A - 一种在实时云渲染环境下多用户语音空间音频的实现方法 - Google Patents
一种在实时云渲染环境下多用户语音空间音频的实现方法 Download PDFInfo
- Publication number
- CN117219096A CN117219096A CN202311229100.7A CN202311229100A CN117219096A CN 117219096 A CN117219096 A CN 117219096A CN 202311229100 A CN202311229100 A CN 202311229100A CN 117219096 A CN117219096 A CN 117219096A
- Authority
- CN
- China
- Prior art keywords
- user
- audio
- voice
- real
- 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
- 238000009877 rendering Methods 0.000 title claims abstract description 18
- 238000000034 method Methods 0.000 title abstract description 13
- 238000012545 processing Methods 0.000 claims abstract description 14
- 238000005516 engineering process Methods 0.000 claims abstract description 13
- 230000000694 effects Effects 0.000 claims abstract description 6
- 230000006870 function Effects 0.000 claims description 8
- 238000012546 transfer Methods 0.000 claims description 2
- 230000003993 interaction Effects 0.000 abstract description 4
- 238000007654 immersion Methods 0.000 abstract description 2
- 238000007796 conventional method Methods 0.000 abstract 1
- 230000006854 communication Effects 0.000 description 13
- 238000004891 communication Methods 0.000 description 13
- 230000005540 biological transmission Effects 0.000 description 6
- 238000007906 compression Methods 0.000 description 3
- 230000006835 compression Effects 0.000 description 3
- 238000013459 approach Methods 0.000 description 2
- 238000013475 authorization Methods 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 2
- 238000012800 visualization Methods 0.000 description 2
- 241000209140 Triticum Species 0.000 description 1
- 235000021307 Triticum Nutrition 0.000 description 1
- 230000007175 bidirectional communication Effects 0.000 description 1
- 238000013144 data compression Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 229940049705 immune stimulating antibody conjugate Drugs 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 230000002085 persistent effect Effects 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
- 230000011664 signaling Effects 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
Landscapes
- Information Transfer Between Computers (AREA)
Abstract
本发明公开了一种在实时云渲染环境下多用户语音空间音频的实现方法。在多人语音应用中,通常使用WebRTC技术传递用户语音。用户通过浏览器的WebSocket技术连接到语音服务器,该服务器将声音广播给同一频道的其他用户。在这个虚拟的3D环境中,用户可以拥有具象化的虚拟形象,并且声音和语音可以通过用户的虚拟形象在虚拟场景中定位传送。相对于传统方法,立体声音效果可以显著增强用户的沉浸感,从而提高语音交互效率。此外,与传统方法不同的是,当频道中的人数增加时,不会将所有声音传输给每位用户,而是利用这项技术广播特定范围内的声音,大大降低了背景噪音,提高了用户体验,并确保了用户的隐私需求。此技术不仅适用于虚拟游戏环境,还可以扩展到在线会议、虚拟社交等多种应用场景,具有广泛的适用性。此外,这项技术还能提高资源利用率,因为用户只订阅特定范围内的声音,可以减少服务器传输和处理大量无用数据的压力,从而提高***的运行效率。
Description
技术领域
本发明涉及计算机软件云服务与通信技术领域,特别是服务器与客户端互动技术。
背景技术
在使用多人语音应用的场景中,如多人虚拟空间、云渲染游戏、云会议等。通常使用WebRTC技术传递用户语音。用户通过浏览器的websocket技术连接语音服务器,语音服务器将声音广播给在同一频道的其他用户。
但这种传统的技术方案存在一些不足:第一、在实时云渲染虚拟环境中,用户在3D立体环境中拥有具象化的虚拟形象。传统的方法无法让用户通过语音辨识其他用户所在的方位,导致缺乏沉浸感;第二、当同一频道中的人数增多,所有发言的用户的声音都将广播给其他用户,导致频道变得嘈杂,从而降低用户的体验。
发明内容
在本发明方法中,用户通过网络浏览器访问特定的链接,启动了Pixel Streaming技术。Pixel Streaming允许使用虚幻引擎创建的3D渲染内容通过实时流媒体方式传输到用户的浏览器。
用户的浏览器同时连接到WebRTC服务器,以建立语音交互的连接。虚幻引擎通过WebSocket协议与WebRTC服务器建立通信。
音频初始化是本技术的一部分,当用户首次访问Web应用程序时,前端***会请求用户授权以访问其麦克风。用户授权后,浏览器捕获未经编码的原始音频流,该流包含了用户的声音。为了确保流的兼容性和传输效率,这些音频数据需要在发送到WebRTC服务器之前进行编码处理。
音频编解码是关键的步骤。WebRTC支持多种音频编码格式,如Opus、ISAC等。为了实现最佳音质和效率,我们选择使用Opus作为首选编码方式。浏览器对音频数据进行Opus编码后,将编码数据通过UDP协议传输到WebRTC服务器。
我们使用Opus编码,其压缩率可用公式表示为:R = Soriginal / Sopus,其中,Soriginal代表原始音频数据的大小,Sopus代表Opus编码后的数据大小。当其他用户需要收听这些音频时,音频流会被解码为原始格式,并在他们的设备上播放。
一旦音频流初始化并完成编码,用户的浏览器会建立与WebRTC服务器的连接,并将音频流发送到服务器。
WebRTC服务器负责处理和转发音频流,同时确保每个用户都能听到他们应该听到的音频内容。
为了有效地处理大量用户,在这里引入了基于范围的音频订阅机制。这是因为直接传送所有音频流可能会导致网络拥塞和不必要的数据传输。
因此,我们引入了基于范围的音频订阅机制,每个用户只会订阅附近或他们感兴趣的音频流。
范围是通过计算用户之间的欧式距离D来确定的,其中D可以通过用户的3D坐标计算得出,公式如下:D = √((x2 - x1)² + (y2 - y1)² + (z2 - z1)²)。只有当D小于预设值Dmax时,音频流才会从一个用户传输到另一个用户。
虚幻引擎持续发送用户的坐标信息到WebRTC服务器,以帮助确定哪些音频流应该发送给哪些用户。一旦音频流到达,虚幻引擎将其绑定到相应用户虚拟角色的音频组件上。
音频效果处理方面,使用了虚幻引擎内置的空间音频处理功能,以调整音频的方向和音量,从而让用户能够通过声音的方向和音量感知其他用户的位置。
考虑到距离对音量的影响,我们使用了逆平方关系来描述:L = L0 / D²,其中L0是源声音的响度,D是听者与声源之间的距离。这意味着当距离加倍时,响度将减少四分之一。
通过这种机制,用户只会听到他们附近的其他用户,并且声音的大小会根据距离进行调整,从而实现更真实的空间音频体验。
在用户退出或断开连接时,虚幻引擎会通知WebRTC服务器,并取消对该用户的语音订阅。
WebRTC服务器会相应地更新用户状态,停止处理他们的语音数据,并通知其他在线用户。
这些步骤确保用户能够在浏览器中实时体验到真实的空间语音交流,同时也充分考虑了网络效率和可扩展性。这种方法模拟了现实世界中声音的传播特性,其中声音的强度和清晰度受到距离的影响。
附图说明
以下将结合附图对本发明方法的构思、运行过程及产生的技术效果作进一步说明,以充分地了解本发明的目的、特征和效果。
图1为实时云渲染空间音频的结构图。
图2为用户订阅空间音频的技术流程图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地说明,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
首先,对本申请中所提到的缩略语、英文和技术术语进行解释说明:虚幻引擎(Unreal Engine),虚幻引擎是一款高度先进的实时3D创作工具。自从它的诞生,就被广泛应用于游戏制作、电影制作、建筑可视化等领域。它不仅提供高质量的渲染能力,还拥有物理引擎、动画***、AI模块等功能。此外,其Blueprints***允许非程序员通过可视化的方式进行逻辑设计。在本发明方法中,虚幻引擎负责渲染虚拟环境及处理用户的3D坐标信息。
WebRTC服务器,全称Web Real-Time Communication,是一个开放的网络通信协议标准,专为浏览器和移动应用提供简单的实时通信(RTC)接口。它支持点对点的数据、音频和视频通信,无需插件或第三方软件。WebRTC服务器通常用于处理信令、解决NAT穿透问题、以及为多人通信提供中继服务。在本发明方法中,负责处理、广播和订阅用户语音。
Pixel Streaming,在虚幻引擎中,Pixel Streaming是一个特性功能,它允许高质量的实时3D内容通过网络流传输到任何支持WebRTC的设备。这意味着,高质量的3D应用、游戏或真实模拟画面可以在云端的拥有强大渲染配置的服务器上处理完毕,而客户端设备只需要一个浏览器就能实时接收和展示这些内容,无需本地的高性能设备来处理大量计算。在本发明方法中,负责提供实时的3D渲染内容直播到各种设备的浏览器上。
REST API(Representational State Transfer API): 是一种建立在HTTP协议上的网络通信标准,允许不同的***或应用之间交换数据。通过使用标准的HTTP方法(如GET、POST、PUT、DELETE等),REST API为开发者提供了一种简单、一致的方式来交互与资源或服务。
WebSocket:与传统的HTTP通信不同,WebSocket提供了一个持久化的、双向的通信通道。这意味着服务器和客户端可以在任何时间点互相发送数据,而无需重新建立连接。这对于需要实时交互的应用,如在线聊天、实时股票报价等,非常有用。在本发明方法中,与REST API一起提供双向通信服务,使虚幻引擎与WebRTC服务器能够实时交互数据。
参见图1,为本发明方法的实施流程图,该图展示了本发明的一个实施例的流程图。其中,设备部分主要包括位于本地的音频设备、本地服务器和云端服务器。音频设备使用麦克风来采集声音数据,而本地服务器和云端服务器均为云端虚拟服务器。音频设备与云端服务器、云端服务器与本地服务器之间均能进行通信连接。
首先,用户通过任意设备的浏览器访问虚拟体验链接,用户通过浏览器访问体验链接,Pixel Streaming将由虚幻引擎制作的3D渲染内容直播到用户的浏览器中。
用户的浏览器同时连接到WebRTC服务器,为语音交互初始化连接。
虚幻引擎使用WebSocket与WebRTC服务器建立连接。
音频初始化,当用户首次访问浏览器中的Web应用程序时,前端会请求用户授权访问其麦克风。
用户授权后,授权的验证信息返回浏览器,浏览器获得对麦克风的访问权限,麦克风捕获声音,并将其转换为数字音频数据。这涉及将连续的声音波形分割成离散的样本,并将每个样本转换为数字表示。
一旦音频被数字化,被同步编码成一种压缩格式,以减小数据的大小并提高传输效率。常见的音频编码格式包括Opus、AAC、MP3等,为了最大化音质和效率,我们选择Opus作为首选编码,因为它为各种应用场景提供了良好的压缩和延迟特性。编码器负责将原始音频数据压缩成编码后的音频。
假设我们使用Opus编码,其压缩率 R可以描述为:R - Soriginal/Sopus。其中,Soriginal 是原始音频数据大小,Sopus 是Opus编码后的数据大小。当其他用户需要听取此音频时,音频流被解码为原始格式,并在他们的设备上播放。
一旦音频流被初始化和编码,用户的浏览器就会建立一个与WebRTC服务器的连接,并发送音频流。
编码完毕,会通过UDP协议流向WebRTC服务器。
服务器负责处理和转发音频流,同时确保每个用户都获得他们应该听到的音频内容。
接下来,开始实施基于范围的音频订阅。考虑到虚拟环境中可能有大量用户,直接发送所有音频流会导致网络拥塞和不必要的数据传输。
因此,引入了基于范围的音频订阅机制。每个用户只订阅其附近或他们关心的音频流。
范围可以通过用户之间的欧式距离 D来计算, 通过他们的坐标计算为:D = v(2- a1)2 + (Y2 - y1)2 + (z2 - z)2其中,(x1,y1,21)和(22, y2, 22) 是两个用户的3D坐标只有当 D小于预设值 Dmax,音频流才会从一个用户传输到另一个用户。
0035.虚幻引擎和WebRTC服务器建立连接后,会通过访问监控Pawn和Character实例的位置属性,以持续获取用户的坐标信息,这些坐标随后用于确定哪些音频流应该发送到哪些用户。
虚幻引擎接收到音频流后,通过内置的脚本或蓝图功能调用CreateDefaultSubobject<UAudioComponent>(TEXT("AudioComponentName"))将其绑定到对应用户虚拟角色的音频组件上,通常,虚拟角色在用户连接到WebRTC服务器时就已经被创建好,同时为其添加一个音频组件。在获得解码后的音频数据后,需要动态地创建USoundWave对象,并将音频数据填充到这个音频数据缓冲区。
一旦我们有了包含音频数据的USoundWave对象,我们就可以将其设置为UAudioComponent的声音源。这可以通过设置UAudioComponent的Sound属性来实现。然后,通过调用UAudioComponent的Play方法来开始播放音频,即播放音频数据缓冲区的音频。
音频效果的处理,使用虚幻引擎内置的空间音频处理功能,调整音频方向和音量,使得用户能够根据声音方向和音量感知其他用户的位置。直接使用UAudioComponent的SetVolumeMultiplier函数直接设置音量。这个函数接受一个0到1之间的值,表示音量的乘数。例如,调用SetVolumeMultiplier(0.5)将音量设置为其原始音量的一半。通常,这个值会被设置为0.5,以防有某些玩家炸麦的情况给其他用户造成不好的体验。
假设音频的响度工受到距离的影响,我们可以使用简单的逆平方关系来描述:L=L/D^2。其中,L是源声音的响度,D 是听者与声源之间的距离。这意味着当距离加倍时,响度将减少四分之三。也就是说,随着距离的增加,听者会逐渐听不到声源,这与现实世界中人耳听声音的逻辑达到统一。
通过此机制,用户只会听到他们附近的其他用户,并且声音大小根据距离调整,从而整体获得一个更真实的空间音频体验。
退出与断开,当用户退出或断开连接,虚幻引擎将会通知WebRTC服务器,同时取消对该用户的语音订阅。
WebRTC服务器更新用户状态,停止对其语音数据的处理,并通知其他在线用户。
这些步骤确保了用户可以在浏览器中无缝地体验真实的空间语音交流,同时还考虑了网络效率和可扩展性。这种方法模拟了真实世界中的声音体验,其中声音的强度和清晰度受到距离的影响。
关键技术细节:1.坐标同步策略: 虚幻引擎仅在用户移动超过预设的阈值时或在特定时间间隔后,同步坐标到WebRTC服务器,以优化性能。
2.动态语音订阅: 虚幻引擎根据用户的移动和其他用户的位置,动态更新应订阅的语音列表,确保用户始终只接收距离自己一定范围内的语音。
3.网络优化: WebRTC服务器使用UDP协议传输语音数据,以减少延迟。同时,通过有效的数据压缩算法,保证语音数据的高质量传输。
4.安全策略: 所有连接,无论是WebSocket还是REST API,都使用加密技术,确保数据传输的安全性。
5.故障恢复机制: 若因网络问题造成的连接断开,***会自动尝试重连,并快速恢复用户的语音与3D位置状态。
Claims (9)
1.一种在实时云渲染环境下多用户语音空间音频的***,其特征在于,包括:
•一个坐标信息服务器,用于存储和管理所有在线用户的3D坐标信息;
•一个语音服务器,用于接收、处理和广播用户的语音数据;
•一个3D音频渲染引擎,用于根据用户的3D坐标信息和语音数据,实时渲染空间音频。
2.根据权利要求1所述的***,其特征在于,该***进一步包括一个用户界面,允许用户手动设置或调整其在3D环境中的位置。
3.根据权利要求1所述的***,其特征在于,语音服务器使用WebRTC技术传递用户语音,并通过websocket技术与用户进行通信。
4.根据权利要求1所述的***,其特征在于,3D音频渲染引擎进一步包括一个HRTF数据库,用于存储不同方向的头相关传递函数,从而实现真实的3D音频效果。
5.根据权利要求1所述的***,其特征在于,坐标信息服务器进一步包括一个动态跟踪模块,用于实时跟踪和更新用户的3D坐标信息。
6.一种在实时云渲染环境下多用户语音空间音频的程序产品,其特征在于,当在计算机、移动设备等具有浏览器的设备上运行时,使设备实现权利要求1所述的***的功能。
7.根据权利要求6所述的程序产品,其特征在于,该程序产品进一步包括一个用户界面模块,允许用户在3D环境中手动设置或调整其位置。
8.根据权利要求6所述的程序产品,其特征在于,该程序产品进一步包括一个语音处理模块,用于接收、处理和广播用户的语音数据。
9.根据权利要求6所述的程序产品,其特征在于,该程序产品进一步包括一个3D音频渲染模块,用于根据用户的3D坐标信息和语音数据,实时渲染空间音频。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311229100.7A CN117219096A (zh) | 2023-09-22 | 2023-09-22 | 一种在实时云渲染环境下多用户语音空间音频的实现方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311229100.7A CN117219096A (zh) | 2023-09-22 | 2023-09-22 | 一种在实时云渲染环境下多用户语音空间音频的实现方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117219096A true CN117219096A (zh) | 2023-12-12 |
Family
ID=89042248
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311229100.7A Pending CN117219096A (zh) | 2023-09-22 | 2023-09-22 | 一种在实时云渲染环境下多用户语音空间音频的实现方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117219096A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117692221A (zh) * | 2023-12-14 | 2024-03-12 | 永信至诚科技集团股份有限公司 | 一种网络靶场协作通信方法、***、电子设备和介质 |
-
2023
- 2023-09-22 CN CN202311229100.7A patent/CN117219096A/zh active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117692221A (zh) * | 2023-12-14 | 2024-03-12 | 永信至诚科技集团股份有限公司 | 一种网络靶场协作通信方法、***、电子设备和介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5723905B2 (ja) | 共用仮想領域通信環境における自動化されたリアルタイム・データ・ストリーム切換え | |
CN102883135B (zh) | 屏幕共享及控制方法 | |
CN110267064B (zh) | 音频播放状态处理方法、装置、设备及存储介质 | |
CN107682657A (zh) | 一种基于WebRTC的多人语音视频通话方法及*** | |
CN102325181B (zh) | 一种基于共享业务的音视频即时交互通信方法及*** | |
TW201323041A (zh) | 對於視訊遊戲玩家及旁觀者之管理音訊及視訊通道之系統及方法 | |
JP2011502306A (ja) | 共用仮想領域通信環境における自動化されたリアルタイム・データ・ストリーム切換え | |
TWI819344B (zh) | 音訊訊號渲染方法、裝置、設備及電腦可讀存儲介質 | |
CN117219096A (zh) | 一种在实时云渲染环境下多用户语音空间音频的实现方法 | |
CN108322474B (zh) | 基于共享桌面的虚拟现实***、相关装置及方法 | |
KR20220029470A (ko) | 공간 인식 멀티미디어 라우터 시스템 및 방법 | |
JP7508586B2 (ja) | 没入型テレカンファレンスおよびテレプレゼンスのためのマルチグルーピングの方法、装置、およびコンピュータプログラム | |
CN104427295A (zh) | 一种视频会议中处理视频的方法及终端 | |
US20210227005A1 (en) | Multi-user instant messaging method, system, apparatus, and electronic device | |
CN112970270B (zh) | 沉浸式音频服务中的音频处理 | |
Safaei et al. | Large-scale immersive video conferencing by altering video quality and distribution based on the virtual context | |
CN114338625B (zh) | 实时通信方法、装置、设备及存储介质 | |
KR20230002968A (ko) | 오디오 신호에 대한 비트 할당 방법 및 장치 | |
CN113747181A (zh) | 基于远程桌面的网络直播方法、直播***及电子设备 | |
CN101009577A (zh) | 实现音频播放的方法与装置 | |
Seo et al. | Spatializer: A web-based positional audio toolkit | |
CN110753232A (zh) | 在线互动场景的音频处理方法、***和存储介质 | |
CN112543202B (zh) | 一种网络会议传输共享声音的方法、***和可读存储介质 | |
CN114938460B (zh) | 直播数据处理方法、装置、设备及存储介质 | |
CN113923396B (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 |