CN111143022A - Vdi音频优化方法、系统、服务器及存储介质 - Google Patents
Vdi音频优化方法、系统、服务器及存储介质 Download PDFInfo
- Publication number
- CN111143022A CN111143022A CN201811305850.7A CN201811305850A CN111143022A CN 111143022 A CN111143022 A CN 111143022A CN 201811305850 A CN201811305850 A CN 201811305850A CN 111143022 A CN111143022 A CN 111143022A
- Authority
- CN
- China
- Prior art keywords
- audio
- data
- vdi
- virtual
- layer
- 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
- 238000005457 optimization Methods 0.000 title claims abstract description 54
- 238000000034 method Methods 0.000 title claims abstract description 42
- 238000005070 sampling Methods 0.000 claims description 108
- 230000008859 change Effects 0.000 claims description 63
- 230000003068 static effect Effects 0.000 claims description 33
- 230000002829 reductive effect Effects 0.000 claims description 8
- 230000005540 biological transmission Effects 0.000 claims description 5
- 230000000694 effects Effects 0.000 abstract description 11
- 238000010586 diagram Methods 0.000 description 6
- 230000002159 abnormal effect Effects 0.000 description 5
- 238000004891 communication Methods 0.000 description 5
- 230000008569 process Effects 0.000 description 4
- 230000005856 abnormality Effects 0.000 description 3
- 230000002238 attenuated effect Effects 0.000 description 2
- 235000019692 hotdogs Nutrition 0.000 description 2
- 230000003247 decreasing effect Effects 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000000670 limiting effect Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000002123 temporal effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45504—Abstract machines for programme code execution, e.g. Java virtual machine [JVM], interpreters, emulators
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45545—Guest-host, i.e. hypervisor is an application program itself, e.g. VirtualBox
-
- 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
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
- H04N21/439—Processing of audio elementary streams
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Signal Processing (AREA)
- Multimedia (AREA)
- Computer Networks & Wireless Communication (AREA)
- Circuit For Audible Band Transducer (AREA)
Abstract
本发明公开了一种VDI音频优化方法、系统、服务器及存储介质,通过获取虚拟机中音频应用程序播放的目标音频;根据预设驱动指令将所述目标音频发送至虚拟声卡层;对所述目标音频进行录制,并将录制后的音频数据替换掉所述虚拟声卡层中的目标音频,能够解决杂音源,避免数据异常造成的杂音,保证了声音的完整性和正确性,提高了音频输出效果,提升了用户体验。
Description
技术领域
本发明涉及虚拟桌面领域,尤其涉及一种VDI音频优化方法、系统、服务器及存储介质。
背景技术
虚拟桌面基础架构(Virtual Desktop Infrastructure,VDI)通过在数据中心的服务器运行桌面操作系统,用户通过客户端设备,例如客户机或个人计算机(PersonalComputer,PC)的传输协议与这些远程的桌面进行连接,使得用户访问他们的桌面就像是访问传统的本地桌面一样,作为桌面虚拟化使用,除了视觉的体验以外,还有一部分就是音频体验,音频体验差是一件非常难容忍的事情,包括在一些对讲,或者专业声音场景下,这会影响最终的业务使用,导致VDI无法去适配这一类场景。因此音频体验也是产品体验改进的另一个重要部分,而实际使用中客户的负载大多在60~70%,有的会更高,所以基本都会有杂音问题出现。
因为虚拟化本身架构的缺陷,虚拟机内部面向的都是虚拟的硬件,虚拟机在服务器高负载下,音频数据会产生异常,出现数据错乱的情况,一般是会存在数据丢失和额外的静音数据,即数据本身出现问题,使得在播放的时候产生数据异常的杂音。
发明内容
本发明的主要目的在于提供一种VDI音频优化方法、系统、服务器及存储介质,旨在解决现有技术中VDI音频应用中虚拟机在服务器高负载下,音频数据会产生异常,出现数据错乱,播放时产生杂音的技术问题。
为实现上述目的,本发明提供一种VDI音频优化方法,所述VDI音频优化方法包括以下步骤:
获取虚拟机中音频应用程序播放的目标音频;
根据预设驱动指令将所述目标音频发送至虚拟声卡层,所述虚拟声卡层位于音频虚拟层中,所述音频虚拟层位于搭载所述虚拟机的宿主机中;
对所述目标音频进行录制,并将录制后的音频数据替换掉所述虚拟声卡层中的目标音频。
优选地,所述对所述目标音频进行录制,并将录制后的音频数据替换掉所述虚拟声卡层中的目标音频,具体包括:
对所述目标音频进行录制,获得录制后的音频数据;
将所述音频数据传输至音频重定向层的数据暂存区,所述音频重定向层位于所述音频虚拟层中;
从所述数据暂存区中取出所述音频数据,将所述音频数据替换掉所述虚拟声卡层中的目标音频。
优选地,所述将所述音频数据传输至音频重定向层的数据暂存区,具体包括:
通过预设半虚拟化字符驱动将所述音频数据传输至所述音频虚拟层;
通过所述音频虚拟层中的半虚拟化字符设备将所述音频数据转换成字节流式音频数据;
将所述字节流式音频数据传输至音频重定向层的数据暂存区。
优选地,所述对所述目标音频进行录制,并将录制后的音频数据替换掉所述虚拟声卡层中的目标音频之后,所述VDI音频优化方法还包括:
将替换后的虚拟声卡层中的音频数据作为暂存数据;
根据所述暂存数据确定动态采样周期;
根据所述动态采样周期对所述暂存数据进行动态采样,获得采样数据,将所述采样数据作为再次优化后的目标音频数据。
优选地,所述根据所述暂存数据确定动态采样周期,具体包括:
获取所述暂存数据在当前静态周期的数据变量;
根据所述数据变量获取所述暂存数据的当前变化率;
将所述当前变化率与预设数据变化率的进行比较,根据比较结果确定当前采样状态;
根据所述当前采样状态确定动态采样周期。
优选地,所述将所述当前变化率与预设数据变化率的进行比较,根据比较结果确定当前采样状态,具体包括:
将所述当前变化率与预设数据变化率的进行比较,获得比较结果;
当所述比较结果为所述变化率小于所述预设数据变化率时,确定当前采样状态为数据衰减状态;
当所述比较结果为所述变化率大于所述预设数据变化率时,确定当前采样状态为数据增益状态。
优选地,所述根据所述当前采样状态确定动态采样周期,具体包括:
当所述当前采样状态为所述数据衰减状态时,根据预设时间间隔对当前静态周期进行缩减,将缩减后的当前静态周期作为动态采样周期;
当所述当前采样状态为所述数据增益状态时,根据预设时间间隔对当前静态周期进行增加,将增加后的当前静态周期作为动态采样周期。
此外,为实现上述目的,本发明还提出一种VDI服务器,所述VDI服务器包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的VDI音频优化程序,所述VDI音频优化程序配置为实现如上文所述的VDI音频优化方法的步骤。
此外,为实现上述目的,本发明还提出一种存储介质,所述存储介质上存储有VDI音频优化程序,所述VDI音频优化程序被处理器执行时实现如上文所述的VDI音频优化方法的步骤。
此外,为实现上述目的,本发明还提供一种VDI音频优化系统,所述VDI音频优化系统包括:
音频获取模块,用于获取虚拟机中音频应用程序播放的目标音频;
音频传输模块,用于根据预设驱动指令将所述目标音频发送至虚拟声卡层,所述虚拟声卡层位于音频虚拟层中,所述音频虚拟层位于搭载所述虚拟机的宿主机中;
音频替换模块,用于对所述目标音频进行录制,并将录制后的音频数据替换掉所述虚拟声卡层中的目标音频。
本发明提出的VDI音频优化方法,通过获取虚拟机中音频应用程序播放的目标音频;根据预设驱动指令将所述目标音频发送至虚拟声卡层,所述虚拟声卡层位于音频虚拟层中,所述音频虚拟层位于搭载所述虚拟机的宿主机中;对所述目标音频进行录制,并将录制后的音频数据替换掉所述虚拟声卡层中的目标音频,能够解决杂音源,避免数据异常造成的杂音,保证了声音的完整性和正确性,提高了音频输出效果,提升了用户体验。
附图说明
图1为本发明实施例方案涉及的硬件运行环境的VDI服务器结构示意图;
图2为本发明VDI音频优化方法第一实施例的流程示意图;
图3为本发明VDI音频优化方法第二实施例的流程示意图;
图4为本发明VDI音频优化方法的操作系统框架示意图;
图5为本发明VDI音频优化方法第三实施例的流程示意图;
图6为本发明VDI音频优化系统第一实施例的功能模块图。
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
本发明实施例的解决方案主要是:本发明通过获取虚拟机中音频应用程序播放的目标音频;根据预设驱动指令将所述目标音频发送至虚拟声卡层,所述虚拟声卡层位于音频虚拟层中,所述音频虚拟层位于搭载所述虚拟机的宿主机中;对所述目标音频进行录制,并将录制后的音频数据替换掉所述虚拟声卡层中的目标音频,能够解决杂音源,避免数据异常造成的杂音,保证了声音的完整性和正确性,提高了音频输出效果,提升了用户体验,解决了现有技术中VDI音频应用中虚拟机在服务器高负载下,时钟和调度都会变得不准,造成音频播放会出现杂音的技术问题。
参照图1,图1为本发明实施例方案涉及的硬件运行环境的VDI服务器结构示意图。
如图1所示,该VDI服务器可以包括:处理器1001,例如CPU,通信总线1002、用户端接口1003,网络接口1004,存储器1005。其中,通信总线1002用于实现这些组件之间的连接通信。用户端接口1003可以包括显示屏(Display)、输入单元比如键盘(Keyboard),可选用户端接口1003还可以包括标准的有线接口、无线接口。网络接口1004可选的可以包括标准的有线接口、无线接口(如WI-FI接口)。存储器1005可以是高速RAM存储器,也可以是稳定的存储器(non-volatile memory),例如磁盘存储器。存储器1005可选的还可以是独立于前述处理器1001的存储装置。
本领域技术人员可以理解,图1中示出的VDI服务器结构并不构成对该VDI服务器的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
如图1所示,作为一种存储介质的存储器1005中可以包括操作系统、网络通信模块、用户端接口模块以及VDI音频优化程序。
本发明VDI服务器通过处理器1001调用存储器1005中存储的VDI音频优化程序,并执行以下操作:
获取虚拟机中音频应用程序播放的目标音频;
根据预设驱动指令将所述目标音频发送至虚拟声卡层,所述虚拟声卡层位于音频虚拟层中,所述音频虚拟层位于搭载所述虚拟机的宿主机中;
对所述目标音频进行录制,并将录制后的音频数据替换掉所述虚拟声卡层中的目标音频。
进一步地,处理器1001可以调用存储器1005中存储的VDI音频优化程序,还执行以下操作:
对所述目标音频进行录制,获得录制后的音频数据;
将所述音频数据传输至音频重定向层的数据暂存区,所述音频重定向层位于所述音频虚拟层中;
从所述数据暂存区中取出所述音频数据,将所述音频数据替换掉所述虚拟声卡层中的目标音频。
进一步地,处理器1001可以调用存储器1005中存储的VDI音频优化程序,还执行以下操作:
通过预设半虚拟化字符驱动将所述音频数据传输至所述音频虚拟层;
通过所述音频虚拟层中的半虚拟化字符设备将所述音频数据转换成字节流式音频数据;
将所述字节流式音频数据传输至音频重定向层的数据暂存区。
进一步地,处理器1001可以调用存储器1005中存储的VDI音频优化程序,还执行以下操作:
将替换后的虚拟声卡层中的音频数据作为暂存数据;
根据所述暂存数据确定动态采样周期;
根据所述动态采样周期对所述暂存数据进行动态采样,获得采样数据,将所述采样数据作为再次优化后的目标音频数据。
进一步地,处理器1001可以调用存储器1005中存储的VDI音频优化程序,还执行以下操作:
获取所述暂存数据在当前静态周期的数据变量;
根据所述数据变量获取所述暂存数据的当前变化率;
将所述当前变化率与预设数据变化率的进行比较,根据比较结果确定当前采样状态;
根据所述当前采样状态确定动态采样周期。
进一步地,处理器1001可以调用存储器1005中存储的VDI音频优化程序,还执行以下操作:
将所述当前变化率与预设数据变化率的进行比较,获得比较结果;
当所述比较结果为所述变化率小于所述预设数据变化率时,确定当前采样状态为数据衰减状态;
当所述比较结果为所述变化率大于所述预设数据变化率时,确定当前采样状态为数据增益状态。
进一步地,处理器1001可以调用存储器1005中存储的VDI音频优化程序,还执行以下操作:
当所述当前采样状态为所述数据衰减状态时,根据预设时间间隔对当前静态周期进行缩减,将缩减后的当前静态周期作为动态采样周期;
当所述当前采样状态为所述数据增益状态时,根据预设时间间隔对当前静态周期进行增加,将增加后的当前静态周期作为动态采样周期。
本实施例通过上述方案,通过获取虚拟机中音频应用程序播放的目标音频;根据预设驱动指令将所述目标音频发送至虚拟声卡层,所述虚拟声卡层位于音频虚拟层中,所述音频虚拟层位于搭载所述虚拟机的宿主机中;对所述目标音频进行录制,并将录制后的音频数据替换掉所述虚拟声卡层中的目标音频,能够解决杂音源,避免数据异常造成的杂音,保证了声音的完整性和正确性,提高了音频输出效果,提升了用户体验。
基于上述硬件结构,提出本发明VDI音频优化方法实施例。
参照图2,图2为本发明VDI音频优化方法第一实施例的流程示意图。
在第一实施例中,所述VDI音频优化方法包括以下步骤:
步骤S10、获取虚拟机中音频应用程序播放的目标音频。
可以理解的是,在实际操作中,在当前运算量大于所述预设负载阈值时,即VDI服务器当前处于高负载状态,此时容易出现音频播放有杂音的问题,因此及时获取所述虚拟机中的音频应用程序播放的目标音频可以及时对目标音频进行相应处理,从而消除杂音影响;所述音频应用程序可以是例如酷狗、QQ音乐、网易云音乐和酷我等可以进行音频播放的音频应用程序,还可以是例如暴风影音等可以进行音频播放的应用程序,当然还可以是其他进行音频播放的音频应用程序,本实施例对此不加以限制。
需要说明的是,所述当前运算量为VDI服务器实际使用的负载值,通过将所述当前运算量与所述预设负载阈值进行比较,能够获得VDI服务器当前的负载状态,所述预设负载阈值为预先设置的用于确定VDI服务器的负载状态的值,所述预设负载阈值可以是通过大量实验数据确定的固定的值,也可以是技术人员根据日常操作经验自行拟定的值,当然还可以是通过其他方式预先设置的值,本实施例对此不加以限制。
步骤S20、根据预设驱动指令将所述目标音频发送至虚拟声卡层,所述虚拟声卡层位于音频虚拟层中,所述音频虚拟层位于搭载所述虚拟机的宿主机中。
优选的,可以利用标准声卡驱动将所述目标音频发送至虚拟声卡层。
应当理解的是,所述预设驱动指令为VDI服务器生成的用于驱动标准声卡驱动的指令,所述标准声卡驱动为预设在所述虚拟机中的用于控制虚拟声卡的驱动程序,通过所述标准声卡驱动将所述目标音频发送至所述虚拟声卡层,所述虚拟声卡层位于音频虚拟层中,所述音频虚拟层位于搭载所述虚拟机的宿主机中,所述虚拟机是VDI下的虚拟机,一般的,所述标准声卡驱动通过虚拟声卡硬件到达所述宿主机的虚拟声卡层,当然还可以通过其他方式将所述目标音频发送至虚拟声卡层,本实施例对此不加以限制。
步骤S30、对所述目标音频进行录制,并将录制后的音频数据替换掉所述虚拟声卡层中的目标音频。
可以理解的是,通过对所述目标音频进行录制,并将录制后的音频数据替换掉所述虚拟声卡层中的目标音频,能够保证音频数据从虚拟机内传输出来是正常的,避免了虚拟机的标准声卡驱动传输数据的异常。
本实施例通过上述方案,通过获取虚拟机中音频应用程序播放的目标音频;根据预设驱动指令将所述目标音频发送至虚拟声卡层,所述虚拟声卡层位于音频虚拟层中,所述音频虚拟层位于搭载所述虚拟机的宿主机中;对所述目标音频进行录制,并将录制后的音频数据替换掉所述虚拟声卡层中的目标音频,能够解决杂音源,避免数据异常造成的杂音,保证了声音的完整性和正确性,提高了音频输出效果,提升了用户体验。
进一步地,图3为本发明VDI音频优化方法第二实施例的流程示意图,如图3所示,基于第一实施例提出本发明VDI音频优化方法第二实施例,在本实施例中,所述步骤S30具体包括以下步骤:
步骤S31、对所述目标音频进行录制,获得录制后的音频数据。
在具体实现中,一般可以通过虚拟机中应用层中的音频录制程序对音频应用程序中的目标音频进行录制,从而可以确保音频数据的完整性。
步骤S32、将所述音频数据传输至音频重定向层的数据暂存区,所述音频重定向层位于所述音频虚拟层中。
优选的,可以通过半虚拟化字符设备将所述音频数据传输至音频重定向层的数据暂存区。
可以理解的是,所述半虚拟化字符设备可以是Virtio半虚拟化字符设备,通过所述半虚拟化字符设备可以实现VDI中虚拟机和宿主机之间的通信,将所述音频数据传输至音频重定向层的数据暂存区,所述音频重定向层位于所述宿主机的音频虚拟层中。
进一步地,所述步骤S32具体包括以下步骤:
通过预设半虚拟化字符驱动将所述音频数据传输至所述音频虚拟层;
通过所述音频虚拟层中的半虚拟化字符设备将所述音频数据转换成字节流式音频数据;
将所述字节流式音频数据传输至音频重定向层的数据暂存区。
可以理解的是,所述预设半虚拟化字符驱动为预先设置的半虚拟化字符驱动,可以是Virtio半虚拟化字符驱动,预先编写的驱动,再通过预先编写好的预设半虚拟化字符驱动,可以将所述音频数据传输至所述音频虚拟层,从而再通过半虚拟化字符设备将所述音频数据转换成字节流式音频数据,将所述字节流式音频数据传输至音频重定向层的数据暂存区,保证了数据不会发生错乱,从而解决掉数据异常造成的杂音,保证了数据的完整性。
步骤S33、从所述数据暂存区中取出所述音频数据,将所述音频数据替换掉所述虚拟声卡层中的目标音频。
应当理解的是,从所述数据暂存区中取出所述音频数据,将所述虚拟声卡层中的目标音频进行替换,可以解决掉数据异常造成的杂音,保证了音频数据的完整性。
在具体实现中,如图4所示,图4为本发明VDI音频优化方法的操作系统框架示意图;虚拟机Guest内包含音频应用程序、音频播放引擎、音频录制引擎、标准声卡驱动和Virtio半虚拟化字符驱动;通过音频播放引擎将音频应用程序正在播放的目标音频通过标准声卡驱动发送至音频虚拟层,音频录制引擎对所述音频应用程序中的目标音频进行录制,再通过Virtio半虚拟化字符驱动发送至音频虚拟层;所述音频虚拟层位于搭载所述虚拟机Guest的宿主机Host内,所述音频虚拟层包括虚拟声卡硬件,半虚拟化字符硬件、音频重定向层和音频服务端;所述虚拟声卡硬件接收所述标准声卡驱动发送的音频数据,期间会存在数据丢失或额外的静音数据等情况,从而导致虚拟声卡硬件中的音频数据存在问题,而通过Virtio半虚拟化字符驱动发送的录制后的音频数据通过半虚拟化字符硬件发送至音频重定向层,可以对所述虚拟声卡硬件中的数据进行替换,从而解决掉数据异常造成的杂音,再将替换后的音频数据发送至音频服务端,从而通过网络连接到达音频客户端进行播放,达到了音频的完整体验,避免了因为数据丢失或错乱播放出现的杂音,为用户提供良好的听觉体验。
本实施例通过上述方案,通过对所述目标音频进行录制,获得录制后的音频数据;将所述音频数据传输至音频重定向层的数据暂存区,所述音频重定向层位于所述音频虚拟层中;从所述数据暂存区中取出所述音频数据,将所述音频数据替换掉所述虚拟声卡层中的目标音频;将替换后的虚拟声卡层中的音频数据作为暂存数据,保障了音频数据的完整性,保证了数据从虚拟机传输出来是正常的,从源头解决掉数据异常造成的杂音,从而保证了后期数据采样的整体稳定性,达到无杂音的效果。
进一步地,图5为本发明VDI音频优化方法第三实施例的流程示意图,如图5所示,基于第二实施例提出本发明VDI音频优化方法第三实施例,在本实施例中,所述步骤S33之后,所述VDI音频优化方法还包括以下步骤:
步骤S40、将替换后的虚拟声卡层中的音频数据作为暂存数据。
可以理解的是,将替换掉所述虚拟声卡层中的目标音频作为暂存数据,方便了后续对数据的处理。
步骤S50、根据所述暂存数据确定动态采样周期。
应当理解的是,通过对所述暂存数据的分析,根据分析结果可以确定动态采样周期。
进一步地,所述步骤S50包括以下步骤:
获取所述暂存数据在当前静态周期的数据变量;
根据所述数据变量获取所述暂存数据的当前变化率;
将所述当前变化率与预设数据变化率的进行比较,根据比较结果确定当前采样状态;
根据所述当前采样状态确定动态采样周期。
需要说明的是,所述暂存数据的当前变化率即为在一定时间内暂存数据的增加或减少的数据量与原暂存数据的比值,通过获得所述暂存数据的当前变化率,可以确定所述暂存数据的变化趋势,从而相应地调节采样周期。
可以理解的是,所述当前静态周期为预先设置的用于确定所述暂存数据的数据量变化的周期,可以是通过大量实验数据确定的周期,也可以是技术人员根据日常操作经验自行拟定的周期,当然还可以是通过其他方式确定的静态周期,本实施例对此不加以限制;获取所述暂存数据在当前静态周期的数据变量后,可以根据所述数据变量与原暂存数据的数据量的关系计算出所述暂存数据的当前变化率。
需要说明的是,所述预设数据变化率为预先设置的变化率,用于跟所述当前变化率进行比较,从而获得比较结果,根据比较结果确定当前采样状态,即所述暂存数据的变化状态,是增加还是衰减。
进一步地,所述步骤将所述当前变化率与预设数据变化率的进行比较,根据比较结果确定当前采样状态具体包括以下步骤:
将所述当前变化率与预设数据变化率的进行比较,获得比较结果;
当所述比较结果为所述变化率小于所述预设数据变化率时,确定当前采样状态为数据衰减状态;
当所述比较结果为所述变化率大于所述预设数据变化率时,确定当前采样状态为数据增益状态。
可以理解的是,通过所述预设数据变化率与所述当前变化率的比较结果确定所述当前采样状态为数据衰减状态或者数据增益状态,从而根据不同的数据状态确定采样的周期,根据所述当前采样状态,即所述暂存数据的变化状态是增加还是衰减,从而确定动态采样周期。
进一步地,所述步骤根据所述当前采样状态确定动态采样周期具体包括以下步骤:
当所述当前采样状态为所述数据衰减状态时,根据预设时间间隔对当前静态周期进行缩减,将缩减后的当前静态周期作为动态采样周期;
当所述当前采样状态为所述数据增益状态时,根据预设时间间隔对当前静态周期进行增加,将增加后的当前静态周期作为动态采样周期。
应当理解的是,所述预设时间间隔为预先设置的时间间隔,数据衰减则表明如果一直消耗下去则会发生采样不足,需要加快采样,即在数据衰减状态时,对当前静态周期进行缩减,将缩减后的当前静态周期作为动态采样周期;数据增益表明如果一直采样下去会发生采样过多,需要降低采样速度,即在数据增益状态时,对当前静态周期进行增加,将增加后的当前静态周期作为动态采样周期;例如预设时间间隔为1ms,所述当前静态周期为10ms,当前采样状态为数据增益状态为11ms,则下一次动态采样周期为10ms-1ms=9ms,这样的效果是能够确保采样的精度,从而保证了数据的正常采样,避免了采样不足导致声卡采样的数据出现数据错乱的情况发生,从而消除了杂音源,达到了无杂音的效果。
步骤S60、根据所述动态采样周期对所述暂存数据进行动态采样,获得采样数据,将所述采样数据作为再次优化后的目标音频数据。
可以理解的是,在确定所述动态采样周期后对所述暂存数据进行动态采样,即按照所述动态采样周期对所述暂存数据进行周期性的采样,获得采样数据,所述采样数据进行整合后即可作为优化后的目标音频数据。
应当理解的是,虚拟机在服务器高负载下,时钟和调度都会开始变得不准;目前声卡使用的协议中,都是固定时间进行采样一次,以高保真音频(High Definition Audio,HDAudio)音频协议标准来说这个间隔是10ms,但因为在高负载下实际触发时间比这个时间要长,这样就会产生一个精度差,使得单位时间内获取的采样数据小于单位时间需要播放的采样数据,造成采样不足,这样当没数据可播的时候就会产生杂音,另外在这个精度损失的情况下,声卡采样的数据会出现数据错乱,存在数据丢失和额外的静音数据,数据本身出现问题,使得在播放的时候产生数据异常的杂音,因此通过对数据进行动态采样,可以解决掉杂音源,进一步保障了音频数据的完整性,达到无杂音的效果。
基于上述实施例的VDI音频优化方法,本发明进一步提供一种VDI音频优化系统。
参照图6,图6为本发明VDI音频优化系统第一实施例的功能模块图。
本发明VDI音频优化系统第一实施例中,该VDI音频优化系统包括:
音频获取模块10,用于获取虚拟机中音频应用程序播放的目标音频。
可以理解的是,在实际操作中,在当前运算量大于所述预设负载阈值时,即所述VDI服务器当前处于高负载状态,此时容易出现音频播放有杂音的问题,因此及时获取所述虚拟机中的音频应用程序播放的目标音频可以及时对目标音频进行相应处理,从而消除杂音影响;所述音频应用程序可以是例如酷狗、QQ音乐、网易云音乐和酷我等可以进行音频播放的音频应用程序,还可以是例如暴风影音等可以进行音频播放的应用程序,当然还可以是其他进行音频播放的音频应用程序,本实施例对此不加以限制。
需要说明的是,所述当前运算量为所述VDI服务器实际使用的负载值,通过将所述当前运算量与所述预设负载阈值进行比较,能够获得所述VDI服务器当前的负载状态,所述预设负载阈值为预先设置的用于确定所述VDI服务器的负载状态的值,所述预设负载阈值可以是通过大量实验数据确定的固定的值,也可以是技术人员根据日常操作经验自行拟定的值,当然还可以是通过其他方式预先设置的值,本实施例对此不加以限制。
音频传输模块20,用于根据预设驱动指令将所述目标音频发送至虚拟声卡层,所述虚拟声卡层位于音频虚拟层中,所述音频虚拟层位于搭载所述虚拟机的宿主机中。
应当理解的是,优选的,可以利用标准声卡驱动将所述目标音频发送至虚拟声卡层;所述预设驱动指令为VDI服务器生成的用于驱动标准声卡驱动的指令,所述标准声卡驱动为预设在所述虚拟机中的用于控制虚拟声卡的驱动程序,通过所述标准声卡驱动将所述目标音频发送至所述虚拟声卡层,所述虚拟声卡层位于音频虚拟层中,所述音频虚拟层位于搭载所述虚拟机的宿主机中,所述虚拟机是VDI下的虚拟机,一般的,所述标准声卡驱动通过虚拟声卡硬件到达所述宿主机的虚拟声卡层,当然还可以通过其他方式将所述目标音频发送至虚拟声卡层,本实施例对此不加以限制。
音频替换模块30,用于对所述目标音频进行录制,并将录制后的音频数据替换掉所述虚拟声卡层中的目标音频。
可以理解的是,通过对所述目标音频进行录制,并将录制后的音频数据替换掉所述虚拟声卡层中的目标音频,能够保证音频数据从虚拟机内传输出来是正常的,避免了虚拟机的标准声卡驱动传输数据的异常。
本实施例通过上述方案,通过获取虚拟机中音频应用程序播放的目标音频;根据预设驱动指令将所述目标音频发送至虚拟声卡层,所述虚拟声卡层位于音频虚拟层中,所述音频虚拟层位于搭载所述虚拟机的宿主机中;对所述目标音频进行录制,并将录制后的音频数据替换掉所述虚拟声卡层中的目标音频,能够解决杂音源,避免数据异常造成的杂音,保证了声音的完整性和正确性,提高了音频输出效果,提升了用户体验。
此外,本发明实施例还提出一种存储介质,所述存储介质上存储有VDI音频优化程序,所述VDI音频优化程序被处理器执行时实现如下操作:
获取虚拟机中音频应用程序播放的目标音频;
根据预设驱动指令将所述目标音频发送至虚拟声卡层,所述虚拟声卡层位于音频虚拟层中,所述音频虚拟层位于搭载所述虚拟机的宿主机中;
对所述目标音频进行录制,并将录制后的音频数据替换掉所述虚拟声卡层中的目标音频。
进一步地,所述VDI音频优化程序被处理器执行时还实现如下操作:
对所述目标音频进行录制,获得录制后的音频数据;
将所述音频数据传输至音频重定向层的数据暂存区,所述音频重定向层位于所述音频虚拟层中;
从所述数据暂存区中取出所述音频数据,将所述音频数据替换掉所述虚拟声卡层中的目标音频。
进一步地,所述VDI音频优化程序被处理器执行时还实现如下操作:
通过预设半虚拟化字符驱动将所述音频数据传输至所述音频虚拟层;
通过所述音频虚拟层中的半虚拟化字符设备将所述音频数据转换成字节流式音频数据;
将所述字节流式音频数据传输至音频重定向层的数据暂存区。
进一步地,所述VDI音频优化程序被处理器执行时还实现如下操作:
将替换后的虚拟声卡层中的音频数据作为暂存数据;
根据所述暂存数据确定动态采样周期;
根据所述动态采样周期对所述暂存数据进行动态采样,获得采样数据,将所述采样数据作为再次优化后的目标音频数据。
进一步地,所述VDI音频优化程序被处理器执行时还实现如下操作:
获取所述暂存数据在当前静态周期的数据变量;
根据所述数据变量获取所述暂存数据的当前变化率;
将所述当前变化率与预设数据变化率的进行比较,根据比较结果确定当前采样状态;
根据所述当前采样状态确定动态采样周期。
进一步地,所述VDI音频优化程序被处理器执行时还实现如下操作:
将所述当前变化率与预设数据变化率的进行比较,获得比较结果;
当所述比较结果为所述变化率小于所述预设数据变化率时,确定当前采样状态为数据衰减状态;
当所述比较结果为所述变化率大于所述预设数据变化率时,确定当前采样状态为数据增益状态。
进一步地,所述VDI音频优化程序被处理器执行时还实现如下操作:
当所述当前采样状态为所述数据衰减状态时,根据预设时间间隔对当前静态周期进行缩减,将缩减后的当前静态周期作为动态采样周期;
当所述当前采样状态为所述数据增益状态时,根据预设时间间隔对当前静态周期进行增加,将增加后的当前静态周期作为动态采样周期。
本实施例通过上述方案,通过获取虚拟机中音频应用程序播放的目标音频;根据预设驱动指令将所述目标音频发送至虚拟声卡层,所述虚拟声卡层位于音频虚拟层中,所述音频虚拟层位于搭载所述虚拟机的宿主机中;对所述目标音频进行录制,并将录制后的音频数据替换掉所述虚拟声卡层中的目标音频,能够解决杂音源,避免数据异常造成的杂音,保证了声音的完整性和正确性,提高了音频输出效果,提升了用户体验。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者系统不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者系统所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者系统中还存在另外的相同要素。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
Claims (10)
1.一种VDI音频优化方法,其特征在于,所述VDI音频优化方法包括:
获取虚拟机中音频应用程序播放的目标音频;
根据预设驱动指令将所述目标音频发送至虚拟声卡层,所述虚拟声卡层位于音频虚拟层中,所述音频虚拟层位于搭载所述虚拟机的宿主机中;
对所述目标音频进行录制,并将录制后的音频数据替换掉所述虚拟声卡层中的目标音频。
2.如权利要求1所述的VDI音频优化方法,其特征在于,所述对所述目标音频进行录制,并将录制后的音频数据替换掉所述虚拟声卡层中的目标音频,具体包括:
对所述目标音频进行录制,获得录制后的音频数据;
将所述音频数据传输至音频重定向层的数据暂存区,所述音频重定向层位于所述音频虚拟层中;
从所述数据暂存区中取出所述音频数据,将所述音频数据替换掉所述虚拟声卡层中的目标音频。
3.如权利要求2所述的VDI音频优化方法,其特征在于,所述将所述音频数据传输至音频重定向层的数据暂存区,具体包括:
通过预设半虚拟化字符驱动将所述音频数据传输至所述音频虚拟层;
通过所述音频虚拟层中的半虚拟化字符设备将所述音频数据转换成字节流式音频数据;
将所述字节流式音频数据传输至音频重定向层的数据暂存区。
4.如权利要求1-3中任一项所述的VDI音频优化方法,其特征在于,所述对所述目标音频进行录制,并将录制后的音频数据替换掉所述虚拟声卡层中的目标音频之后,所述VDI音频优化方法还包括:
将替换后的虚拟声卡层中的音频数据作为暂存数据;
根据所述暂存数据确定动态采样周期;
根据所述动态采样周期对所述暂存数据进行动态采样,获得采样数据,将所述采样数据作为再次优化后的目标音频数据。
5.如权利要求4所述的VDI音频优化方法,其特征在于,所述根据所述暂存数据确定动态采样周期,具体包括:
获取所述暂存数据在当前静态周期的数据变量;
根据所述数据变量获取所述暂存数据的当前变化率;
将所述当前变化率与预设数据变化率的进行比较,根据比较结果确定当前采样状态;
根据所述当前采样状态确定动态采样周期。
6.如权利要求5所述的VDI音频优化方法,其特征在于,所述将所述当前变化率与预设数据变化率的进行比较,根据比较结果确定当前采样状态,具体包括:
将所述当前变化率与预设数据变化率的进行比较,获得比较结果;
当所述比较结果为所述变化率小于所述预设数据变化率时,确定当前采样状态为数据衰减状态;
当所述比较结果为所述变化率大于所述预设数据变化率时,确定当前采样状态为数据增益状态。
7.如权利要求6所述的VDI音频优化方法,其特征在于,所述根据所述当前采样状态确定动态采样周期,具体包括:
当所述当前采样状态为所述数据衰减状态时,根据预设时间间隔对当前静态周期进行缩减,将缩减后的当前静态周期作为动态采样周期;
当所述当前采样状态为所述数据增益状态时,根据预设时间间隔对当前静态周期进行增加,将增加后的当前静态周期作为动态采样周期。
8.一种VDI音频优化系统,其特征在于,所述VDI音频优化系统包括:
音频获取模块,用于获取虚拟机中音频应用程序播放的目标音频;
音频传输模块,用于根据预设驱动指令将所述目标音频发送至虚拟声卡层,所述虚拟声卡层位于音频虚拟层中,所述音频虚拟层位于搭载所述虚拟机的宿主机中;
音频替换模块,用于对所述目标音频进行录制,并将录制后的音频数据替换掉所述虚拟声卡层中的目标音频。
9.一种VDI服务器,其特征在于,所述VDI服务器包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的VDI音频优化程序,所述VDI音频优化程序配置为实现如权利要求1至7中任一项所述的VDI音频优化方法的步骤。
10.一种存储介质,其特征在于,所述存储介质上存储有VDI音频优化程序,所述VDI音频优化程序被处理器执行时实现如权利要求1至7中任一项所述的VDI音频优化方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811305850.7A CN111143022B (zh) | 2018-11-02 | 2018-11-02 | Vdi音频优化方法、系统、服务器及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811305850.7A CN111143022B (zh) | 2018-11-02 | 2018-11-02 | Vdi音频优化方法、系统、服务器及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111143022A true CN111143022A (zh) | 2020-05-12 |
CN111143022B CN111143022B (zh) | 2023-11-07 |
Family
ID=70515121
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811305850.7A Active CN111143022B (zh) | 2018-11-02 | 2018-11-02 | Vdi音频优化方法、系统、服务器及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111143022B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112581993A (zh) * | 2020-12-22 | 2021-03-30 | 北京字节跳动网络技术有限公司 | 音频的录制方法、装置、可读介质和电子设备 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101599285A (zh) * | 2009-07-02 | 2009-12-09 | 深圳市万兴软件有限公司 | 一种音频录制方法和系统 |
CN104410664A (zh) * | 2014-10-27 | 2015-03-11 | 深圳市京华科讯科技有限公司 | 基于虚拟化桌面环境的全双工音频传输系统及方法 |
CN105245557A (zh) * | 2014-06-16 | 2016-01-13 | 北京云端时代科技有限公司 | 一种vdi架构下的音频输出方法和装置 |
-
2018
- 2018-11-02 CN CN201811305850.7A patent/CN111143022B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101599285A (zh) * | 2009-07-02 | 2009-12-09 | 深圳市万兴软件有限公司 | 一种音频录制方法和系统 |
CN105245557A (zh) * | 2014-06-16 | 2016-01-13 | 北京云端时代科技有限公司 | 一种vdi架构下的音频输出方法和装置 |
CN104410664A (zh) * | 2014-10-27 | 2015-03-11 | 深圳市京华科讯科技有限公司 | 基于虚拟化桌面环境的全双工音频传输系统及方法 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112581993A (zh) * | 2020-12-22 | 2021-03-30 | 北京字节跳动网络技术有限公司 | 音频的录制方法、装置、可读介质和电子设备 |
Also Published As
Publication number | Publication date |
---|---|
CN111143022B (zh) | 2023-11-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108079578B (zh) | 一种基于云游戏的码率调整方法、装置及存储介质 | |
US9032165B1 (en) | Systems and methods for scheduling write requests for a solid state storage device | |
US20070255979A1 (en) | Event trace conditional logging | |
US20120096368A1 (en) | Cloud-based virtual clipboard | |
KR101528367B1 (ko) | 사운드 제어 시스템 및 사운드 제어 방법 | |
US6961945B2 (en) | Method and apparatus for adapting and hosting legacy user interface controls | |
US9401972B2 (en) | Virtual file transmission system and method of transmitting virtual file thereof | |
US9906626B2 (en) | Resource demand-based network page generation | |
CN111614730B (zh) | 云存储系统的文件处理方法、装置及电子设备 | |
US20240171485A1 (en) | Standardizing analysis metrics across multiple devices | |
US10754669B2 (en) | Running an application within an application execution environment and preparation of an application for the same | |
CN111143022A (zh) | Vdi音频优化方法、系统、服务器及存储介质 | |
KR20200105174A (ko) | 특정 시점의 환경을 제공할 수 있는 가상 데스크톱 시스템 및 그 데이터 처리 방법 | |
JP4747209B2 (ja) | 高速ウェブサーバ | |
US10671636B2 (en) | In-memory DB connection support type scheduling method and system for real-time big data analysis in distributed computing environment | |
KR20140102838A (ko) | 클라우드 스트리밍 서비스를 제공하기 위한 장치, 이를 위한 방법 및 이를 위한 시스템 | |
CN110769316A (zh) | 一种首帧时间的计算方法、装置、设备和存储介质 | |
US20090037434A1 (en) | System and method for efficiently providing content over a thin client network | |
KR102119832B1 (ko) | 애플리케이션들의 가속화된 실행을 위한 방법 및 디바이스 | |
KR101635273B1 (ko) | 가상 데스크탑 기반의 데이터 처리 장치 및 방법 | |
KR101428472B1 (ko) | 클라우드 스트리밍 서비스 제공을 위한 장치 및 이를 위한 방법 | |
JP4835612B2 (ja) | 電子文書変換サーバ、その制御方法及びプログラム | |
CN110706718A (zh) | 一种基于桌面虚拟化的音频类外设降噪处理方法及系统 | |
KR102369525B1 (ko) | 원격 접속을 위한 장치, 시스템 및 방법 | |
CN104620563B (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 |