CN112803907B - 一种提供音频播放服务的系统和方法 - Google Patents
一种提供音频播放服务的系统和方法 Download PDFInfo
- Publication number
- CN112803907B CN112803907B CN202110284154.8A CN202110284154A CN112803907B CN 112803907 B CN112803907 B CN 112803907B CN 202110284154 A CN202110284154 A CN 202110284154A CN 112803907 B CN112803907 B CN 112803907B
- Authority
- CN
- China
- Prior art keywords
- audio
- stream
- module
- audio stream
- playing
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 62
- 238000005070 sampling Methods 0.000 claims abstract description 78
- 238000004891 communication Methods 0.000 claims abstract description 37
- 238000012952 Resampling Methods 0.000 claims description 29
- 230000010354 integration Effects 0.000 claims description 7
- 229960001948 caffeine Drugs 0.000 claims description 4
- 230000004069 differentiation Effects 0.000 claims description 4
- RYYVLZVUVIJVGH-UHFFFAOYSA-N trimethylxanthine Natural products CN1C(=O)N(C)C(=O)C2=C1N=CN2C RYYVLZVUVIJVGH-UHFFFAOYSA-N 0.000 claims description 4
- 230000003750 conditioning effect Effects 0.000 claims 5
- 230000001105 regulatory effect Effects 0.000 abstract 1
- 239000000126 substance Substances 0.000 description 15
- 238000005259 measurement Methods 0.000 description 7
- 230000008569 process Effects 0.000 description 6
- 230000008859 change Effects 0.000 description 5
- 238000012545 processing Methods 0.000 description 5
- 238000009877 rendering Methods 0.000 description 5
- 238000010586 diagram Methods 0.000 description 4
- 230000006870 function Effects 0.000 description 4
- 230000002093 peripheral effect Effects 0.000 description 3
- 230000008901 benefit Effects 0.000 description 2
- 230000007723 transport mechanism Effects 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000007667 floating Methods 0.000 description 1
- 230000009191 jumping Effects 0.000 description 1
- 238000013178 mathematical model Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000010355 oscillation Effects 0.000 description 1
- 230000008447 perception Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03G—CONTROL OF AMPLIFICATION
- H03G3/00—Gain control in amplifiers or frequency changers
- H03G3/20—Automatic control
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03G—CONTROL OF AMPLIFICATION
- H03G3/00—Gain control in amplifiers or frequency changers
- H03G3/20—Automatic control
- H03G3/30—Automatic control in amplifiers having semiconductor devices
- H03G3/32—Automatic control in amplifiers having semiconductor devices the control being dependent upon ambient noise level or sound level
Landscapes
- Reverberation, Karaoke And Other Acoustics (AREA)
Abstract
本发明公开了一种提供音频播放服务的系统和方法,系统与一个或多个音频输出设备通信连接,并包括应用层,系统层和硬件抽象层,应用层包括音频播放应用和播放控制模块,系统层包括服务器模块和调节模块,方法包括:音频播放应用加载并解析音频文件得到音频流;播放控制模块接收用户的音量调节指令;调节模块计算服务器模块从音频播放应用获取音频流的采样频率;服务器模块根据采样频率从音频播放应用中获取音频流,对音频流进行音量调节;以及硬件抽象层向与系统连接的音频输出设备提供通信接口,并从系统层获取音量调节后的音频流,通过通信接口输出至音频输出设备进行音频播放。本发明还一并公开了一种计算设备和计算机可读存储介质。
Description
技术领域
本发明涉及操作系统领域,特别涉及一种提供音频播放服务的系统和方法。
背景技术
在现有的linux系统中,使用PlusAudio作为硬件设备驱动程序和主机应用程序之间的声音服务器。Plusaudio管理应用程序的音频流,配置主机所连接的音响等硬件设备播放音频流。
而在linux系统中,基于PlusAudio在播放一段时间音频后,时常会出现声音跳变的问题,影响正常的视听体验。并在播放音频的过程中,对音频播放的音量进行调整时,往往需要等待一段时间,硬件设备才能输出调整音量后的声音,会造成调节控制音量和硬件播放音量存在不匹配及调节延迟的问题,出现不能准确调节音量以及调节音量时出现播放毛刺的现象。
为此,需要一种新的提供音频播放服务的系统和方法。
发明内容
为此,本发明提供一种提供音频播放服务的系统和方法,以力图解决或者至少缓解上面存在的问题。
根据本发明的一个方面,提供一种提供音频播放播放服务的系统,系统与一个或多个音频输出设备通信连接,并包括应用层,系统层和硬件抽象层,其中,应用层包括音频播放应用和播放控制模块,音频播放应用适于加载并解析音频文件得到音频流,播放控制模块适于接收用户的音量调节指令,指示服务器模块进行音频流的音量调节;系统层包括服务器模块和调节模块,调节模块适于计算服务器模块从音频播放应用获取音频流的采样频率,服务器模块适于根据采样频率从音频播放应用中获取音频流,对音频流进行音量调节;硬件抽象层适于向与系统连接的音频输出设备提供通信接口,并从系统层获取音量调节后的音频流,通过通信接口输出至音频输出设备进行音频播放。
可选地,在根据本发明的系统中,服务器模块包括流缓冲区和重采样缓冲区,流缓冲区和重采样缓冲区适于在播放控制模块接收到音量调节指令后,将已经从音频播放应用读取的音频流进行倒带操作;流缓冲区还适于根据调节模块计算的采样频率重新从音频播放应用获取音频流,并对音频流按照音频调节指令进行音量调节,将音量调节后的音频流传输到重采样缓冲区,覆盖被倒带操作的音频流;重采样缓冲区适于将音量调节后的音频流转化为适于音频输出设备读取的格式,以便硬件抽象层从系统层获取音量调节后的音频流,并传输给音频输出设备进行音频播放。
可选地,在根据本发明的系统中,流缓冲区和重采样缓冲区进一步适于:将读取音频流的指针,按照音频流播放相反的方向移动。
可选地,在根据本发明的系统中,调节模块包括比例调节模块,积分调节模块和微分调节模块,调节模块适于按照如下公式计算采样频率:
可选地,在根据本发明的系统中,比例调节模块适于按照如下公式确定比例调节频率:
可选地,在根据本发明的系统中,积分调节模块适于按照如下公式确定积分调节频率:
可选地,在根据本发明的系统中,微分调节模块适于按照如下公式确定微分调节频率:
可选地,在根据本发明的系统中,调节单元还适于分别确定比例调节模块的比例调节系数,积分调节模块的积分调节系数,微分调节模块的微分调节系数。
根据本发明的另一个方面,提供一种提供音频播放服务的方法,适于在系统中执行,系统与一个或多个音频输出设备通信连接,并包括应用层,系统层和硬件抽象层,应用层包括音频播放应用和播放控制模块,系统层包括服务器模块和调节模块,方法包括:音频播放应用加载并解析音频文件得到音频流;播放控制模块接收用户的音量调节指令,指示服务器模块进行音频流的音量调节;调节模块计算服务器模块从音频播放应用获取音频流的采样频率;服务器模块根据采样频率从音频播放应用中获取音频流,对音频流进行音量调节;以及硬件抽象层向与系统连接的音频输出设备提供通信接口,并从系统层获取音量调节后的音频流,通过通信接口输出至音频输出设备进行音频播放。
可选地,在根据本发明的方法中,服务器模块包括流缓冲区和重采样缓冲区,对音频流进行音量调节包括:流缓冲区和重采样缓冲区在播放控制模块接收到音量调节指令后,将已经从音频播放应用读取的音频流进行倒带操作;流缓冲区根据调节模块计算的采样频率重新从音频播放应用获取音频流,并对音频流按照音频调节指令进行音量调节,将音量调节后的音频流传输到重采样缓冲区,覆盖被倒带操作的音频流;重采样缓冲区将音量调节后的音频流转化为适于述音频输出设备读取的格式,以便硬件抽象层从系统层获取音量调节后的音频流,并传输给音频设备进行音频播放。
可选地,在根据本发明的方法中,流缓冲区和重采样缓冲区将已经从音频播放应用读取的音频流进行倒带操作包括:将读取音频流的指针,按照音频流播放相反的方向移动。
可选地,在根据本发明的方法中,调节模块包括比例调节模块,积分调节模块和微分调节模块,调节模块计算服务器模块从音频播放应用获取音频流的采样频率包括步骤:按照如下公式计算采样频率:
可选地,在根据本发明的方法中,比例调节模块按照如下公式确定比例调节频率:
可选地,在根据本发明的方法中,积分调节模块按照如下公式确定积分调节频率:
可选地,在根据本发明的方法中,微分调节模块按照如下公式确定微分调节频率:
可选地,在根据本发明的方法中,调节单元分别确定比例调节模块的比例调节系数,积分调节模块的积分调节系数,微分调节模块的微分调节系数。
根据本发明的又一方面,提供了一种计算设备,包括:一个或多个处理器;存储器;以及一个或多个程序,其中一个或多个程序存储在存储器中并被配置为由一个或多个处理器执行,一个或多个程序包括用于执行根据本发明的一种提供音频播放服务方法的任一方法的指令。
根据本发明的还有一个方面,提供了一种存储一个或多个程序的计算机可读存储介质,一个或多个程序包括指令,该指令当由计算设备执行时,使得计算设备执行根据本发明的一种提供音频播放服务方法中的任一方法。
本发明中的一种提供音频播放服务的方法适于在一种提供音频播放服务的系统中执行。系统包括应用层,系统层和抽象层,应用层包括音频播放应用,系统层包括服务器模块和调节模块。本发明的方法中,音频播放应用加载并解析音频文件得到音频流,通过调节模块计算服务器模块从音频播放应用获取音频流的采样频率,从而服务器模块根据采样频率从音频播放应用中获取音频流,从而能够以适当频率获取音频流传输给播放设备,避免音频输出设备播放音频时出现毛刺的声音。
并进一步的,应用层还包括播放控制模块,服务器模块包括流缓冲区和重采样缓冲区,播放控制模块接收用户的音量调节指令,流缓冲区和重采样缓冲区通过将已经从音频播放应用读取的音频流进行倒带操作,流缓冲区重新从音频播放应用获取音频流,并对音频流按照音频调节指令进行音量调节,将音量调节后的音频流传输到重采样缓冲区,覆盖被倒带操作的音频流,从而能够让音频输出设备迅速播放音量调节后的音频流,使用户没有延迟的听到音频播放的音量变化,准确把握音量调节的幅度。流缓冲区重新从音频播放应用获取音频流时,根据调节模块所计算的采样频率从音频播放应用重获取音频流,从而避免系统在调节音量时出现播放毛刺及音量跳变的现象。
附图说明
为了实现上述以及相关目的,本文结合下面的描述和附图来描述某些说明性方面,这些方面指示了可以实践本文所公开的原理的各种方式,并且所有方面及其等效方面旨在落入所要求保护的主题的范围内。通过结合附图阅读下面的详细描述,本公开的上述以及其它目的、特征和优势将变得更加明显。遍及本公开,相同的附图标记通常指代相同的部件或元素。
图1示出了根据本发明一个示范性实施例的一种提供音频播放服务的系统的示意图1000;
图2示出了根据本发明一个示范性实施例的计算设备200的结构框图;以及
图3示出了根据本发明的一个示范性实施例的一种提供音频播放服务的方法300的流程示意图。
具体实施方式
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。相同的附图标记通常指代相同的部件或元素。
图1示出了根据本发明一个示范性实施例的一种提供音频播放服务的系统的示意图1000。如图1所示,系统1000包括依次连接应用层1100,系统层1200和硬件抽象层1300,并且硬件抽象层1300与外部音频输出设备1410和1420通信连接。图1所示的连接方式仅是示例性的,本发明对系统1000所连接的外部音频输出设备的数量不作限制。
图1中的系统1000适于驻留在一种计算设备中。图2示出了根据本发明一个示范性实施例的计算设备200的结构框图。如图2所示,在基本的配置202中,计算设备200典型地包括系统存储器206和一个或者多个处理器204。存储器总线208可以用于在处理器204和系统存储器206之间的通信。
取决于期望的配置,处理器204可以是任何类型的处理,包括但不限于:微处理器(µP)、微控制器(µC)、数字信息处理器(DSP)或者它们的任何组合。处理器204可以包括诸如一级高速缓存210和二级高速缓存212之类的一个或者多个级别的高速缓存、处理器核心214和寄存器216。示例的处理器核心214可以包括运算逻辑单元(ALU)、浮点数单元(FPU)、数字信号处理核心(DSP核心)或者它们的任何组合。示例的存储器控制器218可以与处理器204一起使用,或者在一些实现中,存储器控制器218可以是处理器204的一个内部部分。
取决于期望的配置,系统存储器206可以是任意类型的存储器,包括但不限于:易失性存储器(诸如RAM)、非易失性存储器(诸如ROM、闪存等)或者它们的任何组合。系统存储器206可以包括操作系统220、一个或者多个程序222以及程序数据224。在一些实施方式中,程序222可以布置为在操作系统上由一个或者多个处理器204利用程序数据224执行根据本发明的方法300的指令223。
计算设备200还可以包括储存接口总线234。储存接口总线234实现了从储存设备232(例如,可移除储存器236和不可移除储存器238)经由总线/接口控制器230到基本配置202的通信。操作系统220、应用222以及数据224的至少一部分可以存储在可移除储存器236和/或不可移除储存器238上,并且在计算设备200上电或者要执行应用222时,经由储存接口总线234而加载到系统存储器206中,并由一个或者多个处理器204来执行。
计算设备200还可以包括有助于从各种接口设备(例如,输出设备242、外设接口244和通信设备246)到基本配置202经由总线/接口控制器230的通信的接口总线240。示例的输出设备242包括图形处理单元248和音频处理单元250。它们可以被配置为有助于经由一个或者多个A/V端口252与诸如显示器或者扬声器之类的各种外部设备进行通信。示例外设接口244可以包括串行接口控制器254和并行接口控制器256,它们可以被配置为有助于经由一个或者多个I/O端口258和诸如输入设备(例如,键盘、鼠标、笔、语音输入设备、触摸输入设备)或者其他外设(例如打印机、扫描仪等)之类的外部设备进行通信。示例的通信设备246可以包括网络控制器260,其可以被布置为便于经由一个或者多个通信端口264与一个或者多个其他计算设备262通过网络通信链路的通信。
网络通信链路可以是通信介质的一个示例。通信介质通常可以体现为在诸如载波或者其他传输机制之类的调制数据信号中的计算机可读指令、数据结构、程序模块,并且可以包括任何信息递送介质。“调制数据信号”可以这样的信号,它的数据集中的一个或者多个或者它的改变可以在信号中编码信息的方式进行。作为非限制性的示例,通信介质可以包括诸如有线网络或者专线网络之类的有线介质,以及诸如声音、射频(RF)、微波、红外(IR)或者其它无线介质在内的各种无线介质。这里使用的术语计算机可读介质可以包括存储介质和通信介质二者。
在根据本发明的计算设备200中,应用222包括执行一种应用更新方法300的多条程序指令,这些程序指令可以指示处理器204执行本发明的一种计算设备200中运行的应用更新方法300中的部分步骤,以便计算设备200中的各部分通过执行本发明的一种提供音频播放服务的方法300来实现对音频进行播放。
计算设备200可以实现为服务器,例如文件服务器240、数据库250、服务器、应用程序服务器等,这些电子设备可以是诸如个人数字助理(PDA)、无线网络浏览设备、应用专用设备、或者可以包括上面任何功能的混合设备。可以实现为包括桌面计算机和笔记本计算机配置的个人计算机,也在一些实施例中,计算设备200被配置为执行一种提供音频播放服务的方法300。
回到图1中,系统1000为一种嵌入式操作系统,具体可实现为linux系统。应用层1100对应于操作系统中的用户态或用户空间,其中包括运行在用户态下的音频播放应用1110和播放控制模块1120。音频播放应用1110为任意一种能够对存储的音频文件进行播放的应用,本发明对音频播放应用1110的种类不作限制。音频播放应用1110对音频文件进行解析得到音频流,音频流为一种音频类型结构化信息。音频播放应用1110中包括一个抽象的存储空间,其中可以存储音频流,便于服务器模块1210从中获取音频流并进行处理。
播放控制模块1120对音频播放应用1110播放音频文件的过程进行控制,包括播放音量的大小,声道的选择,以及播放音频文件的音频输出设备的选择。播放控制模块1120接收来自用户的音频播放控制指令,其中一项指令为音量调节指令,控制播放音频流音量的大小。用户可通过操作播放控制模块1120控制音频播放应用1110播放音频文件的音量的大小。
系统1000中的系统层1200对应于操作系统中的内核态或内核空间,其中包括服务器模块1210,声音子系统模块1220,内核1230和调节模块1240。服务器模块1210为硬件设备驱动程序和应用层的应用之间的声音服务器,具体可实现为PlusAudio声音服务器。服务器模块1210监测和配置本地设备,进行音频的管理,将应用程序的音频流传输到本地或远程设备。本发明中服务器模块1210与应用层1100的音频播放应用1110采用对等D-Bus模式直接进行通信,这样具有较低的延迟。
服务器模块1210与应用层1100的音频播放应用1110建立通信时,首先服务器模块1210在D-Bus总线上注册服务器查找接口,音频播放应用1110首先连接到D-Bus总线以寻找服务器模块1210的地址,然后直接连接到服务器模块1210进行对等通信,通过服务器模块1210的通信接口传输数据。
服务器模块1210中包括流缓冲区1211,重采样缓冲区1212和渲染队列1213。流缓冲区1211通过D-Bus总线从音频播放应用1110中获取音频流,若此时播放控制模块1120接受到了音量调节指令,则对音频流进行音量调节处理,并将音频流发送至重采样缓冲区1212。重采样缓冲区1212对音频流进行转化为适于音频输出设备1410或1420进行播放的格式并提供给渲染队列1213。渲染队列1213存储音频流的大小等于或大于内核1230中设备缓冲区1231的大小。渲染队列1213将音频流提供给声音子系统模块1220和内核1230,以便音频输出设备1410或1420进行播放。
声音子系统模块1220可实现为ALSA或OSS库,向系统1000提供音频函数库。相应的内核1230可实现为ALSA或OSS内核,向与系统1000连接的音频输出设备1410或1420提供执行音频播放所需要的驱动程序。声音子系统模块1220与内核1230共同在系统1000中提供音频播放服务器,其中,内核1230中包括设备缓冲区1231。设备缓冲区1231存储有要提供给音频输出设备1410或1420进行播放的音频流。
硬件抽象层1300为内核1230与硬件设备:音频输出设备1410或1420之间的接口层,将音频输出设备1410或1420抽象化,向音频输出设备1410或1420提供通信接口,也便于系统1000对音频输出设备1410或1420进行访问。音频输出设备1410或1420可实现为任意一种能够对音频流进行播放的设备,例如音箱,喇叭,耳机等,本发明对音频输出设备1410或1420的具体类型不作限制。
在系统1000提供音频播放服务的过程中,系统1000中流缓冲区1211以一定频率f1从音频播放应用1110中获取音频流,内核1230中的设备缓冲区以一定频率f2从渲染队列1213中获取音频流。音频输出设备1410或1420实际通过声卡与系统1000通信连接,声卡内置在音频输出设备中或单独设置(图中未示出)。音频输出设备1410或1420按照声卡时钟确定的速度播放音频流,设备缓冲区1231按照相应的频率f2从渲染队列1213中获取音频流,即设备缓冲区1231获取音频流的频率f2由声卡时钟确定。音频播放应用1110与声音服务器通过对等D-Bus模式直接进行通信,因此流缓冲区1211从音频播放应用1110获取音频流的频率由系统1000所在计算设备的CPU提供时钟确定,而不能使用声卡时钟确定采样频率。由于声卡时钟与系统1000所在计算设备200的CPU时钟频率不完全一致,存在一定误差,因此流缓冲区1211获取音频流的频率f1与设备缓冲区获取音频流的频率f2不同。在系统1000播放音频文件一段时间后,当频率f1小于频率f2时,服务器模块1210的流缓冲区1211会出现上溢,当频率f1大于频率f2是,流缓冲区1211会出现下溢。用户此时会听到播放音频时声音出现跳变或毛刺的杂音。
流缓冲区1211,渲染队列1213以及设备缓冲1231中的每个缓冲区都有读取音频流的指针,在系统1000正常进行音频播放的过程中,每个缓冲区的指针在缓冲区中按照音频流播放相同的方向移动。但在播放控制模块1120接受到音量调节指令后,系统1000需要让流缓冲区1211对音频流播放的音量进行调节。此时,如果正常对音频流进行播放,用户将在调节音量前流缓冲区1211中的音频播放完成后听到音量变化后的音频。若流缓冲区1211所存储的音频流大小为2秒,则用户将在2秒后听到音量变化后的音频。
在接受到音量调节指令后正常对音频流进行播放,会造成音量变化的感知具有较大延迟。因此需要对流缓冲区1211和渲染队列1213进行倒带操作,具体为将流缓冲区1211和渲染队列1213中读取音频流的指针,按照音频流播放相反的方向移动。倒带后,流缓冲区1211重新从音频播放应用1150中获取音频流,对音频流进行音量调节操作,随后将调节音量后的音频流重写到重采样缓冲区1212和渲染队列1213,以便用户迅速感知音量变换。当流缓冲区1211从音频播放应用1213获取音频流不及时,以致服务器模块1200不能及时向设备缓冲区1231提供音频流,则会造成流缓冲区1211欠载,导致用户在进行音量调节后,播放音频流的音频输出设备1410或1420在播放音频时会出现毛刺的杂音。
为此,本发明在系统1000中提供了调节模块1240,以计算服务器模块1210从音频播放应用1110获取音频流的采样频率,通过介入调节采样频率,避免系统1000长时间播放音频文件或在调节音量时出现音频跳变和毛刺的杂音。调节模块1240包括比例调节模块1141,微分调节模块1242和积分调节模块1243。调节模块1240分别确定比例调节模块1141的比例调节系数,微分调节模块1242的微分调节系数和积分调节模块1243的积分调节模块系数,后续将会对确定各系数的过程进行详细说明。
比例调节模块1141,微分调节模块1242和积分调节模块1243分别根据确定的各系数以及计算调剂频率计算公式计算比例调节频率,微分调节频率以及积分调节频率。调节模块1240综合计算的比例调节频率,微分调节频率以及积分调节频率最终确定流缓冲区1211的采样频率,以便流缓冲区1211按照适当的频率从音频播放应用1110中采样音频流进行处理和播放。
图3示出了根据本发明的一个示范性实施例的一种提供音频播放服务的方法300的流程示意图。方法300在计算设备中的操作系统中执行,如在一种提供音频播放服务的系统1000中执行。如图3所示,一种提供音频播放服务的方法300始于步骤S310,播放控制模块1120未接受到音量调节指令时,音频播放应用1110加载并解析音频文件得到音频流。音频文件存储在系统1000所在计算设备中的存储中或经由网络获取得到。
随后,执行步骤S320,播放控制模块1120接收用户的音量调节指令,指示服务器模块1210进行音频流的音量调节。
随后,执行步骤S330,调节模块1240计算服务器模块1210从音频播放应用1110获取音频流的采样频率。调节模块1240计算服务器模块1210获取音频流采样频率时,通过PID控制算法计算采样频率。PID控制算法是一种当被控对象的结构和参数不能完全掌握,或得不到精确的数学模型,控制理论的其他技术难以,控制器的结构和参数必须依靠经验和现场调试进行确定的一种较为方便的算法。
在本发明中应用PID控制算法计算采样频率时,采用比例调节模块1241、微分调节模块1242和积分调节模块1243综合对采样频率进行计算。其中,比例调节模块1241计算比例调节频率,比例调节频率控制采样频率的快慢;微分调节模块1243计算微分调节频率,微分调节频率控制服务器模块1210在计算的比例调节频率下,流缓冲区1211中缓存的音频流大小与流缓冲区大小之间的稳态误差,即静差;积分调节模块1242计算积分调节频率,积分调节频率消除上述静差,使比例调节频率,微分调节频率和积分调节频率共同让流缓冲区1211的采样频率达到稳定状态,避免流缓冲区1211出现上溢或下溢。
在调节模块1240计算采样频率时,先确定比例调节模块1241的比例调节系数,积分调节模块1243的积分调节系数,微分调节模块1242的微分调节系数。
在确定比例调节系数时,通过下式确定比例调节系数:
其中,为比例调节频率,为比例调节系数,为默认采样频率与当前采样频率测量值之差。默认采样频率为流缓冲区1211从音频播放应用1110,根据系统1000的配置文件设置的采集音频流的频率。配置文件还设置有系统1000所允许的流缓冲区1211的最大采样频率。
通过设置当前采样频率为最大采样频率乘系数m,m大于60%,小于70%,本发明对m的具体取值不作限制。逐渐将比例调节系数从0开始增大,直至比例调节频率输出特性曲线出现震荡,随后降低比例调节系数,直至比例调节频率输出特性曲线震荡消失,记录此时的比例调节系数,将此时的比例调节系数乘以系数m作为计算采样频率的比例调节系数 。
在确定比例调节系数后,按照下式确定积分调节系数:
将上一步中确定的比例调节系数代入上式,并设置积分调节系数为一个较大的值。随后逐渐将积分调节系数从较大值开始减小,直至此时的采样频率输出特性曲线出现震荡,再增大积分调节系数,直至此时的采样频率输出特性曲线震荡消失。记录此时的积分调节系数,将此时的积分调节系数的150%~180%作为计算采样频率的积分调节系数。
最后,按照下式确定微分调节系数:
将确定的比例调节系数代入上式,并设置微分调节系数为0。随后逐渐将微分调节系数从0开始增大,直至此时的采样频率输出特性曲线出现震荡,再减小微分调节系数,直至此时的采样频率输出特性曲线震荡消失。记录此时的微分调节系数,将此时的微分调节系数的30%作为计算采样频率的微分调节系数 。
调节模块1240在计算完毕比例调节系数,积分调节系数和微分调节系数后,计算采样频率。首先,比例调节模块按照如下公式确定比例调节频率:
其中,为比例调节频率,为所确定的比例调节系数,为默认采样频率与当前采样频率测量值之差,调节模块获取流缓冲区1211当前从音频播放应用1130的采样频率作为当前采样频率测量值,并与系统1000配置文件中的默认采样频率计算得到,随后将 和带入上式计算得到。
其次,积分调节模块同理按照如下公式确定积分调节频率:
最后,微分调节模块按照如下公式确定微分调节频率:
最后,综合比例调节频率,积分调节频率和微分调节频率计算采样频率:
随后,执行步骤S340,服务器模块1210中的流缓冲区1211根据采样频率从音频播放应用1110中获取音频流,对音频流进行音量调节。流缓冲区1211按照计算得到的采样频率获取音频流,即不会发生上溢和下溢。服务器模块1210还包括重采样缓冲区1212。流缓冲区1211和重采样缓冲区1212在播放控制模块1120接收到音量调节指令后,将已经从音频播放应用1110读取的音频流进行倒带操作。此时流缓冲区1211和渲染队列1213中存储有已经缓存要提供给设备缓冲区1231的音频流,但未进行音量调节操作,为了尽快使用户感知音量变化,因此需要对已经存储的音频进行倒带操作。
流缓冲区1211根据调节模块1240计算的采样频率重新从音频播放应用1110获取音频流,并对音频流按照音频调节指令进行音量调节,将音量调节后的音频流传输到重采样缓冲区1212,覆盖被倒带操作的音频流。
当流缓冲区1211进行倒带操作后,需要迅速从音频播放应用1110获取音频流,以便缓冲足够的音频流充满流缓冲区,调节模块1240会计算调整采样频率,使流缓冲区1211保持恒定的音频流的大小。当流缓冲区1211进行倒带操作后,流缓冲区1211中的音频流队列太少,因此调节模块1240会提高采样频率,避免音频流播放时发生毛刺。同时,为了避免采样频率输出特性曲线发生震荡,会以继续较小的步长逐步提高采样频率。
重采样缓冲区1212将音量调节后的音频流转化为适于音频输出设备1410或1420读取的格式,以便硬件抽象层1300从系统层1200获取音量调节后的音频流,并传输给音频输出设备1410或1420进行音频播放。
最后,执行步骤S340,硬件抽象层1300向与系统连接的音频输出设备1410或1420提供通信接口,并从系统层1200获取音量调节后的音频流,通过通信接口输出至音频输出设备1410或1420进行音频播放,此时音频输出设备播放音频流时不会出现跳变和毛刺的杂音。
本发明中的一种提供音频播放服务的方法适于在一种提供音频播放服务的系统中执行。系统包括应用层,系统层和抽象层,应用层包括音频播放应用,系统层包括服务器模块和调节模块。本发明的方法中,音频播放应用加载并解析音频文件得到音频流,通过调节模块计算服务器模块从音频播放应用获取音频流的采样频率,从而服务器模块根据采样频率从音频播放应用中获取音频流,从而能够以适当频率获取音频流传输给播放设备,避免音频输出设备播放音频时出现音量跳变的现象。
并进一步的,应用层还包括播放控制模块,服务器模块包括流缓冲区和重采样缓冲区,播放控制模块接收用户的音量调节指令,流缓冲区和重采样缓冲区通过将已经从音频播放应用读取的音频流进行倒带操作,流缓冲区重新从音频播放应用获取音频流,并对音频流按照音频调节指令进行音量调节,将音量调节后的音频流传输到重采样缓冲区,覆盖被倒带操作的音频流,从而能够让音频输出设备迅速播放音量调节后的音频流,使用户没有延迟的听到音频播放的音量变化,准确把握音量调节的幅度。流缓冲区重新从音频播放应用获取音频流时,根据调节模块所计算的采样频率从音频播放应用重获取音频流,从而避免系统在调节音量时出现播放毛刺的现象。
在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下被实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
A5、如A4所述的系统,其中,所述比例调节模块适于按照如下公式确定比例调节频率:
A6、如A5所述的系统,其中,所述积分调节模块适于按照如下公式确定积分调节频率:
A7、如A6所述的系统,其中,所述微分调节模块适于按照如下公式确定微分调节频率:
A8、如A5-A6所述的系统,其中,所述调节单元还适于分别确定所述比例调节模块的比例调节系数,所述积分调节模块的积分调节系数,所述微分调节模块的微分调节系数。
B13、如B12所述的方法,包括步骤:
所述比例调节模块按照如下公式确定比例调节频率:
B14、如B13所述的方法,还包括:
所述积分调节模块按照如下公式确定积分调节频率:
B15、如B14所述的方法,还包括:
所述微分调节模块按照如下公式确定微分调节频率:
B16、如B13-B15所述的方法,还包括步骤:
所述调节单元分别确定所述比例调节模块的比例调节系数,所述积分调节模块的积分调节系数,所述微分调节模块的微分调节系数。
类似地,应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。
本领域那些技术人员应当理解在本文所公开的示例中的设备的模块或单元或组间可以布置在如该实施例中所描述的设备中,或者可替换地可以定位在与该示例中的设备不同的一个或多个设备中。前述示例中的模块可以组合为一个模块或者此外可以分成多个子模块。
本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组间组合成一个模块或单元或组间,以及此外可以把它们分成多个子模块或子单元或子组间。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。
此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在下面的权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。
此外,所述实施例中的一些在此被描述成可以由计算机系统的处理器或者由执行所述功能的其它装置实施的方法或方法元素的组合。因此,具有用于实施所述方法或方法元素的必要指令的处理器形成用于实施该方法或方法元素的装置。此外,装置实施例的在此所述的元素是如下装置的例子:该装置用于实施由为了实施该发明的目的的元素所执行的功能。
这里描述的各种技术可结合硬件或软件,或者它们的组合一起实现。从而,本发明的方法和设备,或者本发明的方法和设备的某些方面或部分可采取嵌入有形媒介,例如软盘、CD-ROM、硬盘驱动器或者其它任意机器可读的存储介质中的程序代码(即指令)的形式,其中当程序被载入诸如计算机之类的机器,并被所述机器执行时,所述机器变成实践本发明的设备。
在程序代码在可编程计算机上执行的情况下,计算设备一般包括处理器、处理器可读的存储介质(包括易失性和非易失性存储器和/或存储元件),至少一个输入装置,和至少一个输出装置。其中,存储器被配置用于存储程序代码;处理器被配置用于根据该存储器中存储的所述程序代码中的指令,执行本发明的设备停机状态的判断方法。
以示例而非限制的方式,计算机可读介质包括计算机存储介质和通信介质。计算机可读介质包括计算机存储介质和通信介质。计算机存储介质存储诸如计算机可读指令、数据结构、程序模块或其它数据等信息。通信介质一般以诸如载波或其它传输机制等已调制数据信号来体现计算机可读指令、数据结构、程序模块或其它数据,并且包括任何信息传递介质。以上的任一种的组合也包括在计算机可读介质的范围之内。
如在此所使用的那样,除非另行规定,使用序数词“第一”、“第二”、“第三”等等来描述普通对象仅仅表示涉及类似对象的不同实例,并且并不意图暗示这样被描述的对象必须具有时间上、空间上、排序方面或者以任意其它方式的给定顺序。
尽管根据有限数量的实施例描述了本发明,但是受益于上面的描述,本技术领域内的技术人员明白,在由此描述的本发明的范围内,可以设想其它实施例。此外,应当注意,本说明书中使用的语言主要是为了可读性和教导的目的而选择的,而不是为了解释或者限定本发明的主题而选择的。因此,在不偏离所附权利要求书的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。对于本发明的范围,对本发明所做的公开是说明性的,而非限制性的,本发明的范围由所附权利要求书限定。
Claims (9)
1.一种提供音频播放服务的系统,所述系统与一个或多个音频输出设备通信连接,并包括应用层,系统层和硬件抽象层,其中,所述应用层包括音频播放应用和播放控制模块,所述音频播放应用适于加载并解析音频文件得到音频流,所述播放控制模块适于接收用户的音量调节指令,指示服务器模块进行音频流的音量调节;
所述系统层包括服务器模块和调节模块,所述调节模块适于计算所述服务器模块从所述音频播放应用获取所述音频流的采样频率,所述服务器模块适于根据所述采样频率从所述音频播放应用中获取音频流,所述服务器模块包括流缓冲区和重采样缓冲区,所述流缓冲区和重采样缓冲区适于将已经从所述音频播放应用读取的音频流进行倒带操作,所述流缓冲区还适于根据所述调节模块计算的采样频率重新从所述音频播放应用获取音频流,并对音频流按照所述音频调节指令进行音量调节,将音量调节后的音频流传输到所述重采样缓冲区,覆盖被倒带操作的音频流,所述重采样缓冲区适于将音量调节后的音频流转化为适于所述音频输出设备读取的格式;
所述硬件抽象层适于向与所述系统连接的音频输出设备提供通信接口,并从所述系统层获取音量调节后的音频流,通过所述通信接口输出至音频输出设备进行音频播放。
2.如权利要求1所述的系统,其中,所述流缓冲区和重采样缓冲区进一步适于:将读取所述音频流的指针,按照所述音频流播放相反的方向移动。
4.一种提供音频播放服务的方法,适于在如权利要求1-3中任一项所述的系统中执行,所述系统与一个或多个音频输出设备通信连接,并包括应用层,系统层和硬件抽象层,所述应用层包括音频播放应用和播放控制模块,所述系统层包括服务器模块和调节模块,所述方法包括:
所述音频播放应用加载并解析音频文件得到音频流;
所述播放控制模块接收用户的音量调节指令,指示所述服务器模块进行音频流的音量调节;
所述调节模块计算所述服务器模块从所述音频播放应用获取所述音频流的采样频率;
所述服务器模块根据所述采样频率从所述音频播放应用中获取音频流,对所述音频流进行音量调节;以及
所述硬件抽象层向与所述系统连接的音频输出设备提供通信接口,并从所述系统层获取音量调节后的音频流,通过所述通信接口输出至音频输出设备进行音频播放。
5.如权利要求4所述的方法,其中,所述服务器模块包括流缓冲区和重采样缓冲区,所述对所述音频流进行音量调节包括:
所述流缓冲区和重采样缓冲区在所述播放控制模块接收到所述音量调节指令后,将已经从所述音频播放应用读取的音频流进行倒带操作;
所述流缓冲区根据所述调节模块计算的采样频率重新从所述音频播放应用获取音频流,并对音频流按照所述音频调节指令进行音量调节,将音量调节后的音频流传输到所述重采样缓冲区,覆盖被倒带操作的音频流;
所述重采样缓冲区将音量调节后的音频流转化为适于所述音频输出设备读取的格式,以便所述硬件抽象层从所述系统层获取音量调节后的音频流,并传输给音频设备进行音频播放。
6.如权利要求5所述的方法,其中,所述流缓冲区和所述重采样缓冲区将已经从所述音频播放应用读取的音频流进行倒带操作包括:
将读取所述音频流的指针,按照所述音频流播放相反的方向移动。
8.一种计算设备,包括:
一个或多个处理器;
存储器;
存储在所述存储器中的如权利要求1-3中任意一项所述的系统;以及
一个或多个装置,所述一个或多个装置包括用于执行根据权利要求4至7所述的方法中的任一方法的指令。
9.一种存储一个或多个程序的计算机可读存储介质,所述一个或多个程序包括指令,所述指令当由计算设备执行时,使得所述计算设备执行根据权利要求4至7所述的方法中的任一方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110284154.8A CN112803907B (zh) | 2021-03-17 | 2021-03-17 | 一种提供音频播放服务的系统和方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110284154.8A CN112803907B (zh) | 2021-03-17 | 2021-03-17 | 一种提供音频播放服务的系统和方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112803907A CN112803907A (zh) | 2021-05-14 |
CN112803907B true CN112803907B (zh) | 2021-07-16 |
Family
ID=75817162
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110284154.8A Active CN112803907B (zh) | 2021-03-17 | 2021-03-17 | 一种提供音频播放服务的系统和方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112803907B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113254917B (zh) * | 2021-06-01 | 2021-10-15 | 武汉深之度科技有限公司 | 一种录音权限管理方法、计算设备及存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1508651A (zh) * | 2002-07-30 | 2004-06-30 | O2 | 用于计算设备的低功率数字音频解码/播放系统 |
CN103714837A (zh) * | 2013-12-18 | 2014-04-09 | 福州瑞芯微电子有限公司 | 播放音频文件的电子设备与方法 |
CN105912295A (zh) * | 2015-12-01 | 2016-08-31 | 乐视致新电子科技(天津)有限公司 | 一种音频数据处理方法及装置 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8861926B2 (en) * | 2011-05-02 | 2014-10-14 | Netflix, Inc. | Audio and video streaming for media effects |
CN104168431B (zh) * | 2014-08-06 | 2017-08-25 | 青岛海信宽带多媒体技术有限公司 | 一种音量调节方法、装置和一种机顶盒 |
EP3455719A1 (en) * | 2016-05-10 | 2019-03-20 | Google LLC | Implementations for voice assistant on devices |
CN106528040A (zh) * | 2016-11-02 | 2017-03-22 | 福建星网视易信息系统有限公司 | 改进安卓设备音质的方法及装置 |
-
2021
- 2021-03-17 CN CN202110284154.8A patent/CN112803907B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1508651A (zh) * | 2002-07-30 | 2004-06-30 | O2 | 用于计算设备的低功率数字音频解码/播放系统 |
CN103714837A (zh) * | 2013-12-18 | 2014-04-09 | 福州瑞芯微电子有限公司 | 播放音频文件的电子设备与方法 |
CN105912295A (zh) * | 2015-12-01 | 2016-08-31 | 乐视致新电子科技(天津)有限公司 | 一种音频数据处理方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN112803907A (zh) | 2021-05-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6513749B2 (ja) | 音声アシストシステム、サーバ装置、その音声アシスト方法、及びコンピュータが実行するためのプログラム | |
JP5030617B2 (ja) | デジタル・オーディオ・プレーヤ上でrssコンテンツをレンダリングするためのrssコンテンツ管理のための方法、システム、およびプログラム(デジタル・オーディオ・プレーヤ上でrssコンテンツをレンダリングするためのrssコンテンツ管理) | |
KR102048893B1 (ko) | 산술연산 로직 유닛 아키텍처 | |
CN112803907B (zh) | 一种提供音频播放服务的系统和方法 | |
US11481628B2 (en) | Methods and apparatus for audio equalization based on variant selection | |
EP3382707A1 (en) | Audio file re-recording method, device and storage medium | |
US20080312760A1 (en) | Method and system for generating and processing digital content based on text-to-speech conversion | |
US11902760B2 (en) | Methods and apparatus for audio equalization based on variant selection | |
US8214564B2 (en) | Content transfer system, information processing apparatus, transfer method, and program | |
JP6856115B2 (ja) | 情報処理方法および情報処理装置 | |
US10003901B1 (en) | Graphical monitor mixing system that uses a stage plot to create spatially accurate sound | |
EP4339759A1 (en) | Music playing method and device | |
KR20210027707A (ko) | 라우드니스 정규화 방법 및 시스템 | |
JP7430672B2 (ja) | 端末装置、送信方法、送信プログラム及び情報処理システム | |
CN112435678A (zh) | 一种音频播放处理方法 | |
US9313244B2 (en) | Content reproduction apparatus, content reproduction method, and computer-readable recording medium having content reproduction program recorded thereon | |
US20050096915A1 (en) | Contents reproducing system and contents reproducing program | |
WO2005104125A1 (ja) | 記録再生装置、同時記録再生制御方法、および同時記録再生制御プログラム | |
CN111312280B (zh) | 用于控制语音的方法和装置 | |
US11895355B2 (en) | Method and system for effective adaptive bitrate streaming | |
US9378300B2 (en) | Interface method and display device | |
KR20120077504A (ko) | 멀티미디어 콘텐츠 처리 방법 및 시스템 | |
KR102287497B1 (ko) | 플랫폼 적응형 오디오 정규화 방법 및 시스템 | |
US20220319550A1 (en) | Systems and methods to edit videos to remove and/or conceal audible commands | |
US20220201396A1 (en) | Filter generation apparatus and recording medium |
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 |