多声道的音频播放方法及装置、电子设备、存储介质与流程

文档序号:14881413发布日期:2018-07-07 09:48阅读:242来源:国知局

本发明涉及音频处理技术领域,特别涉及一种多声道的音频播放方法及装置、电子设备、计算机可读存储介质。



背景技术:

数字电视业务已经在全球范围内大量普及,电视多语言同时存在是非常重要的功能,因此一个普通的音视频流中通常带有多路音频,每路音频对应一种语言,并且每路音频都有独立的PID(Packet Identifier,包标示符)进行区分。

目前电视业务已经逐步转为全数字电视,在数字电视的三大标准(DVB,ISDB,ATSC)里音频语言都允许有Dual Mono(双声道)的情况。Dual Mono是指左右声道传输不同的音频数据,且左右声道的音频数据共用一个PID。当左右声道传输不同的音频数据,且电视的声道输出设置为立体声(Stereo)时就会同时听到两个声音,声音存在重音现象。现有技术通过设置一个语言菜单切换,以供用户选择播放哪个声道,但是在选择之前,如果默认声道输出设置为立体声就会马上播放两个声音。或者在普通音视频节目与Dual Mono节目互相切换时,声道输出没有能够正确自动切换,就会播放两种声音。

上述通过用户手动选择一种声道进行输出来避免重音现象,需要依赖于用户操作,增加了音视频播放操作的步骤,导致播放操作相对繁琐。



技术实现要素:

为了解决相关技术中存在的通过用户手动选择一个声道进行输出来避免重音现象,需要依赖于用户操作,增加了音视频播放操作的步骤,导致播放操作相对繁琐性问题,本发明提供了一种多声道的音频播放方法。

一方面,本发明提供了一种多声道的音频播放方法,所述方法包括:

根据音频播放请求,获取所述音频播放请求指示的音频流数据;

解析所述音频流数据,确定所述音频流数据中多个声道分别对应的音频语言;

判断是否存在至少一个声道对应的音频语言与语言配置信息指示的音频语言相同;

若是,则控制输出所述与语言配置信息指示的音频语言相同的声道的音频数据,关闭其他声道的输出。

另一方面,本发明提供了一种多声道的音频播放装置,所述装置包括:

文件获取模块,用于根据音频播放请求,获取所述音频播放请求指示的音频流数据;

语言获得模块,用于解析所述音频流数据,确定所述音频流数据中多个声道分别对应的音频语言;

语言匹配模块,用于判断是否存在至少一个声道对应的音频语言与语言配置信息指示的音频语言相同;

音频输出模块,用于当存在至少一个声道对应的音频语言与语言配置信息指示的音频语言相同时,控制输出所述与语言配置信息指示的音频语言相同的声道的音频数据,关闭其他声道的输出。

进一步的,本发明提供了一种电子设备,所述电子设备包括:

处理器;

用于存储处理器可执行指令的存储器;

其中,所述处理器被配置为执行上述多声道的音频播放方法。

此外,本发明还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序可由处理器执行完成上述多声道的音频播放方法。

本发明的实施例提供的技术方案可以包括以下有益效果:

本发明提供的技术方案,根据音频流数据中多个声道分别对应的音频语言,控制输出与语言配置信息指示的音频语言相同的声道的音频数据,关闭其他声道的输出,从而无需人工操作就可以自动从多个声道中选择一个声道进行播放,既解决了重音问题,又不增加用户的操作,解决了目前音频播放操作繁琐的缺陷。

应当理解的是,以上的一般描述和后文的细节描述仅是示例性的,并不能限制本发明。

附图说明

此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本发明的实施例,并于说明书一起用于解释本发明的原理。

图1是根据本发明所涉及的实施环境的示意图;

图2是根据一示例性实施例示出的一种装置的框图;

图3是根据一示例性实施例示出的一种多声道的音频播放方法的流程图;

图4是图3对应实施例的步骤310的细节流程图;

图5是图3对应实施例的步骤330的细节流程图;

图6是根据另一示例性实施例示出的一种多声道的音频播放方法的详细流程图

图7是根据一示例性实施例示出的一种多声道音频的播放装置的框图;

图8是图7对应实施例的文件获取模块的细节框图;

图9是图7对应实施例的语言获得模块的细节框图。

具体实施方式

这里将详细地对示例性实施例执行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本发明相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本发明的一些方面相一致的装置和方法的例子。

图1是根据一示例性实施例示出的本发明所涉及的实施环境示意图。本发明所涉及的实施环境包括智能播放设备110。智能播放设备110可以采用本发明所提供的多声道的音频播放方法对音频流数据进行播放。该音频流数据可以存储在智能播放设备110的本地数据库中。

根据需要,该实施环境还将包括提供数据,即音频流数据的数据来源。具体而言,在本实施环境中,数据来源可以为服务器130。智能播放设备110可以从服务器130获取音频流数据,进而采用本发明提供的多声道的音频播放方法,对获取的音频流数据进行播放。

应当说明的是,本发明多声道的音频播放方法,不限于在智能播放设备110中部署相应的处理逻辑,其也可以是部署于其它机器中的处理逻辑。例如,在具备数据处理能力的终端设备中部署多声道的音频播放方法的处理逻辑等。

图2是根据一示例性实施例示出的一种智能播放设备110的框图。该智能播放设备110比如可以是智能电视、智能电视机顶盒、智能音响等。

参见图2,该智能播放设备110可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上中央处理器(central processing units,CPU)222(例如,一个或一个以上处理器)和存储器232,一个或一个以上存储应用程序242或数据244的存储介质230(例如一个或一个以上海量存储设备)。其中,存储器232和存储介质230可以是短暂存储或持久存储。存储在存储介质230的程序可以包括一个或一个以上模块(图示未示出),每个模块可以包括对智能播放设备110中的一系列指令操作。更进一步地,中央处理器222可以设置为与存储介质230通信,在智能播放设备110上执行存储介质230中的一系列指令操作。智能播放设备110还可以包括一个或一个以上电源226,一个或一个以上有线或无线网络接口250,一个或一个以上输入输出接口258,和/或,一个或一个以上操作系统241,例如Android,LinuxTM,Windows ServerTM,Mac OS XTM,UnixTM,FreeBSDTM等等。下述图3、图4、图5所示实施例中所述的由智能播放设备110所执行的步骤可以基于该图2所示的智能播放设备110的结构。

本领域普通技术人员可以理解实现下述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序指令来完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。

图3是根据一示例性实施例示出的一种多声道的音频播放方法的流程图。该多声道的音频播放方法的适用范围和执行主体,例如,该方法用于图1所示实施环境的智能播放设备110。如图3所示,该多声道的音频播放方法可以由智能播放设备110执行,可以包括以下步骤。

在步骤310中,根据音频播放请求,获取所述音频播放请求指示的音频流数据;

其中,音频流数据可能包含多路音频数据(至少两路),多路音频数据彼此独立,但多路音频数据共用一个PID(包标识符)。因此,在调用该PID对应的文件时,同时调用了多路音频数据。音频流数据可以是常见的Dual Mono(双声道)音频文件,也可以包含更多声道。举例来说,某一电视节目包含汉语对话音频,英语对话音频,则汉语对话音频和英语对话音频作为音频流数据中的两路音频数据。为便于理解,本发明以音频流数据是Dual Mono音频文件为例进行说明,更多声道参照双声道实现。

需要解释的是,普通音频流数据中带有多路音频时,每路音频都有独立的PID。但是对于特殊的Dual Mono音频文件,其左、右声道传输不同的音频数据,且两路音频数据共用一个PID。因此,当请求调用该PID对应的音频文件时,由于左、右声道传输不同的音频数据,用户会同时听到两个声音,存在音频重音的问题。

针对ISDB(日本电视标准)和HATSC(欧洲电视标准)标准的电视节目,音频语言都会有双声道的情况,即左右声道传输不同语言的音频数据。举例来说,左声道传输英语对话内容,右声道传输汉语对话内容。英语对话内容和汉语对话内容共用一个PID。由此,当调用该PID对应的音频文件时,会同时输出英语对话内容和汉语对话内容,出现重音问题。现有技术通过用户手动选择一个声道的音频数据进行输出。基于上述缺陷,本发明提供了一种多声道的音频播放方法,解决播放音频流数据时出现重音的问题。

以播放电视节目为例,用户触发进行电视节目的选择,智能播放设备110接收视频播放请求的同时接收到音频播放请求。该视频播放请求和音频播放请求携带用户所选择的电视节目信息。之后,智能播放设备110从服务器130下载该电视节目对应的TS流文件,从中解析出视频流数据和音频流数据。其中,该音频流数据可能是多通道音频文件,在一种实施方式中,该音频流数据是DualMono音频文件,左右声道传输不同语言的音频数据,且左右声道的音频数据共用一个PID。

在一种示例性实施例中,如图4所示,上述步骤310具体包括:

在步骤311中,接收音频播放请求;

假设音频播放设备110为数字电视(DTV),用户触发进行电视节目的选择,数字电视接收为播放某一电视节目,由用户侧遥控器发送播放指令。根据需要,音频播放设备110在接收音频播放请求的同时,接收用户侧遥控器发送的视频播放请求。

在步骤312中,根据所述音频播放请求所携带的文件标识信息,获取所述文件标识信息对应的音频流数据。

其中,文件标识信息可以是PID,该音频播放请求可以携带PID,数字电视通过设置对应的PID过滤器,从服务器130下载的TS流文件中解析出该PID对应的音频流数据,或者从自身存储的音视频流中获取该PID对应的音频流数据。

在步骤330中,解析所述音频流数据,确定所述音频流数据中多个声道分别对应的音频语言;

其中,对音频流数据进行解析是指对获取的音频流数据进行解码还原,获得音频流数据中所携带的音频流数据的属性等信息,例如该音频流数据的声道数量。音频语言是指声道传输的音频数据所采用的语言,例如汉语、英语、日语、韩语等。

具体的,音频流数据可能是双声道,左右声道分别传输不同语言的音频数据,例如左右声道分别汉语音频和英语音频,由此通过对音频流数据进行解析,从解析结果中得到音频流数据中左声道和右声道分别对应的音频语言,例如左声道为汉语音频,右声道为英语音频。

在一种示例性实施例中,如图5所示,上述步骤330具体包括:

在步骤331中,对所述音频流数据进行解析,获得音频组件类型和音频编码方式;

具体的,智能播放设备110可以是数字电视,智能播放设备110自身部署的码流SI(Service Information,服务信息)/PSI(Program Specific Information,节目特定信息)解表模块,可以解析码流的各种表数据信息,如视频、音频、图片表数据。在ISDB标准中,可以通过解析SI/PSI表里的Audio ComponentDescriptor(音频组件描述符)数据,Audio Component Descriptor数据中包括component_type(音频组件类型)。

智能播放设备110自身部署的数字电视解码模块,可以解码数字电视码流数据,解析相关的PES(Packetized Elementary Streams,打包的原始流)数据头。其中,PES数据头包括Audio coding mode(音频编码方式)。

在步骤332中,若所述音频组件类型和/或音频编码方式指示所述音频流数据为多个声道分别传输不同音频语言的音频数据,则从所述音频流数据的解析结果中获得多个声道分别对应的音频语言。

具体的,如果音频组件描述符中的音频组件类型指示音频流数据为多个声道分别传输不同语言的音频数据,多个声道的音频数据共用一个PID,则表示播放该音频流数据会出现重音,从音频组件描述符中得到多个声道分别对应的音频语言。

为提高判断多声道的准确性,如果PES数据头中的音频编码方式指示音频流数据为多个声道分别传输不同语言的音频数据,多个声道的音频数据共用一个PID,则表示播放该音频流数据会出现重音,从音频组件描述符中得到多个声道分别对应的音频语言。

也就是说,只要音频组件类型和音频编码方式中任意一个指示音频流数据为多个声道分别传输不同语言的音频数据,则表示是多声道共用一个PID,需要根据语言配置信息选取一个声道的音频数据进行输出。相反的,如果音频组件类型和音频编码方式均指示不是多声道共用一个PID,则可以设置默认输出声道为立体声。

其中,上述步骤332具体包括:

若所述音频组件类型和/或音频编码方式携带用于标记所述音频流数据为多个声道分别传输不同语言音频数据的识别码,则从所述音频流数据的解析结果中获得多个声道分别对应的音频语言。

以音频流数据为双声道音频文件进行举例说明,用于标记双声道分别传输不同语言音频数据的识别码可以是0x02。若component_type等于0x02时,则可以认为获取的音频流数据是双声道,左右声道分别传输不同语言的音频数据,且两路音频数据共用一个PID,从双声道音频文件的解析结果(例如音频组件描述符)中获得双个声道分别对应的音频语言。

如果component_type不等于0x02,则进一步可以通过判断Audio codingmode是否等于0。其中,“0”用于在音频编码方式中标记双声道音频文件为双个声道分别传输不同语言音频数据的识别码。只要component_type=0x02和Audio coding mode=0任意一项满足,就可以认为获取的音频流数据是双声道共用一个PID。

在步骤350中,判断是否存在至少一个声道对应的音频语言与语言配置信息指示的音频语言相同;

其中,语言配置信息是智能播放设备110提前根据用户的语言喜好生成的,语言配置信息用于指示用户喜好的语言。举例来说,智能播放设备110可以根据用户历史所观看的电视节目的音频语言,来确定用户的语言喜好,进而生成语言配置信息。该语言配置信息可以存储在智能播放设备110的本地数据库中,还可以由智能播放设备110从服务器130中获取得到。

具体的,语言配置信息指示了用户喜好的语言,智能播放设备110根据多个声道分别对应的音频语言,判断是否存在与用户喜好语言相同的音频语言。在特殊情况,不存在与用户喜好语言相同的音频语言时,则可以随机选择一种音频语言的音频数据进行输出。

在一种示例性实施例中,在上述步骤350之前,还包括以下步骤:读取语言配置信息,所述语言配置信息是预先根据用户触发进行的语言选择所生成的。

需要说明的是,用户可以提前设置自己喜好的语言,智能播放设备110提前根据用户触发进行的喜好语言的选择,生成语言配置信息并存储在本地数据库中。从而当需要为用户选取合适的音频语言时,从数据库中读取语言配置信息,根据多个声道分别对应的音频语言,判断是否存在至少一个声道对应的音频语言与语言配置信息指示的音频语言相同。

在一种示例性实施例中,上述步骤350具体包括:将所述语言配置信息所携带的语言标识码,与多个声道分别对应的音频语言的语言标识码进行比较,判断是否存在至少一个声道对应的音频语言的语言标识码与该语言配置信息所携带的语言标识码匹配。

具体的,通过解析SI/PSI表里的Audio Component Descriptor数据,可以得到多个声道分别对应的音频语言的语言标识码。当是双声道时,从AudioComponent Descriptor数据中可以得到左声道音频语言的语言标识码是ISO_639_language_code,右声道音频语言的语言标识码是ISO_639_language_code_2。假设语言配置信息所携带的语言标识码为ISO_639_language_code_2,将该语言标识码与左、右声道的语言标识码进行比较,可以得出与右声道的语言标识码一致,从而可以筛选出与用户喜好的语言匹配的音频语言所在的声道。之后,可以设置对应输出为右声道,关闭左声道的输出。

在步骤370中,若是,则控制输出所述与语言配置信息指示的音频语言相同的声道的音频数据,关闭其他声道的输出。

以音频流数据是双声道音频文件为例,左声道和右声道分别传输不同语言的音频数据,假设与语言配置信息指示的音频语言相同的声道是左声道,控制输出左声道的音频数据,关闭右声道的音频数据的输出。同样的,对于多声道而言,控制输出与语言配置信息指示的音频语言相同的声道的音频数据,关闭其他声道的音频数据的输出。

现有技术对于存在多个声道的音频文件,开始播放时,存在多个声道重音的问题,由此必须由用户手动选择一个声道的音频数据进行输出,操作繁琐。本发明上述示例性实施例提供的技术方案,根据音频流数据中多个声道分别对应的音频语言,控制输出与语言配置信息指示的音频语言相同的声道的音频数据,关闭其他声道的输出,从而无需人工操作就可以自动从多个声道中选择一个声道进行播放,既解决了重音问题,又不增加用户的操作,解决了目前音频播放操作繁琐的缺陷。

图6为本发明一示例性实施例提供的多声道的音频播放方法的详细流程示意图。该示例性实施例以播放双通道音频为例,智能播放设备110可以是智能电视。如图6所示,智能播放设备110接收播放电视节目请求(S601),根据所请求节目的PID,开启PID过滤器,获得指定PID的音频文件(S602)。码流SI/PSI解表模块接口数据解析(S603),数字电视解码模块解析PES数据(S604),并保存PES解码数据(S605)。码流SI/PSI解表模块解析相关的Audio ComponentDescriptor数据(S606),如果判断得出Audio Component Descriptor数据中的component_type=0x02(S607),确认当前音频文件是双声道(S610)。相反的,component_type不等于0x02,进一步获取解析后保存的PES解码数据中的比特流信息(S608)。如果判断得出比特流信息中的Audio coding mode=0(S609),确认当前音频文件是双声道(S610)。如果Audio coding mode不等于0,设置声道输出为立体声(S616)。

当确认当前音频文件是双声道(S610)之后,读取用户设置的喜好语言(S611),判断喜好语言是否与Audio Component Descriptor数据中左声道对应的语言ISO_639_language_code相同(S612),如果相同,声道设置输出为左声道(S614)。相反的,如果与左声道语言不同,判断喜好语言是否与AudioComponent Descriptor数据中右声道对应的语言ISO_639_language_code_2相同(S613),如果相同,声道设置输出为右声道(S615)。如果与右声道语言也不同,声道设置输出为左声道(S614)。完成输出声道的设置后,输出电视声音(S617)。本发明提供的上述方案,用户无需手动选择声道即可自动选择一种声道输出,避免了重音现象的出现。

下述为本发明装置实施例,可以用于执行本发明上述智能播放设备110执行的多声道的音频播放方法实施例。对于本发明装置实施例中未披露的细节,请参照本发明多声道的音频播放方法实施例。

图7是根据一示例性实施例示出的一种多声道音频的播放装置的框图,该多声道音频的播放装置可以用于图1所示实施环境的智能播放设备110中,执行图3-图6任一所示的多声道的音频播放方法的全部或者部分步骤。如图7所示,该方法装置包括但不限于:文件获取模块710、语言获得模块730、语言匹配模块750以及音频输出模块770。

文件获取模块710,用于根据音频播放请求,获取所述音频播放请求指示的音频流数据;

语言获得模块730,用于解析所述音频流数据,确定所述音频流数据中多个声道分别对应的音频语言;

语言匹配模块750,用于判断是否存在至少一个声道对应的音频语言与语言配置信息指示的音频语言相同;

音频输出模块770,用于当存在至少一个声道对应的音频语言与语言配置信息指示的音频语言相同时,控制输出所述与语言配置信息指示的音频语言相同的声道的音频数据,关闭其他声道的输出。

上述装置中各个模块的功能和作用的实现过程具体详见上述多声道的音频播放方法中对应步骤的实现过程,在此不再赘述。

文件获取模块710比如可以是图2中的某一个物理结构有线或无线网络接口250。

语言获得模块730、语言匹配模块750以及音频输出模块770也可以是功能模块,用于执行上述多声道的音频播放方法中的对应步骤。可以理解,这些模块可以通过硬件、软件、或二者结合来实现。当以硬件方式实现时,这些模块可以实施为一个或多个硬件模块,例如一个或多个专用集成电路。当以软件方式实现时,这些模块可以实施为在一个或多个处理器上执行的一个或多个计算机程序,例如图2的中央处理器222所执行的存储在存储器232中的程序。

在一种示例性实施例中,如图8所示,所述文件获取模块710包括:

请求接收单元711,用于接收音频播放请求;

文件获取单元712,用于根据所述音频播放请求所携带的文件标识信息,获取所述文件标识信息对应的音频流数据。

进一步的,如图9所示,语言获得模块730包括:

文件解析单元731,用于对所述音频流数据进行解析,获得音频组件类型和音频编码方式;

语言获得单元732,用于在所述音频组件类型和/或音频编码方式指示所述音频流数据为多个声道分别传输不同语言的音频数据时,从所述音频流数据的解析结果中获得多个声道分别对应的音频语言。

其中,上述语言获得单元732包括:

语言获得子单元,用于在所述音频组件类型和/或音频编码方式携带用于标记所述音频流数据为多个声道分别传输不同语言音频数据的识别码时,从所述音频流数据的解析结果中获得多个声道分别对应的音频语言。

进一步的,本发明提供的多声道的音频播放装置还包括:

信息读取模块,用于读取语言配置信息,所述语言配置信息是预先根据用户触发进行的语言选择所生成的。

进一步的,上述语言匹配模块750具体包括:

语言比较单元,用于比较语言配置信息所携带的语言标识码与多个声道分别对应的音频语言的语言标识码;判断是否存在至少一个声道对应的音频语言的语言标识码与所述语言配置信息所携带的语言标识码匹配。

可选的,本发明还提供一种电子设备,该电子设备可以用于图1所示实施环境的智能播放设备110中,执行图3-图6任一所示的多声道的音频播放方法的全部或者部分步骤。所述电子设备包括:

处理器;

用于存储处理器可执行指令的存储器;

其中,所述处理器被配置为执行上述示例性实施例所述的多声道的音频播放方法。

该实施例中电子设备的处理器执行操作的具体方式已经在有关该多声道的音频播放方法的实施例中执行了详细描述,此处将不做详细阐述说明。

在示例性实施例中,还提供了一种存储介质,该存储介质为计算机可读存储介质,例如可以为包括指令的临时性和非临时性计算机可读存储介质。该存储介质存储有计算机程序,该计算机程序可由智能播放设备110的中央处理器222执行以完成上述多声道的音频播放方法。

应当理解的是,本发明并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围执行各种修改和改变。本发明的范围仅由所附的权利要求来限制。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1