1.本技术实施例涉及音频处理领域,具体涉及一种麦克风音效控制方法、计算机设备及计算机存储介质。
背景技术:
2.k歌软件可安装到智能电视机上,用户将麦克风连接智能电视机,并在k歌软件选择需要播放的歌曲,则智能电视机播放用户所选择的歌曲或者歌曲伴奏,同时用户根据所播放的歌曲或者歌曲伴奏歌唱,用户歌声由麦克风采集并发送给智能电视机,智能电视机合成用户歌声和歌曲伴奏并输出。
3.麦克风厂家提供软件开发工具包sdk给用户设置麦克风音效,用户设置麦克风音效以实现个性化和多样化的k歌效果。然而,不同的麦克风厂家按照其自身的配置要求提供不同sdk,这使得开发人员需要根据不同的sdk分别编写k歌软件的代码,以使得k歌软件能够与每个麦克风厂家提供的sdk适配,这显然会增加大量的工作量和工作负担。
技术实现要素:
4.本技术实施例提供了一种麦克风音效控制方法、计算机设备及计算机存储介质,用于根据各个麦克风厂家的麦克风音效进行音频处理。
5.本技术实施例第一方面提供了一种麦克风音效控制方法,所述方法应用于计算机设备,所述方法包括:
6.与麦克风建立连接,获取所述麦克风发送的音效列表,所述音效列表用于记录多种音效以及每种音效的音效信息;
7.在界面显示所述音效列表,以及在所述音效列表显示所述多种音效和每种音效的音效信息;
8.接收用户在所述音效列表对目标音效的选择操作,所述目标音效为所述多种音效中的任意一种;
9.向所述麦克风发送用户的音效选择操作信息,所述音效选择操作信息用于表示用户选择所述目标音效,以使所述麦克风根据所述音效选择操作信息确定用户选择所述目标音效,并根据所述目标音效的音效信息处理所述目标音效。
10.本技术实施例第二方面提供了一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现前述第一方面的方法。
11.本技术实施例第三方面提供了一种计算机存储介质,计算机存储介质中存储有指令,该指令在计算机上执行时,使得计算机执行前述第一方面的方法。
12.本技术实施例第四方面提供了一种计算机程序产品,所述计算机程序产品在计算机设备上运行时,使得所述计算机设备执行前述第一方面的方法。
13.从以上技术方案可以看出,本技术实施例具有以下优点:
14.计算机设备可获取麦克风发送的音效列表,并展示该音效列表以供用户选择其所
感兴趣的目标音效,进而计算机设备向麦克风发送用户的音效选择操作信息,从而麦克风根据该音效选择操作信息确定用户选择了目标音效,进而处理该目标音效。因此,计算机设备无需根据各种麦克风厂家对sdk的配置要求进行适配,只需获取各种麦克风提供的音效列表并展示给用户以供用户选择,之后再由麦克风处理用户所选择的目标音效即可,从而减少了开发人员编写代码的工作量,使得计算机设备可以适配各个麦克风厂家所提供的麦克风。
附图说明
15.图1为本技术实施例中网络框架示意图;
16.图2为本技术实施例中麦克风音效控制方法一个流程示意图;
17.图3为本技术实施例中麦克风音效控制方法另一流程示意图;
18.图4为本技术实施例中计算机设备的audiocompat组件一种结构示意图;
19.图5为本技术实施例中计算机设备显示的音效设置界面一种示意图;
20.图6为本技术实施例中基于audiocompat组件的结构所执行的数据处理流程一种示意图;
21.图7为本技术实施例中计算机设备一个结构示意图。
具体实施方式
22.本技术实施例提供了一种麦克风音效控制方法、计算机设备及计算机存储介质,用于根据各个麦克风厂家的麦克风音效进行音频处理。
23.请参阅图1,本技术实施例中网络框架包括:
24.麦克风和计算机设备,两者建立通信连接;
25.其中,计算机设备可以是智能电视机、车机、智能健身镜等能够提供人机交互、数据处理以及音频播放等功能的计算机设备。麦克风与计算机设备建立通信连接的方式可以是有线连接或者是无线连接。有线连接方式可以是通过线缆连接;无线连接方式可以是通过蓝牙、wi-fi(ieee802.11)、infrared(irda)、zigbee(ieee802.15.4)等多种无线技术标准建立无线连接。
26.例如,计算机设备提供usb接口,同时配备usb接收器,麦克风的usb接收器可插到usb接口上,则麦克风与计算机设备可基于无线通信协议进行数据交互,麦克风发送给计算机设备的数据将会由usb接收器传给计算机设备,计算机设备发送给麦克风的数据也会由usb接收器传给麦克风。
27.用户可使用计算机设备和麦克风实现k歌的功能,即用户在计算机设备上选择需要播放的歌曲,则计算机设备播放用户所选择的歌曲或者歌曲伴奏,同时用户根据所播放的歌曲或者歌曲伴奏歌唱,用户歌声由麦克风采集并发送给计算机设备,计算机设备合成用户歌声和歌曲伴奏并输出。
28.下面结合图1的网络框架,对本技术实施例中的麦克风音效控制方法进行描述:
29.请参阅图2,本技术实施例中麦克风音效控制方法一个实施例包括:
30.201、与麦克风建立连接,获取所述麦克风发送的音效列表,所述音效列表用于记录多种音效以及每种音效的音效信息;
31.本实施例的方法可应用于上述的计算机设备,计算机设备可基于与麦克风的通信连接,获取麦克风发送的音效列表,该音效列表用于记录多种音效以及每种音效的音效信息。该音效信息可以是关于音效的任意信息,如音效的名称、类型、麦克风厂家等信息。
32.202、在界面显示所述音效列表,以及在所述音效列表显示所述多种音效和每种音效的音效信息;
33.在获取到音效列表之后,计算机设备可在界面显示该音效列表,以及在音效列表显示多种音效以及每种音效的音效信息,以便用户了解各种音效的具体信息便于用户作出选择。
34.203、接收用户在所述音效列表对目标音效的选择操作,所述目标音效为所述多种音效中的任意一种;
35.在展示了多种音效以及每种音效的具体信息之后,用户可在界面上选择其感兴趣的目标音效,则计算机设备可接收用户的选择操作,确定用户选择了目标音效。
36.204、向所述麦克风发送用户的音效选择操作信息,以使所述麦克风根据所述音效选择操作信息确定用户选择所述目标音效,并根据所述目标音效的音效信息处理所述目标音效;
37.计算机设备确定用户选择了目标音效之后,向麦克风发送用户的音效选择操作信息,该音效选择操作信息表示了用户选择了音效列表中哪个音效,从而麦克风根据该音效选择操作信息确定用户选择了目标音效,进而根据该目标音效的音效信息处理该目标音效。
38.具体的,麦克风可基于其内置的处理程序,根据用户所选择的目标音效处理麦克风所采集到的人声音频数据,使得用户的歌声能够按照目标音效呈现。例如,用户选择演唱会音效,则其歌声经过处理之后,可使得其歌声具有演唱会音效。
39.本实施例中,计算机设备可获取麦克风发送的音效列表,并展示该音效列表以供用户选择其所感兴趣的目标音效,进而计算机设备向麦克风发送用户的音效选择操作信息,从而麦克风根据该音效选择操作信息确定用户选择了目标音效,进而处理该目标音效。因此,计算机设备无需根据各种麦克风厂家对sdk的配置要求进行适配,只需获取各种麦克风提供的音效列表并展示给用户以供用户选择,之后再由麦克风处理用户所选择的目标音效即可,从而减少了开发人员编写代码的工作量,使得计算机设备可以适配各个麦克风厂家所提供的麦克风。
40.下面将在前述图2所示实施例的基础上,进一步详细地描述本技术实施例。请参阅图3,本技术实施例中麦克风音效控制方法另一实施例包括:
41.301、与麦克风建立连接,获取所述麦克风发送的音效列表,所述音效列表用于记录多种音效以及每种音效的音效信息;
42.本实施例中,计算机设备可安装k歌软件,该k歌软件可预先配置audiocompat组件,该audiocompat组件作为一个实例类,其包括接口层apiinterface、接口的代理端apiinterfaceproxy以及接口的服务端apiinterfaceproxyservice。其中,接口层apiinterface用于定义该代理端与该服务端之间的接口函数。
43.如图4所示,计算机设备的操作系统安装了karaokeapp(k歌软件),该操作系统可以是安卓系统、ios系统、linux系统等等。该k歌软件配置audiocompat组件,audiocompat组
件包括接口层apiinterface、接口的代理端apiinterfaceproxy以及接口的服务端apiinterfaceproxyservice。例如,当操作系统为安卓系统时,代理端与服务端之间可基于aidl语言进行数据交互。此外,服务端的功能可分为两部分,包括audioreceiver和audiooutput,audioreceiver负责接收麦克风采集到的人声pcm(脉冲编码调制,pulsecode modulation)数据,audiooutput负责输出伴奏的pcm数据。
44.其中,aidl即android接口定义语言(androidinterfacedefinition language),为了使其他的进程也可以访问本进程提供的服务,android使用aidl来公开服务的接口,它定义了本进程可以为其他进程提供的服务,即定义了一些方法,其他进程就可以通过rpc(远程调用)来调用这些方法,从而获得服务。
45.因此,在安装了k歌软件之后,计算机设备可加载audiocompat组件,并建立audiocompat组件中服务端与麦克风的连接,调用该服务端接收麦克风发送的音效列表。
46.302、在界面显示所述音效列表,以及在所述音效列表显示所述多种音效和每种音效的音效信息;
47.如图5所示,计算机设备可显示音效设置界面,并在音效设置界面显示多种音效以及每种音效对应的音效信息,如音效名称,音效名称可以音效的类型进行命名,则音效名称即表示了音效的类型,如tv音效、剧场音效、演唱会音效或者录音棚音效等等。当然,除了显示音效的名称,还可显示音效的其他信息,如显示音效的特点、音效的适用场景等关于音效的特征信息,以便用户识别,方便用户作出选择。
48.本实施例中,音效列表还可包括每种音效的音效扩展字段,该音效扩展字段可以是麦克风厂家设置的用于描述音效的任意字段,例如该音效扩展字段的字段值可包括音效图片链接,该音效图片链接包含了音效对应的展示图片。因此,在音效列表显示各种音效时,除了显示音效的名称,还可根据音效的音效图片链接显示音效对应的展示图片,从而便于用户根据音效图片选择其感兴趣的音效。
49.303、接收用户在所述音效列表对目标音效的选择操作,所述目标音效为所述多种音效中的任意一种;
50.在显示多种音效之后,用户可在音效设置界面点击选择目标音效,则计算机设备根据用户的选择操作确定用户选择目标音效。
51.具体的,计算机设备可调用audiocompat组件中的代理端接收用户在音效列表对目标音效的选择操作,进而该代理端向audiocompat组件中的服务端发送用户对音效的选择操作信息,即该代理端通知该服务端用户选择了目标音效。
52.304、向所述麦克风发送用户的音效选择操作信息,以使所述麦克风根据所述音效选择操作信息确定用户选择所述目标音效,并根据所述目标音效的音效信息处理所述目标音效;
53.在接收到用户的音效选择操作信息之后,代理端基于audiocompat组件中接口层定义的代理端与服务端之间的接口函数,调用代理端向服务端发送用户的音效选择操作信息,之后,调用服务端向麦克风发送用户的音效选择操作信息,以便麦克风根据该音效选择操作信息确定用户选择目标音效,进而根据该目标音效的音效信息处理该目标音效。
54.其中,音效选择操作信息表示用户所选择的目标音效。具体的,音效选择操作信息可描述用户选择了音效列表中第几行第几列的音效,也可以是直接描述用户所选择的音效
的音效名称,从而麦克风可根据音效选择操作信息所描述的内容确定用户所选择的音效。
55.305、使用所述audiocompat组件输出伴奏人声合成数据;
56.本实施例中,计算机设备还包括数据处理层,该数据处理层与audiocompat组件中的接口层连接,用于对音频数据进行处理。例如,如图4所示,数据处理层包括decoder、save、pitch、score等多种数据处理操作,可对接口层发送的音频数据或者发送给接口层的音频数据执行上述处理。
57.在对目标音效处理时,可使用audiocompat组件输出伴奏人声合成数据。具体的,audiocompat组件输出伴奏人声合成数据的步骤包括:服务端接收麦克风根据目标音效对采集到的人声音频数据进行处理得到的音效数据;代理端基于接口层定义的代理端与服务端之间的接口函数,向服务端发送歌曲的伴奏数据;服务端合成伴奏数据与音效数据得到伴奏人声合成数据,并输出。
58.具体的,如图4所示,服务端包括audioreceiver模块和audiooutput模块,audioreceiver模块用于接收麦克风根据目标音效对采集到的人声音频数据进行处理得到的音效数据;audiooutput模块用于向系统的驱动输出伴奏人声合成数据。
59.例如,图6为基于图4所示audiocompat组件的结构所执行的数据处理流程,麦克风采集人声音频数据,并根据用户所选择的目标音效处理该人声音频数据,得到音效数据,代理端再基于接口层所定义的代理端与服务端之间的接口函数向服务端发送歌曲的伴奏数据,进而服务端合成该音效数据与歌曲的伴奏数据得到伴奏人声合成数据。
60.其中,麦克风根据目标音效对采集到的人声音频数据进行处理得到的音效数据,其方式有多种,一种方式可以是,在麦克风的硬件usb硬件加密锁dongle中通过芯片处理。此外,除了由麦克风根据目标音效处理人声音频数据之外,还可以由麦克风厂家在系统软件的驱动层或者硬件适配层hal层软件进行处理,同样可获得该音效数据,该系统可以是安卓系统、ios系统等操作系统软件。
61.hal层(hardwareadapterlayer)是android/window/ios/firefox等现代操作系统都有的,hal可以封装对于硬件的操作,提供统一的应用程序编程接口(applicationprogramminginterface,api)给框架层(frameworklayer)。
62.上面对本技术实施例中的麦克风音效控制方法进行了描述,下面对本技术实施例中的计算机设备进行描述,本技术实施例中计算机设备一个实施例包括:
63.连接单元,用于与麦克风建立连接,获取所述麦克风发送的音效列表,所述音效列表用于记录多种音效以及每种音效的音效信息;
64.显示单元,用于在界面显示所述音效列表,以及在所述音效列表显示所述多种音效和每种音效的音效信息;
65.接收单元,用于接收用户在所述音效列表对目标音效的选择操作,所述目标音效为所述多种音效中的任意一种;
66.发送单元,用于向所述麦克风发送用户的音效选择操作信息,所述音效选择操作信息用于表示用户选择所述目标音效,以使所述麦克风根据所述音效选择操作信息确定用户选择所述目标音效,并根据所述目标音效的音效信息处理所述目标音效。
67.本实施例一种优选的实施方式中,连接单元具体用于加载audiocompat组件,所述audiocompat组件包括接口层、实现层的代理端以及实现层的服务端;建立所述服务端与所
述麦克风的连接,调用所述服务端接收所述麦克风发送的音效列表。
68.本实施例一种优选的实施方式中,所述接口层用于定义所述代理端与所述服务端之间的接口函数;
69.接收单元具体用于调用所述代理端接收用户在所述音效列表对所述目标音效的选择操作;
70.发送单元具体用于基于所述接口层定义的所述代理端与所述服务端之间的接口函数,调用所述代理端向所述服务端发送用户的所述音效选择操作信息;调用所述服务端向所述麦克风发送用户的所述音效选择操作信息。
71.本实施例一种优选的实施方式中,所述计算机设备还包括数据处理层;
72.所述audiocompat组件输出伴奏人声合成数据的步骤包括:
73.所述服务端接收所述麦克风根据所述目标音效对采集到的人声音频数据进行处理得到的音效数据;
74.所述代理端基于所述接口层定义的所述代理端与所述服务端之间的接口函数,向所述服务端发送歌曲的伴奏数据;
75.所述服务端合成所述音效数据与所述伴奏数据得到所述伴奏人声合成数据,并输出。
76.本实施例一种优选的实施方式中,所述服务端包括audioreceiver模块和audiooutput模块,所述audioreceiver模块用于接收所述麦克风根据所述目标音效对采集到的人声音频数据进行处理得到的音效数据;
77.所述audiooutput模块用于输出所述伴奏人声合成数据。
78.本实施例一种优选的实施方式中,发送单元具体用于调用所述代理端基于android接口定义语言aidl语言向所述服务端发送用户的所述音效选择操作信息。
79.本实施例一种优选的实施方式中,所述音效列表还包括每种音效的音效扩展字段,所述音效扩展字段的字段值包括音效图片链接;
80.显示单元具体用于在所述音效列表显示每种音效的音效名称,以及根据音效的音效图片链接显示音效对应的展示图片。
81.本实施例一种优选的实施方式中,所述麦克风在系统软件的驱动层或者硬件适配层hal层根据所述目标音效的音效信息处理所述目标音效;或者,所述麦克风基于usb硬件加密锁dongle,根据所述目标音效的音效信息处理所述目标音效。
82.下面对本技术实施例中的计算机设备进行描述,请参阅图7,本技术实施例中计算机设备一个实施例包括:
83.该计算机设备700可以包括一个或一个以上中央处理器(central processingunits,cpu)701和存储器705,该存储器705中存储有一个或一个以上的应用程序或数据。
84.其中,存储器705可以是易失性存储或持久存储。存储在存储器705的程序可以包括一个或一个以上模块,每个模块可以包括对计算机设备中的一系列指令操作。更进一步地,中央处理器701可以设置为与存储器705通信,在计算机设备700上执行存储器705中的一系列指令操作。
85.计算机设备700还可以包括一个或一个以上电源702,一个或一个以上有线或无线
网络接口703,一个或一个以上输入输出接口704,和/或,一个或一个以上操作系统,例如windowsservertm,macosxtm,unixtm,linuxtm,freebsdtm等。
86.该中央处理器701可以执行前述图1至图2所示实施例中计算机设备所执行的操作,具体此处不再赘述。
87.本技术实施例还提供了一种计算机存储介质,其中一个实施例包括:该计算机存储介质中存储有指令,该指令在计算机上执行时,使得该计算机执行前述图1至图2所示实施例中计算机设备所执行的操作。
88.所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
89.在本技术所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
90.所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
91.另外,在本技术各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
92.所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本技术的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本技术各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-only memory)、随机存取存储器(ram,randomaccessmemory)、磁碟或者光盘等各种可以存储程序代码的介质。