服务器上多声卡与发声设备匹配播放方法及产品与流程

未命名 07-29 阅读:112 评论:0


1.本发明涉及语音播放控制技术领域,特别涉及一种服务器上多声卡与发声设备匹配播放方法及产品。


背景技术:

2.由于加油站、加气站等危险品危化品行业的特殊性,要求在作业区域进行风险隐患预警或作业提醒;目前,实现向不同的作业区域播放不同的预警语音或提醒语音的方式主要是在服务器上安装多个独立的声卡,不过一旦出现系统重启或声卡拔插更换,会造成不同区域播放的声音混乱或无法播放声音。


技术实现要素:

3.鉴于以上所述现有技术的不足,本发明的目的在于:提供一种服务器上多声卡与发声设备匹配播放方法,以解决目前系统重启或声卡拔插更换,会造成不同区域播放的声音混乱,甚至无法播放声音的问题。
4.为实现上述目的,本发明提供以下方案:一种服务器上多声卡与发声设备匹配播放方法,其包括以下步骤:s1:获取服务器当前安装的每个声卡的名称;s2:根据预设的映射关系表中指定的关键字,确定名称中包含关键字的声卡,并根据所述映射关系表中指定的关键字与发声设备的映射关系,确定名称中包含关键字的声卡与发声设备的映射关系;其中,所述映射关系表中指定有至少两个不同的关键字,且关键字与发声设备为一对一的映射关系;s3:根据名称中包含关键字的声卡与发声设备的映射关系,对应生成用于播放适配发声设备的声音输出场景的音频文件的控制指令;s4:根据所述控制指令,播放对应的音频文件,并经对应的声卡处理后通过声卡所映射的发声设备播放出声音。
5.在一种具体的实施方式中,步骤s1中,采用声卡驱动程序检测服务器当前安装的每个声卡,并获取每个声卡的名称及声卡id。
6.在一种具体的实施方式中,步骤s2中,关键字与发声设备的映射关系由关键字字符串和发声设备的设备id表征;声卡与发声设备的映射关系由声卡的声卡id和发声设备的设备id表征。
7.在一种具体的实施方式中,步骤s3中,生成的所述控制指令中还携带有对应声卡的声卡id和对应发声设备的设备id;步骤s4中,根据所述控制指令,播放对应的音频文件,并经所述声卡id对应的声卡处理后,通过所述设备id对应的发生设备播放出声音。
8.本发明还提供一种服务器上多声卡与发声设备匹配播放装置,其包括:声卡名称获取模块,用于获取服务器当前安装的每个声卡的名称;映射关系确定模块,用于根据预设的映射关系表中指定的关键字,确定名称中包
含关键字的声卡,并根据所述映射关系表中指定的关键字与发声设备的映射关系,确定名称中包含关键字的声卡与发声设备的映射关系;其中,所述映射关系表中指定有至少两个不同的关键字,且关键字与发声设备为一对一的映射关系;控制指令生成模块,用于根据名称中包含关键字的声卡与发声设备的映射关系,对应生成用于播放适配发声设备的声音输出场景的音频文件的控制指令;播放模块,用于根据所述控制指令,播放对应的音频文件,并经对应的声卡处理后通过声卡所映射的发声设备播放出声音。
9.在一种具体的实施方式中,所述声卡名称获取模块采用声卡驱动程序检测服务器当前安装的每个声卡,并获取每个声卡的名称及声卡id。
10.在一种具体的实施方式中,关键字与发声设备的映射关系由关键字字符串和发声设备的设备id表征;声卡与发声设备的映射关系由声卡的声卡id和发声设备的设备id表征。
11.在一种具体的实施方式中,所述控制指令生成模块生成的所述控制指令中还携带有对应声卡的声卡id和对应发声设备的设备id;所述播放模块,用于根据所述控制指令,播放对应的音频文件,并经所述声卡id对应的声卡处理后,通过所述设备id对应的发生设备播放出声音。
12.本发明还提供一种服务器,其包括存储器和处理器,而且,所述存储器中存储有计算机程序,所述计算机程序被所述处理器执行时,实现本发明提供的服务器上多声卡与发声设备匹配播放方法。
13.本发明还提供一种多声卡播放系统,其包括:本发明提供的服务器;多个安装于所述服务器上的声卡,以及安装在不同位置的发声设备。
14.与现有技术相比,本发明的有益效果:本发明提供的服务器上多声卡与发声设备匹配播放方法,首先获取服务器当前安装的每个声卡的名称;接着,根据预设的映射关系表中指定的关键字,确定名称中包含关键字的声卡,并根据所述映射关系表中指定的关键字与发声设备的映射关系,确定名称中包含关键字的声卡与发声设备的映射关系;然后,根据名称中包含关键字的声卡与发声设备的映射关系,对应生成用于播放适配发声设备的声音输出场景的音频文件的控制指令;最后,根据所述控制指令,播放对应的音频文件,并经对应的声卡处理后通过声卡所映射的发声设备播放出声音。因此,本发明即便出现系统重启或声卡拔插更换的情况,不同位置的发声设备也不会出现播放的声音混乱或无法播放声音,从而节约人工修复语音播放故障的成本。
15.附图说明:图1为本发明服务器上多声卡与发声设备匹配播放方法的流程示意图;图2为本发明服务器上多声卡与发声设备匹配播放装置的结构示意图;图3为本发明多声卡播放系统的结构示意图。
具体实施方式
16.下面结合附图及具体实施例对本发明作进一步的详细描述。但不应将此理解为本发明上述主题的范围仅限于以下的实施例,凡基于本发明内容所实现的技术均属于本发明
的范围。
17.如图1所示,本发明服务器上多声卡与发声设备匹配播放方法,其包括以下步骤:s1:获取服务器当前安装的每个声卡的名称;s2:根据预设的映射关系表中指定的关键字,确定名称中包含关键字的声卡,并根据所述映射关系表中指定的关键字与发声设备的映射关系,确定名称中包含关键字的声卡与发声设备的映射关系;其中,所述映射关系表中指定有至少两个不同的关键字,且关键字与发声设备为一对一的映射关系;s3:根据名称中包含关键字的声卡与发声设备的映射关系,对应生成用于播放适配发声设备的声音输出场景的音频文件的控制指令;s4:根据所述控制指令,播放对应的音频文件,并经对应的声卡处理后通过声卡所映射的发声设备播放出声音。
18.具体的,在步骤s1中,可采用alsa-utils软件等声卡驱动程序来检测服务器当前安装的每个声卡,并获取每个声卡的名称及声卡id。
19.在步骤s2中,关键字与发声设备的映射关系由关键字字符串和发声设备的设备id表征,即该映射关系可表示为(string[keywords]

deviceid);声卡与发声设备的映射关系由声卡的声卡id和发声设备的设备id表征,即该映射关系可表示为(card id

device id)。
[0020]
在步骤s3中,生成的控制指令中还携带有对应声卡的声卡id和对应发声设备的设备id;如此,在执行步骤s4时,根据控制指令,播放对应的音频文件,并经该控制指令携带的声卡id对应的声卡处理后,通过该控制指令携带的设备id对应的发生设备播放出声音。
[0021]
以加油站的卸油区和加油区独立播放声音的场景为例,服务器采用单台linux服务器,其中,linux服务器利用mplayer播放软件播放声音,在linux服务器上安装pcie声卡和usb免驱声卡;同时,在卸油区和加油区分别安装一个喇叭,而且,要求在加油区的喇叭播放禁止抽烟、禁止打电话、加油6步法和坐防撞栏预警等提示语音;要求在卸油区的喇叭播放禁止抽烟、禁止打电话、卸油8步法和周界入侵预警的提示语音。
[0022]
假设规定如下:pcie声卡用于处理卸油区的音频文件,pcie声卡的关键字是“alc892 analog”,加油区的喇叭的设备id为0;usb免驱声卡用于处理加油区加油区的音频文件,usb免驱声卡的关键字“usb audio”,卸油区的喇叭的设备id为1,进而预设置映射关系表为:(string[alc892 analog]

device id[0]),(string[usb audio]

device id[1])。
[0023]
当在linux服务器安装pcie声卡和usb免驱声卡或者系统重启后,alsa-utils软件会加载linux服务器上安装的所有声卡的硬件信息,并分配给每个声卡一个对应的声卡id。此时,由于上述规定中,pcie声卡需要处理卸油区的音频文件,并将处理后得到的音频信号输出给卸油区的喇叭,而usb免驱声卡需要处理加油区的音频文件,并将处理后得到的音频信号输出给加油区的喇叭,但是,目前mplayer播放软件不清楚pcie声卡和usb免驱声卡的声卡id,同时,pcie声卡与卸油区的喇叭无映射关系,usb免驱声卡与加油区的喇叭无映射关系。
[0024]
因此,执行步骤s1,即利用alsa-utils软件执行aplay
ꢀ‑
l命令查看服务器上安装所有声卡,得到声卡信息列表,该声卡信息列表中每行包含一个声卡的名称及其声卡id,从
而获取每个声卡的名称及声卡id;在得到声卡信息列表后,接着执行步骤s2,通过逐行查找识别映射关系表中的关键字string[alc892 analog]和string[usb audio],当查找到string[alc892 analog]时,该行声卡信息的声卡id为0,则pcie声卡的声卡id为0,同理,当查找到string[usb audio]时,该行声卡信息的声卡id为1,则为usb免驱声卡的声卡id为1,如此,便确定了名称中包含关键字的声卡,换言之,也得到了(string[alc892 analog]

card id[0]),(string[usb audio]

card id[1]);然后,根据映射关系表中指定的关键字与发声设备的映射关系(string[alc892 analog]

device id[0]),(string[usb audio]

device id[1]),就可以得到名称中包含关键字的声卡与发声设备的映射关系(card id[0]

device id[0]),(card id[1]

device id[1])。
[0025]
确定了名称中包含关键字的声卡与发声设备的映射关系后,接着执行步骤s3,根据名称中包含关键字的声卡与发声设备的映射关系,对应生成用于播放适配发声设备的声音输出场景的音频文件的控制指令;其中,由于规定pcie声卡需要处理卸油区的音频文件,并将处理后得到的音频信号输出给卸油区的喇叭,而usb免驱声卡需要处理加油区的音频文件,并将处理后得到的音频信号输出给加油区的喇叭,因此,根据映射关系(card id[0]

device id[0]),生成用于播放卸油区的音频文件的控制指令需要携带card id[0]和device id[0],同理,根据映射关系(card id[1]

device id[1]),生成用于播放卸油区的音频文件的控制指令需要携带card id[1]和device id[1]。
[0026]
生成了控制指令后,继续执行步骤s4,mplayer播放软件分别响应用于播放卸油区的音频文件的控制指令和用于播放卸油区的音频文件的控制指令,并行地播放卸油区和加油区的音频文件,同时,mplayer播放软件将卸油区的音频文件解析后,按照控制指令中携带的card id[0]将解析后的音频数据传输至对应的声卡,即pcie声卡,然后pcie声卡处理音频数据后,按照控制指令中携带的cardid[0]将处理生成的音频信号传输至对应的发声设备,即卸油区的喇叭,从而在卸油区播放禁止抽烟、禁止打电话、卸油8步法和周界入侵预警的提示语音;同理,mplayer播放软件将加油区的音频文件解析后,按照控制指令中携带的cardid[1]将解析后的音频数据传输至对应的声卡,即usb免驱声卡,然后usb免驱声卡处理音频数据后,按照控制指令中携带的cardid[1]将处理生成的音频信号传输至对应的发声设备,即加油区的喇叭,从而在加油区播放禁止抽烟、禁止打电话、加油6步法和坐防撞栏预警等提示语音。
[0027]
因此,本发明提供的服务器上多声卡与发声设备匹配播放方法,即便出现系统重启或声卡拔插更换的情况,不同位置的发声设备也不会出现播放的声音混乱或无法播放声音,从而节约人工修复语音播放故障的成本。
[0028]
如图2所示,本发明提供一种服务器上多声卡与发声设备匹配播放装置10,其包括:声卡名称获取模块100,用于获取服务器当前安装的每个声卡的名称;映射关系确定模块200,用于根据预设的映射关系表中指定的关键字,确定名称中包含关键字的声卡,并根据所述映射关系表中指定的关键字与发声设备的映射关系,确定名称中包含关键字的声卡与发声设备的映射关系;其中,所述映射关系表中指定有至少两个不同的关键字,且关键字与发声设备为一对一的映射关系;控制指令生成模块300,用于根据名称中包含关键字的声卡与发声设备的映射关
系,对应生成用于播放适配发声设备的声音输出场景的音频文件的控制指令;播放模块400,用于根据所述控制指令,播放对应的音频文件,并经对应的声卡处理后通过声卡所映射的发声设备播放出声音。
[0029]
具体的,所述声卡名称获取模块100采用alsa-utils软件等声卡驱动程序检测服务器当前安装的每个声卡,并获取每个声卡的名称及声卡id。其中,alsa-utils软件可执行aplay
ꢀ‑
l命令查看服务器上安装所有声卡,得到声卡信息列表,该声卡信息列表中每行包含一个声卡的名称及其声卡id,从而获取每个声卡的名称及声卡id。
[0030]
具体的,关键字与发声设备的映射关系由关键字字符串和发声设备的设备id表征,比如该映射关系可表示为(string[keywords]

device id);声卡与发声设备的映射关系由声卡的声卡id和发声设备的设备id表征,比如,该映射关系可表示为(card id

device id)。
[0031]
结合加油站的卸油区和加油区独立播放声音的场景进行说明,在声卡名称获取模块100得到声卡信息列表后,映射关系确定模块200通过逐行查找识别映射关系表中的关键字string[alc892 analog]和string[usb audio],当查找到string[alc892 analog]时,该行声卡信息的声卡id为0,则pcie声卡的声卡id为0,同理,当查找到string[usb audio]时,该行声卡信息的声卡id为1,则为usb免驱声卡的声卡id为1,如此,便确定了名称中包含关键字的声卡,换言之,也得到了(string[alc892 analog]

card id[0]),(string[usbaudio]

card id[1]);然后,根据映射关系表中指定的关键字与发声设备的映射关系(string[alc892 analog]

device id[0]),(string[usb audio]

device id[1]),就可以得到名称中包含关键字的声卡与发声设备的映射关系(card id[0]

device id[0]),(cardid[1]

device id[1])。
[0032]
控制指令生成模块300生成的所述控制指令中还携带有对应声卡的声卡id和对应发声设备的设备id;具体的,控制指令生成模块300根据映射关系(card id[0]

deviceid[0]),生成用于播放卸油区的音频文件的控制指令需要携带card id[0]和device id[0],同理,根据映射关系(cardid[1]

device id[1]),生成用于播放卸油区的音频文件的控制指令需要携带card id[1]和deviceid[1]。
[0033]
而播放模块400,用于根据所述控制指令,播放对应的音频文件,并经所述声卡id对应的声卡处理后,通过所述设备id对应的发生设备播放出声音。具体的,播放模块400采用mplayer播放软件播放声音,播放模块400分别响应用于播放卸油区的音频文件的控制指令和用于播放卸油区的音频文件的控制指令,并行地播放卸油区和加油区的音频文件,同时,播放模块400将卸油区的音频文件解析后,按照控制指令中携带的card id[0]将解析后的音频数据传输至对应的声卡,即pcie声卡,然后pcie声卡处理音频数据后,按照控制指令中携带的cardid[0]将处理生成的音频信号传输至对应的发声设备,即卸油区的喇叭,从而在卸油区播放禁止抽烟、禁止打电话、卸油8步法和周界入侵预警的提示语音;同理,播放模块400将加油区的音频文件解析后,按照控制指令中携带的cardid[1]将解析后的音频数据传输至对应的声卡,即usb免驱声卡,然后usb免驱声卡处理音频数据后,按照控制指令中携带的cardid[1]将处理生成的音频信号传输至对应的发声设备,即加油区的喇叭,从而在加油区播放禁止抽烟、禁止打电话、加油6步法和坐防撞栏预警等提示语音。
[0034]
本发明还提供一种服务器,其包括存储器和处理器,而且所述存储器中存储有计
算机程序,所述计算机程序被所述处理器执行时,实现本发明的服务器上多声卡与播放区域自动匹配方法。
[0035]
在实施时,服务器选用linux服务器,并在linux服务器上安装alsa-utils软件、mplayer播放软件,以及配置提示语音文件库,同时,还需要安装关键字查询识别程序和配置映射关系表。如此,对linux服务器安装软件和配置数据完成后,一旦系统重启或者服务器上声卡的安装状态发生变化(比如安装位置的变化或者替换新的声卡),服务器上的所有声卡仍正常工作,不会出现播放声音混乱或无法播放声音的情况,从而节约人工修复语音播放故障的成本。
[0036]
如图3所示,本发明还提供一种多声卡播放系统,其包括:服务器,多个安装于所述服务器上的声卡,以及安装在不同位置的发声设备(喇叭);其中,该服务器采用本发明提供的服务器,同时,服务器支持安装pcie声卡和usb免驱声卡。
[0037]
应该理解到,本发明所揭露的装置或设备,可通过其它的方式实现。例如所述模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,模块之间的通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性或其它的形式。
[0038]
另外,在本发明各个实施例中的各功能模块可以集成在一个处理单元中,也可以是各个模块单独物理存在,也可以两个或两个以上模块集成在一个处理单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
[0039]
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、只读存储器(rom,read-only memory)、随机存取存储器(ram,randomaccess memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
[0040]
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。

技术特征:
1.一种服务器上多声卡与发声设备匹配播放方法,其特征在于,包括以下步骤:s1:获取服务器当前安装的每个声卡的名称;s2:根据预设的映射关系表中指定的关键字,确定名称中包含关键字的声卡,并根据所述映射关系表中指定的关键字与发声设备的映射关系,确定名称中包含关键字的声卡与发声设备的映射关系;其中,所述映射关系表中指定有至少两个不同的关键字,且关键字与发声设备为一对一的映射关系;s3:根据名称中包含关键字的声卡与发声设备的映射关系,对应生成用于播放适配发声设备的声音输出场景的音频文件的控制指令;s4:根据所述控制指令,播放对应的音频文件,并经对应的声卡处理后通过声卡所映射的发声设备播放出声音。2.如权利要求1所述的服务器上多声卡与发声设备匹配播放方法,其特征在于,步骤s1中,采用声卡驱动程序检测服务器当前安装的每个声卡,并获取每个声卡的名称及声卡id。3.如权利要求2所述的服务器上多声卡与发声设备匹配播放方法,其特征在于,步骤s2中,关键字与发声设备的映射关系由关键字字符串和发声设备的设备id表征;声卡与发声设备的映射关系由声卡的声卡id和发声设备的设备id表征。4.如权利要求3所述的服务器上多声卡与发声设备匹配播放方法,其特征在于,步骤s3中,生成的所述控制指令中还携带有对应声卡的声卡id和对应发声设备的设备id;步骤s4中,根据所述控制指令,播放对应的音频文件,并经所述声卡id对应的声卡处理后,通过所述设备id对应的发生设备播放出声音。5.一种服务器上多声卡与发声设备匹配播放装置,其特征在于,包括:声卡名称获取模块,用于获取服务器当前安装的每个声卡的名称;映射关系确定模块,用于根据预设的映射关系表中指定的关键字,确定名称中包含关键字的声卡,并根据所述映射关系表中指定的关键字与发声设备的映射关系,确定名称中包含关键字的声卡与发声设备的映射关系;其中,所述映射关系表中指定有至少两个不同的关键字,且关键字与发声设备为一对一的映射关系;控制指令生成模块,用于根据名称中包含关键字的声卡与发声设备的映射关系,对应生成用于播放适配发声设备的声音输出场景的音频文件的控制指令;播放模块,用于根据所述控制指令,播放对应的音频文件,并经对应的声卡处理后通过声卡所映射的发声设备播放出声音。6.如权利要求5所述的服务器上多声卡与发声设备匹配播放装置,其特征在于,所述声卡名称获取模块采用声卡驱动程序检测服务器当前安装的每个声卡,并获取每个声卡的名称及声卡id。7.如权利要求6所述的服务器上多声卡与发声设备匹配播放装置,其特征在于,关键字与发声设备的映射关系由关键字字符串和发声设备的设备id表征;声卡与发声设备的映射关系由声卡的声卡id和发声设备的设备id表征。8.如权利要求7所述的服务器上多声卡与发声设备匹配播放装置,其特征在于,所述控制指令生成模块生成的所述控制指令中还携带有对应声卡的声卡id和对应发声设备的设备id;所述播放模块,用于根据所述控制指令,播放对应的音频文件,并经所述声卡id对应的声卡处理后,通过所述设备id对应的发生设备播放出声音。
9.一种服务器,其包括存储器和处理器,其特征在于,所述存储器中存储有计算机程序,所述计算机程序被所述处理器执行时,实现如权利要求1~4任一项所述的服务器上多声卡与发声设备匹配播放方法。10.一种多声卡播放系统,其特征在于,包括:如权利要求9所述的服务器;多个安装于所述服务器上的声卡,以及安装在不同位置的发声设备。

技术总结
本发明公开了一种服务器上多声卡与发声设备匹配播放方法及产品,该方法:首先获取服务器当前安装的每个声卡的名称;接着,根据预设的映射关系表中指定的关键字,确定名称中包含关键字的声卡,并根据映射关系表中指定的关键字与发声设备的映射关系,确定名称中包含关键字的声卡与发声设备的映射关系;然后,根据名称中包含关键字的声卡与发声设备的映射关系,生成对应的控制指令;最后,根据控制指令,播放对应的音频文件,并经对应的声卡处理后通过声卡所映射的发声设备播放出声音。因此,本发明即便出现系统重启或声卡拔插更换的情况,不同位置的发声设备也不会出现播放的声音混乱或无法播放声音,从而节约人工修复语音播放故障的成本。故障的成本。故障的成本。


技术研发人员:陈友明 陈思竹 姚锦峰
受保护的技术使用者:四川弘和通讯集团有限公司
技术研发日:2023.04.19
技术公布日:2023/7/28
版权声明

本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)

航空之家 https://www.aerohome.com.cn/

飞机超市 https://mall.aerohome.com.cn/

航空资讯 https://news.aerohome.com.cn/

分享:

扫一扫在手机阅读、分享本文

相关推荐