CN118447870A - 音频处理方法和电子设备 - Google Patents
音频处理方法和电子设备 Download PDFInfo
- Publication number
- CN118447870A CN118447870A CN202311852345.5A CN202311852345A CN118447870A CN 118447870 A CN118447870 A CN 118447870A CN 202311852345 A CN202311852345 A CN 202311852345A CN 118447870 A CN118447870 A CN 118447870A
- Authority
- CN
- China
- Prior art keywords
- audio
- sub
- electronic device
- decoded
- frame
- 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.)
- Pending
Links
- 238000003672 processing method Methods 0.000 title claims abstract description 13
- 238000004458 analytical method Methods 0.000 claims abstract description 127
- 238000005070 sampling Methods 0.000 claims abstract description 81
- 238000004422 calculation algorithm Methods 0.000 claims abstract description 78
- 238000012545 processing Methods 0.000 claims abstract description 27
- 239000000872 buffer Substances 0.000 claims description 190
- 238000000034 method Methods 0.000 claims description 173
- 230000015654 memory Effects 0.000 claims description 37
- 238000004590 computer program Methods 0.000 claims description 17
- 238000012952 Resampling Methods 0.000 claims description 14
- 230000004044 response Effects 0.000 claims description 10
- 230000007704 transition Effects 0.000 claims description 7
- 230000003044 adaptive effect Effects 0.000 claims 1
- 230000008569 process Effects 0.000 description 121
- 239000000463 material Substances 0.000 description 17
- 238000004519 manufacturing process Methods 0.000 description 12
- 238000004891 communication Methods 0.000 description 10
- 230000006870 function Effects 0.000 description 8
- 101000827703 Homo sapiens Polyphosphoinositide phosphatase Proteins 0.000 description 7
- 102100023591 Polyphosphoinositide phosphatase Human genes 0.000 description 7
- 238000010586 diagram Methods 0.000 description 7
- 238000010295 mobile communication Methods 0.000 description 6
- 230000033764 rhythmic process Effects 0.000 description 6
- 238000007726 management method Methods 0.000 description 5
- 230000008859 change Effects 0.000 description 4
- 230000014509 gene expression Effects 0.000 description 4
- 101100012902 Saccharomyces cerevisiae (strain ATCC 204508 / S288c) FIG2 gene Proteins 0.000 description 3
- 230000001133 acceleration Effects 0.000 description 3
- 238000013528 artificial neural network Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 230000003993 interaction Effects 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 101001121408 Homo sapiens L-amino-acid oxidase Proteins 0.000 description 2
- 102100026388 L-amino-acid oxidase Human genes 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 2
- 210000004027 cell Anatomy 0.000 description 2
- 238000010835 comparative analysis Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 230000005236 sound signal Effects 0.000 description 2
- 101100233916 Saccharomyces cerevisiae (strain ATCC 204508 / S288c) KAR5 gene Proteins 0.000 description 1
- 238000013529 biological neural network Methods 0.000 description 1
- 210000000988 bone and bone Anatomy 0.000 description 1
- 210000004556 brain Anatomy 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000002708 enhancing effect Effects 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 210000002569 neuron Anatomy 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
- 238000009877 rendering Methods 0.000 description 1
- 230000000717 retained effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 210000000352 storage cell Anatomy 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
- G10L25/00—Speech or voice analysis techniques not restricted to a single one of groups G10L15/00 - G10L21/00
- G10L25/27—Speech or voice analysis techniques not restricted to a single one of groups G10L15/00 - G10L21/00 characterised by the analysis technique
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
- G10L25/00—Speech or voice analysis techniques not restricted to a single one of groups G10L15/00 - G10L21/00
- G10L25/48—Speech or voice analysis techniques not restricted to a single one of groups G10L15/00 - G10L21/00 specially adapted for particular use
Landscapes
- Engineering & Computer Science (AREA)
- Computational Linguistics (AREA)
- Signal Processing (AREA)
- Health & Medical Sciences (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- Acoustics & Sound (AREA)
- Multimedia (AREA)
- Signal Processing For Digital Recording And Reproducing (AREA)
Abstract
本申请提供了音频处理方法和电子设备。在使用音频分析算法对音频进行分析,得到分析结果的场景中。用于对编码后的音频进行抽样解码等处理,加快将编码后的音频处理为与音频分析算法适配的音频,进而输入到音频分析算法中进行音频分析,得到分析结果。使用抽样解码可以使得编码后的音频被快速解码,进而加快了从编码后的音频得到分析结果的速度。
Description
技术领域
本申请涉及终端领域,尤其涉及音频处理方法和电子设备。
背景技术
基于音频进行音频分析,得到分析结果可以应用在多个领域中。这些领域包括但不限于卡点视频生成、语音识别等。不同领域对应的音频分析处理不同,得到的分析结果也不同,例如在生成卡点视频时,是分析音频中的音乐节点,后续基于音乐节点调整视频的画面使得场景与音乐节点对应实现卡点,得到卡点视频。音频的音乐节点是音频中具有特殊节拍的时间戳。该特殊节拍包括但不限于:节奏感强烈的节拍,具有过渡性(由较强节奏到较弱节奏或者由较弱节奏到较强节奏)的节拍等。
为了便于存储和传输,电子设备中存储的音频(待分析的)通常都是编码后的音频。为了更准确的对音频进行分析,在进行音频分析处理时,通常需要对音频进行解码,利用解码之后的音频进行音频分析。
但是解码的过程通常会消耗较多时间,在需要尽快得到分析结果的场景中,如何尽快基于编码后的音频得到分析结果,是值得讨论的。
发明内容
本申请提供了一种音频处理方法和电子设备,在使用音频分析算法基于编码后的音频进行分析,得到分析结果的场景中。用于加快将编码后的音频处理为与音频分析算法适配的音频,进而输入到音频分析算法中进行音频分析,得到分析结果。
第一方面,本申请提供了一种音频处理方法,该方法包括:电子设备将第一音频划分为N段子音频;该N为正整数;通过N个音频解码器对第一音频进行抽样解码,得到第二音频;其中,该N个音频解码器中的第i个音频解码器用于对该第一音频中的第i段子音频进行抽样解码;该抽样解码包括将该第i段子音频中每一音频帧的1/H进行解码;该第二音频包含的采样点数为该第一音频的采样点数的1/H;该H为大于或者等于2的整数;该i的取值为1至该N;对该第二音频进行音频分析处理,得到分析结果。
在上述实施例中,第一音频可以为实施例中的音频1。第二音频可以为实施例中的音频2(解码后的音频)。进行抽样解码可以加快对音频进行解码的速度,进而加快了从编码后的音频得到分析结果的速度。
结合第一方面,在一些实施例中,对该第二音频进行音频分析处理,得到分析结果,具体包括:在该第二音频的单位时长内包含的采样点数与第一采样点数不同时,该电子设备将该第二音频进行重采样,得到第三音频;该第三音频的单位时长内包含的采样点数与第一采样点数相同;该第一采样点数为适配音频分析算法的输入音频在该单位时长内包含的采样点数;该电子设备将该第三音频输入该音频分析算法中,得到该分析结果。
在上述实施例中,第三音频可以为实施例中的音频3(为重采样后的音频)。因为进行了抽样解码,则第二音频的采样率下降,通常会出现单位时长内包含的采样点数与第一采样点数不同的情况,因此需要重采样,得到与音频分析算法适配的第三音频。
结合第一方面,在一些实施例中,该方法还包括:该电子设备还调整该第二音频除单位时长内包含的采样点数以外的音频参数,该音频参数包括该第二音频对应的声道数、位深中的至少一个。
结合第一方面,在一些实施例中,该方法还包括:该电子设备对解码后的N段子音频进行去重处理;将去重后的N段子音频按照时间戳进行合并,将合并后的音频作为该第二音频;其中,该去重处理包括:确定解码后的第e段子音频和解码后的第e+1段子音频存在重叠;从该解码后的第e段子音频或该解码后的第e+1段子音频中移除重叠的部分;该e的取值为1至该N-1。
在上述实施例中,在将音频1(编码后的)划分为N段子音频进行解码之前,由于使用的算法精细度不够高,可能将N段子音频中相邻的两段子音频划分得存在部分重复,进而使得相邻的两段子音频在解码后的也存在重叠部分。因此在将N个音频队列中的解码帧合并得到解码后的音频1之前,还需要进行去重处理,再将去重之后的N段解码后的子音频按照时间戳进行合并,将合并后的音频作为解码后的音频1。
结合第一方面,在一些实施例中,该音频分析算法为节点分析算法,该分析结果为该第一音频中的音频节点。
结合第一方面,在一些实施例中,电子设备将第一音频划分为N段子音频之前,该方法还包括:该电子设备显示第一界面,该第一界面中包括选中的视频和第一控件;响应于针对该第一控件的操作,该电子设备确定与该视频对应的音频作为第一音频。
在上述实施例中,第一控件为基于节点分析算法对音频进行音频节点自动分析的入口,可以为下述实施例中涉及的制作控件121。
结合第一方面,在一些实施例中,该方法还包括:在得到该第一音频中的音频节点之后,该电子设备基于该第一音频中的音频节点调整该视频中至少一个视频片段,得到调整后的视频;该调整后的视频中包括该第一音频,且该调整后的视频中原音频被抑制;该调整后的视频中该第一音频的音频节点与该视频中的画面转场部分或者全部对齐。
在上述实施例中,基于节点分析算法对音频进行音频节点自动分析的方法适用场景为基于选中的视频生成卡点视频的场景。便于智能的生成卡点视频。
结合第一方面,在一些实施例中,通过N个音频解码器对第一音频进行抽样解码时,该方法还包括:该电子设备创建第i个音频解码器的读线程以及写线程;在该读线程确定第一输入缓冲区空闲时,向该第一输入缓冲区写入第一音频帧的1/H;该第一音频帧为该第i段子音频中的一帧音频;该第i个音频解码器从该第一输入缓冲区中获取第一音频帧的1/H进行解码,将解码后的第一音频帧写入第一输出缓冲区;在该读线程确定第一输入缓冲区空闲时,该写线程确定第二输出缓冲区中存在解码后的第二音频帧,且将该解码后的第二音频帧存储至第i个音频帧队列并释放该第二输出缓冲区;该第二音频帧为第一音频帧之前的音频帧。
在上述实施例中,读过程可以设置在一个线程(读线程)中,但是写过程可以设置在另一个线程(写线程)中,即读过程和写过程是并行的。这样,可以加快解码的速度。
结合第一方面,在一些实施例中,该方法还包括:在该读线程所读取音频帧的时间戳等于该第i段子音频的结束时间戳时,该电子设备将该第i个音频帧队列中的音频帧按照时间戳进行合并,得到解码后的第i段子音频。
结合第一方面,在一些实施例中,该音频分析算法为节点分析算法时,该电子设备将该第三音频输入该音频分析算法中,得到该分析结果,具体包括:该电子设备将该第三音频划分为R段子音频;该R段子音频中第j段子音频的末尾与第j+1段子音频的开始存在重叠音频;该j的取值从1至该R-1;重叠程度与该音频分析算法相关;该R大于或者等于2;基于该节点分析算法对该R段子音频进行分析,得到R段子音频各自对应的音频节点。
在上述实施例中,重叠程度与节点分析算法相关是指:节点分析算法在对一个时间戳对应的音频(音频a)进行分析时,会使用该音频a前面的一段音频(音频b)以及后面的一段音频(音频c)与该音频a进行对比分析等操作以确定音频a对应的时间戳是否为音频节点。因此如果需要获取重采样音频1中的全部音频节点,则第j段子音频与第j+1段子音频的重叠部分的长度至少等于(或者等于):音频a+音频b+音频c的长度。
结合第一方面,在一些实施例中,将该R段子音频各自对应的音频节点进行合并,得到该第一音频中的音频节点。
结合第一方面,在一些实施例中,将该R段子音频各自对应的音频节点进行合并之前,该方法还包括:删除该第j段子音频中与该第j+1段子音频中重复的音频节点。
在上述实施例中,由于R段子音频中存在重叠音频,因此该R段子音频各自对应的音频节点中可能出现重叠的音频音节。在一些可能的情况下,在进行合并之前,可以删除第j段子音频中与该第j+1段子音频中重复的音频节点。这样,得到音频1中的音频节点不会再出现重复的节点。
结合第一方面,在一些实施例中,在该第一音频的长度小于阈值时,该N等于1;在该第一音频的长度大于或者等于该阈值时,该N大于或者等于2。
在上述实施例中,对于较长的音频1,可以使用至少两个音频解码器对齐进行解码,以进一步加快解码速度。
第二方面,本申请实施例提供了一种电子设备,该电子设备包括:一个或多个处理器和存储器;该存储器与该一个或多个处理器耦合,该存储器用于存储计算机程序代码,该计算机程序代码包括计算机指令,该一个或多个处理器用于调用该计算机指令以使得该电子设备执行:将第一音频划分为N段子音频;该N为正整数;通过N个音频解码器对第一音频进行抽样解码,得到第二音频;其中,该N个音频解码器中的第i个音频解码器用于对该第一音频中的第i段子音频进行抽样解码;该抽样解码包括将该第i段子音频中每一音频帧的1/H进行解码;该第二音频包含的采样点数为该第一音频的采样点数的1/H;该H为大于或者等于2的整数;该i的取值为1至该N;对该第二音频进行音频分析处理,得到分析结果。
结合第二方面,在一些实施例中,该一个或多个处理器具体用于调用该计算机指令使得该电子设备执行:在该第二音频的单位时长内包含的采样点数与第一采样点数不同时,该电子设备将该第二音频进行重采样,得到第三音频;该第三音频的单位时长内包含的采样点数与第一采样点数相同;该第一采样点数为适配音频分析算法的输入音频在该单位时长内包含的采样点数;该电子设备将该第三音频输入该音频分析算法中,得到该分析结果。
结合第二方面,在一些实施例中,该一个或多个处理器还用于调用该计算机指令使得该电子设备执行:该电子设备还调整该第二音频除单位时长内包含的采样点数以外的音频参数,该音频参数包括该第二音频对应的声道数、位深中的至少一个。
结合第二方面,在一些实施例中,该一个或多个处理器还用于调用该计算机指令使得该电子设备执行:该电子设备对解码后的N段子音频进行去重处理;将去重后的N段子音频按照时间戳进行合并,将合并后的音频作为该第二音频;其中,该去重处理包括:确定解码后的第e段子音频和解码后的第e+1段子音频存在重叠;从该解码后的第e段子音频或该解码后的第e+1段子音频中移除重叠的部分;该e的取值为1至该N-1。
结合第二方面,在一些实施例中,该一个或多个处理器还用于调用该计算机指令使得该电子设备执行:电子设备将第一音频划分为N段子音频之前,该电子设备显示第一界面,该第一界面中包括选中的视频和第一控件;响应于针对该第一控件的操作,该电子设备确定与该视频对应的音频作为第一音频。
结合第二方面,在一些实施例中,该一个或多个处理器还用于调用该计算机指令使得该电子设备执行:在得到该第一音频中的音频节点之后,该电子设备基于该第一音频中的音频节点调整该视频中至少一个视频片段,得到调整后的视频;该调整后的视频中包括该第一音频,且该调整后的视频中原音频被抑制;该调整后的视频中该第一音频的音频节点与该视频中的画面转场部分或者全部对齐。
结合第二方面,在一些实施例中,该一个或多个处理器还用于调用该计算机指令使得该电子设备执行:通过N个音频解码器对第一音频进行抽样解码时,该电子设备创建第i个音频解码器的读线程以及写线程;在该读线程确定第一输入缓冲区空闲时,向该第一输入缓冲区写入第一音频帧的1/H;该第一音频帧为该第i段子音频中的一帧音频;该第i个音频解码器从该第一输入缓冲区中获取第一音频帧的1/H进行解码,将解码后的第一音频帧写入第一输出缓冲区;在该读线程确定第一输入缓冲区空闲时,该写线程确定第二输出缓冲区中存在解码后的第二音频帧,且将该解码后的第二音频帧存储至第i个音频帧队列并释放该第二输出缓冲区;该第二音频帧为第一音频帧之前的音频帧。第二方面,本申请实施例提供了一种电子设备,该电子设备包括:一个或多个处理器和存储器;该存储器与该一个或多个处理器耦合,该存储器用于存储计算机程序代码,该计算机程序代码包括计算机指令,该一个或多个处理器调用该计算机指令以使得该电子设备执行如第一方面中实施的方法。
结合第二方面,在一些实施例中,该一个或多个处理器还用于调用该计算机指令使得该电子设备执行:在该读线程所读取音频帧的时间戳等于该第i段子音频的结束时间戳时,该电子设备将该第i个音频帧队列中的音频帧按照时间戳进行合并,得到解码后的第i段子音频。
结合第二方面,在一些实施例中,该一个或多个处理器具体用于调用该计算机指令使得该电子设备执行:该音频分析算法为节点分析算法时,该电子设备将该第三音频划分为R段子音频;该R段子音频中第j段子音频的末尾与第j+1段子音频的开始存在重叠音频;该j的取值从1至该R-1;重叠程度与该音频分析算法相关;该R大于或者等于2;基于该节点分析算法对该R段子音频进行分析,得到R段子音频各自对应的音频节点。
结合第二方面,在一些实施例中,该一个或多个处理器还用于调用该计算机指令使得该电子设备执行:将该R段子音频各自对应的音频节点进行合并,得到该第一音频中的音频节点。
结合第二方面,在一些实施例中,该一个或多个处理器还用于调用该计算机指令使得该电子设备执行:将该R段子音频各自对应的音频节点进行合并之前,删除该第j段子音频中与该第j+1段子音频中重复的音频节点。
第三方面,本申请实施例提供了一种计算机可读存储介质,包括指令,当该指令在电子设备上运行时,使得该电子设备执行如第一方面中实施的方法。
第四方面,本申请实施例提供了一种芯片系统,该芯片系统应用于电子设备,该芯片系统包括一个或多个处理器,该处理器用于调用计算机指令以使得该电子设备执行如第一方面实施的方法。
第五方面,本申请实施例提供了一种包含指令的计算机程序产品,当该计算机程序产品在电子设备上运行时,使得该电子设备执行如第一方面实施的方法。
可以理解地,第二方面提供的电子设备、第三方面提供的计算机存储介质、第四方面提供的芯片系统和第五方面提供的计算机程序产品均用于执行本申请实施例所提供的方法。因此,其所能达到其他有益效果可参考对应方法中的有益效果,此处不再赘述。
附图说明
图1示出了电子设备生成卡点视频的一组示例性用户界面;
图2示出了基于音频处理方法得到音频节点所涉及的软件结构框架图;
图3示出了基于音频处理方法得到音频节点所涉及的示例性模块交互图;
图4示出了对第e段子音频的末尾和第e+1段子音频进行去重处理的示意图;
图5示出了并行分析时涉及的一个示例性流程图;
图6示出了对音频节点进行去重时的一个示例性流程图;
图7A以及图7B示出了读过程和写过程串行时进行解码的过程;
图8A以及图8B示出了读过程和写过程串行时进行解码的过程;
图9是本申请实施例提供的电子设备的结构示意图。
具体实施方式
本申请以下实施例中所使用的术语只是为了描述特定实施例的目的,而并非旨在作为对本申请的限制。如在本申请的说明书和所附权利要求书中所使用的那样,单数表达形式“一个”、“一种”、“所述”、“上述”、“该”和“这一”旨在也包括复数表达形式,除非其上下文中明确地有相反指示。还应当理解,本申请中使用的术语“和/或”是指并包含一个或多个所列出项目的任何或所有可能组合。
以下,术语“第一”、“第二”仅用于描述目的,而不能理解为暗示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个该特征,在本申请实施例的描述中,除非另有说明,“多个”的含义是两个或两个以上。
本申请提供的音频处理方法,用于在使用音频分析算法基于音频(编码后的)进行分析,得到分析结果的场景中,加快将编码后的音频处理为与音频分析算法适配的音频,进而输入到音频分析算法中进行音频分析,得到分析结果。
这里与音频分析算法适配是指:处理后的音频的属性与音频分析算法的输入音频属性相同。这样,音频分析算法才可以对音频进行分析,得到分析结果。在该音频处理方法中,音频分析算法的输入音频属性至少包括输入音频为解码后的音频。还可以包括其他的属性,例如输入音频在单位时长内包含的采样点数为采样点数1等,本申请实施例对此不作限定。
下文中,以使用的音频分析算法为节点分析算法,得到的分析结果为音频节点为例进行说明。实际音频分析算法还可以为其他的算法,例如语音识别算法等,本申请实施例对此不作限定。
音频的音乐节点是指音频中具有特殊节拍的时间戳。该特殊节拍包括但不限于:节奏感强烈的节拍,具有过渡性(由较强节奏到较弱节奏或者由较弱节奏到较强节奏)的节拍等。
将编码后的音频记为音频1,这里加快将音频1处理为与节点分析算法适配的音频的方式包括但不限于以下方式中的至少一种。
加速解码.加速解码是指:在将音频1输入至节点分析算法之前,电子设备使用N个音频解码器对音频1进行抽样解码,得到解码后的音频1(记为音频2)。其中,N个音频解码器中的第i个音频解码器用于对音频1中的第i段子音频进行抽样解码。抽样解码包括:将第i段子音频中每一音频帧的1/H进行解码。音频2包含的采样点数为音频1的采样点数的1/H,其中,H为大于或者等于2的整数。i的取值为1至N。关于加速解码的详细内容可以参考下述对步骤S12-步骤S16以及步骤S171-步骤S173的描述,此处暂不赘述。
由于是抽样解码,可以加快对音频1(编码后的)进行解码的速度。
其中,N为正整数。在N值大于或者等于2时,使用至少两个音频解码器对音频1并行进行解码,也可以更进一步加快对音频1进行解码的速度。
在一些可能的情况下,N的取值可以定为大于或者等于2的整数。
在另一些可能的情况下,可以根据音频1的长度(表现为时间长短)确定N的取值:在音频1的长度小于阈值时,N等于1。在音频1的长度大于或者等于阈值时,N大于或者等于2。其中,阈值可以为4分钟,也可以为其他的值,例如3分钟等,本申请实施例对此不作限定。
并行分析.并行分析是指:电子设备将音频1处理为与音频分析算法适配的音频(记为音频3)之后,将音频3划分为R段子音频,基于节点分析算法对R段子音频进行分析,得到R段子音频各自对应的音频节点。再将R段子音频各自对应的音频节点进行合并,得到音频1中的音频节点。该R段子音频中第j段子音频的末尾与第j+1段子音频的开始存在重叠音频,重叠程度与节点分析算法相关。其中,R大于或者等于2,j的取值从1至R-1。
这里由于R段子音频中存在重叠音频,因此该R段子音频各自对应的音频节点中可能出现重叠的音频节点。在一些可能的情况下,在进行合并之前,可以删除第j段子音频中与第j+1段子音频中重复的音频节点。这样,所得音频1的音频节点中不会再出现重复的节点。
这里需要说明的是,在音频2(解码后的音频1)已经为与节点分析算法适配的音频时,该音频3即为音频2。
在音频2(解码后的音频1)不为与节点分析算法适配的音频时。电子设备还可以对音频2进行重采样,改变音频属性,得到与节点分析算法适配的音频3。例如,音频2在单位时长内包含的采样点数不等于采样点数1的情况下,但是输入音频要求单位时长内包含的采样点数等于采样点数1时,电子设备就可以对音频2进行重采样得到音频3。
其中,对音频2进行重采样得到音频3可以包括:音频2在单位时长内包含的采样点数小于采样点数1的情况,电子设备通过插值的方式将音频2在单位时长内包含的采样点数增加到采样点数1。音频2在单位时长内包含的采样点数大于采样点数1的情况,电子设备通过截取的方式将音频2在单位时长内包含的采样点数减小到采样点数1。
关于并行分析的详细内容可以参考下述对步骤S201、步骤S202、步骤S211-步骤S213的描述,此处暂不赘述。
得到音频节点之后,可以基于音乐节点调整视频的画面使得场景与音乐节点对应以实现卡点,得到卡点视频。
卡点视频可以理解为将视频中的场景(通过画面展现)与视频中的声音相对应,通过对应的声音去强调场景效果。在卡点视频的卡点场景处,可以选择性地添加小音量突出人声、添加大音量通过音乐烘托气氛或添加其他特殊效果。使得视频更具吸引力和冲击力,进而使得观众可以更加专注地观察和欣赏视频中的细节或者表达的内容,增强整体的观影体验。
图1示出了电子设备生成卡点视频的一组示例性用户界面。
电子设备可以在图库应用中生成卡点视频。如图1所示,用户界面11可以为图库应用提供的素材选择界面,该用户界面11中可以包括部分或者全部素材(视频或者照片)。响应于用户选择素材(例如视频111以及视频112)的操作,电子设备可以显示包括制作控件121的用户界面12。该制作控件121即为生成卡点视频的入口。
响应于针对该制作控件121的操作,电子设备可以显示开始制作界面(例如用户界面13)并开始基于音频处理方法生成卡点视频。该过程包括:电子设备可以选择与素材对应的音频。然后对与素材对应的音频(相当于音频1)至少进行加速解码处理,得到与节点分析算法适配的音频。然后进行节点分析,得到音频1中的音频节点。得到音频节点之后,电子设备基于音频1中的音频节点调整被选中素材中的至少一个视频片段,得到调整后的视频。调整后的视频中包括音频1,且调整后的视频中音频1的音频节点与视频中的画面转场部分或者全部对齐。在一些可能的情况下,该调整后的视频中的原音频可以被抑制,或者,也可以被保留,本申请实施例对此不作限定。
参考图1中示出的用户界面14,为生成卡点视频之后的一个示例性用户界面。可选的,电子设备可以将音频节点对应的标识141显示在用户界面14中,以提示用户此处存在一个音频节点且对应着一个画面转场。
这里需要说明的是,前述图1是生成卡点视频的一组示例性用户界面。实际情况中,还可以为其他的用户界面,其中的图标、控件或者生成卡点视频的应用均可以改变。不应该构成对本申请实施例的限定。
下面描述电子设备基于音频处理方法得到音频节点所涉及的软件结构框架图。
参考图2所示,分层架构将软件分成若干个层,每一层都有清晰的角色和分工。层与层之间通过软件接口通信。在一些实施例中,将软件框架分为四层,从上至下分别为应用程序层,应用程序框架层、硬件抽象层以及内核层。
应用程序层可以包括一系列应用程序包。
如图2所示,应用程序层可以包括视频制作应用(例如前述涉及的图库应用)。
参考图2中(1)处,该视频制作应用可以为下述文件解析模块提供与被选中的素材对应的音频(例如音频1)。
应用程序框架(framework)层为应用程序层的应用程序提供应用编程接口(application programming interface,API)和编程框架。应用程序框架层包括一些预先定义的函数。
应用程序框架层可以包括文件解析模块、音频解码模块、缓存合并模块以及重采样模块。
参考图2中(2)处,文件解析模块可以用于对音频1进行分析,确定音频1的音频格式以及对音频1进行解码的音频解码器数量N。将音频1的音频格式以及N发送至音频解码模块。
文件解析模块还用于获取音频1的第i段子音频,将第i段子音频划分为Mi帧,且将每一音频帧的1/H逐步传输至第i个音频解码器中。
音频解码模块可以基于音频1的音频格式创建并配置N个适用为音频1进行解码的音频解码器。然后开启该N个音频解码器用于对音频1进行抽样解码。利用第i个音频解码器逐步解码第i段子音频中每一音频帧的1/H。
缓存合并模块将第i段子音频对应的解码帧缓存至第i个音频队列中,合并N个音频队列中的解码帧得到解码后的音频1(音频2)。
参考图2中(3)处,重采样模块用于对音频2进行重采样,得到重采样后的音频1,该重采样后的音频1为与节点分析算法适配的音频(音频3)。
硬件抽象层(hardware abstraction laye,HAL)是位于操作系统内核层与电子设备的其它层(例如本地服务层)之间的接口层,其目的在于将硬件抽象化,为操作系统提供虚拟硬件平台。
硬件抽象层可以包括节点分析模块。
参考图2中(4)处,节点分析模块用于基于节点分析算法并行分析与节点分析算法适配的音频1,得到音频1中的音频节点。
参考图2中(5)处,视频制作应用接收到节点分析模块传输的音频节点之后,可以基于音乐节点调整视频的画面使得场景与音乐节点对应以实现卡点,得到卡点视频。
内核层是硬件和软件之间的层。内核层也可以被称为驱动(driver)层。
内核层可以包括显示驱动。
显示驱动可以驱动屏幕显示制作卡点视频涉及的用户界面,例如前述涉及的用户界面11-用户界面14。
图3示出了基于音频处理方法得到音频节点所涉及的示例性模块交互图。
下面结合图2以及图3描述电子设备生成音频节点时所涉及的模块交互流程。该过程可以参考下述对步骤S11-步骤S19、步骤S20以及步骤S21的描述。
其中,步骤S11-步骤S19描述了电子设备将编码后的音频1经过抽样解码和重采样得到与节点分析算法适配的音频(音频3)的过程。步骤S20以及步骤S21描述了电子设备对音频3基于节点分析算法进行并行分析,得到音频节点的过程。
首先基于步骤S11-步骤S19描述电子设备将编码后的音频1经过抽样解码和重采样得到与节点分析算法适配的音频1的过程。
S11.应用1选择与素材对应的音频1。
步骤S11中涉及的素材为电子设备通过应用1选择的待编辑素材。选择素材时涉及的一个示例性用户界面可以参考前述图1中示出的用户界面11。
响应于针对制作控件的操作(例如点击制作控件),应用1选择与素材对应的音频1。这里涉及的制作控件可以参考前述图1中示出的制作控件121。
应用1选择与素材对应的音频1,包括但不限于:选择与素材总时间接近或者相等的音频作为音频1。或者选择默认的音频作为与素材对应的音频1。
选择与素材对应的音频1之后,应用1将该音频1的路径发送至文件解析模块。文件解析模块可以基于该音频1的路径在电子设备的存储器中获取该音频1(编码后的)。然后执行下述步骤S12分析音频1的长度以1确定对音频1进行解码所需的音频解码器数量。
S12.文件解析模块根据音频的长度确定音频解码器数量N。
这里音频的长度可以理解为音频1的时长。
在音频1的长度小于阈值时,N等于1。在所述第一音频的长度大于或者等于阈值时,N大于或者等于2。
其中,该阈值可以设置为4分钟,还可以为其他的值,例如3分钟等。基于电子设备的处理能力进行设定即可,本申请实施例对此不作限定。
S13.文件解析模块获取音频格式,包括编码格式、音频参数。
音频格式是指电子设备中存储音频1的方式,它包括编码格式、音频参数。
其中,音频1的编码格式是指将连续的模拟音频信号进行编码转化为音频1的算法。音频1的编码格式包括但不限于MP3、AAC、WAV或者FLAC等中的一个,本申请实施例对此不作限定。
为了表示强调,下文中可以将音频1的编码格式称为编码格式1(例如MP3)。将音频1的音频参数称为音频参数1。
音频参数1包括音频1对应的采样率、声道数和位深等参数。
其中,音频1对应的采样率是指将连续的模拟音频信号进行采样得到音频1时的速率,也可以理解为单位时长(每秒钟)采集的样本点(简称采样点)数,还可以理解为音频1在单位时长内包含的采样点数。常见的采样率有44.1kHz、48kHz等。
音频1对应的声道数表示音频1的通道数量,常见的声道数有单声道、双声道(stereo)和环绕声(surround)等。单声道只有一个声道,而立体声有左右两个声道,环绕声则拥有更多的声道。
音频1对应的位深是指存储采样点时使用的二进制位数量,常见的位深包括8、16等。16位深表示可以使用16个二进制位来表示采样点的值,意味着采样点的取值范围为216个离散的值。
在确定音频格式以及音频解码器数量N之后。文件解析模块可以将音频1的音频格式以及N值发送至音频解码模块。音频解码模块在接收到音频格式以及N值之后,可以执行下述步骤S14开始创建音频解码器。
S14.音频解码模块创建N个支持编码格式解码的音频解码器。
创建N个支持编码格式解码的音频解码器是指音频解码器能够读取按照编码格式1(例如MP3)进行编码之后的音频1,并对其进行解压缩,得到解码后的音频1。
S15.音频解码模块按照音频参数配置该N个音频解码器。
配置N个音频解码器是指按照音频1(编码后的)的音频参数1(采样率、声道数以及位深)设置音频解码器的参数以适应音频1(编码后的)的特定音频参数。以使得音频解码器可以正确解析具有音频参数1的音频1(编码后的),并输出具有音频参数1的解码后的音频1。
S16.音频解码模块启动该N个解码器。
启动该N个解码器是指:可以基于前述创建与配置的N个解码器开始对音频1(编码后的)进行抽样解码了。
这里需要说明的是,使用N个音频解码器对音频1(编码后的)进行解码时,是将音频1划分为N段子音频。一段子音频使用一个音频解码器进行解码,该N个音频解码器是并行解码的。特殊的,在N等于1,也音频1就是一段子音频,使用一个音频解码器对音频1进行解码即可。使用第i个音频解码器对第i段子音频进行解码的过程可以参考下步骤S171-步骤S173。其中,i的取值为从1至N,N个音频解码器并列解码。
步骤S171-步骤S173中,第i个音频解码器在进行解码时,还配置了X1个输入缓冲区以及对应的X1个输出缓冲区。其中,输入缓冲区用于临时记录待解码的音频帧的1/H,输出缓冲区则用于临时记录1/H帧解码后的音频(解码帧)。输出缓冲区中的解码帧会被缓冲合并模块记录至第i个音频队列中。其中,X1为大于或者等于1的整数。
S171.文件解析模块获取音频1的第i段子音频,将第i段子音频划分为Mi帧,且将每一音频帧的1/H传输逐步至第i个音频解码器中。
文件解析模块可以先将每一音频帧的1/H记录到输入缓冲区中,将输入缓冲区的序号发送至第i个音频解码器。
S172.文件解析模块使用第i个音频解码器逐步解码每一音频帧的1/H,得到1/H帧解码后的音频(解码帧)。
第i个音频解码器基于前述步骤S171中涉及的序号找到对应的输入缓冲区并读取其中的数据进行解码,得到1/H帧解码后的音频(解码帧)。将解码帧读入到输出缓冲区中。
S173.缓存合并模块将第i段子音频对应的解码帧缓存至第i个音频队列中。
缓存合并模块将输出缓冲区的解码帧写入至第i个音频队列中。
这里需要说明的是,前述步骤S171-步骤S173中,输入缓冲区和输出缓冲区的数量是有限的。通常X1个输入缓冲区并不能容纳第i段子音频中全部的待解码数据。因此,在解码的过程中,输入缓冲区中的数据被传输至音频解码器之后,该输入缓冲区就会为空则可以读入下一帧音频帧的1/H。同理,输出缓冲区中的数据被写入到第i个音频队列之后,该输出缓冲区就为空,则可以放入新的1/H帧解码后的音频。
这里,将音频1中每一音频帧的1/H读入到输入缓冲区。然后将输入缓冲区的数据进行解码,并将解码帧读入到输出缓冲区的过程,称为读过程。将输出缓冲区中的数据读出写入到音频队列并释放输出缓冲区的过程称为写过程。也可以理解为读过程是将音频帧的1/H读取后进行解码并将解码帧临时记录到输出缓冲区以等待进入音频队列的过程。而写过程则是将输出缓冲区中的解码帧写入到音频帧队列以等待合并得到解码后的音频1的过程。
在一些可能的情况下,读过程和写过程可以设置在一个线程(读写线程)中,即读过程和写过程是串行的。这样,由于解码时只涉及一个线程,可以便于对解码过程进行管理。关于读过程和写过程串行时进行解码的过程可以参考下述对图7A以及图7B中相关内容的描述,此处暂不赘述。
在一些可能的情况下,读过程可以设置在一个线程(读线程)中,但是写过程可以设置在另一个线程(写线程)中,即读过程和写过程是并行的。这样,可以加快解码的速度。关于读过程和写过程并行时进行解码的过程可以参考下述对图8A以及图8B中相关内容的描述,此处暂不赘述。
在N个音频解码器完成解码,得到N个音频队列之后,缓存合并模块可以执行下述步骤S18将N个音频队列中的解码帧合并得到解码后的音频1。
S18.缓存合并模块合并N个音频队列中的解码帧得到解码后的音频1,解码后的音频1对应的采样率等于音频1的1/H。
解码后的音频1(音频2)对应的采样率等于编码后的音频1的1/H是指:音频2的包含的采样点数为音频1(编码后的)的采样点数的1/H。
在一些可能的情况下,在将音频1(编码后的)划分为N段子音频进行解码之前,由于使用的算法精细度不够高,可能将N段子音频中相邻的两段子音频划分得存在重叠,进而使得相邻的两段子音频在解码后的也存在重叠部分。因此在将N个音频队列中的解码帧合并得到解码后的音频1之前,还需要进行去重处理,再将去重之后的N段解码后的子音频按照时间戳进行合并,将合并后的音频作为解码后的音频1。
这里以相邻的两段子音频为第e段子音频以及第e+1段子音频为例,结合图4对去重处理进行说明。该相邻的两段子音频在解码后被称为解码后的第e段子音频以及解码后的第e+1段子音频。其中,e的取值为1至N-1。
如图4中(1)所示,第e段子音频的末尾和第e+1段子音频的开始存在重叠。如果未进行去重处理,如图4中(2)所示,得到的解码后的音频1中会存在重叠。如果进行去重处理,如图4中(3)所示,缓存合并模块可以对比第e段子音频以及第e+1段子音频,确定重叠部分的位置。然后从解码后的第e段子音频或解码后的第e+1段子音频中移除重叠的部分。参考图4中(4)所示,这里是将解码后的第e段子音频中的重叠部分进行了删除。然后再参考图4中(5)所示,再将第e段子音频以及解码后的第e+1段子音频进行合并。合并得到的音频中不存在重叠部分。
S19.重采样模块配置重采样参数,对解码后的音频1进行重采样,得到与节点分析算法适配的重采样音频1。
这里需要说明的是,步骤S19是可选的。在解码后的音频1为与节点分析算法适配的音频时,不用执行步骤S19。
在解码后的音频1(音频2)不为与节点分析算法适配的音频时,才执行步骤S19。
在步骤S19中,可以对解码后的音频1进行重采样,改变音频属性,得到与节点分析算法适配的重采样音频1(音频3)。
例如,音频2在单位时长内包含的采样点数不等于采样点数1,但是输入音频要求单位时长内包含的采样点数等于采样点数1时,电子设备就可以对音频2进行重采样,将音频2在单位时长内包含的采样点数重采样为采样点数1,得到音频3。其中,采样点数1为节点分析算法对应的输入音频在单位时长内包含的采样点数。
重采样的目的在于改变音频2的属性(音频参数),得到音频3。这里的属性除了单位时长内包含的采样点数以外。还可以为位深、声道数等,本申请实施例对此不作限定。
关于重采样的其他描述可以参考前述相关内容,此处不再赘述。
在得到与节点分析算法适配的音频(音频3)之后,基于节点分析算法对音频3进行并行分析,得到音频节点的过程可以参考下述步骤S20以及步骤S21。
下面结合图5对步骤S20以及步骤S21进行详细描述。
S20.重采样模块向节点分析模块并行发送重采样音频1。
重采样模块向节点分析模块发送重采样音频1包括:将重采样音频1划分为R段子音频。该R段子音频中,第j段子音频的末尾和第j+1段子音频的开始存在重叠音频,重叠程度与节点分析算法相关。其中,R大于或者等于2,j的取值从1至R-1。
重叠程度与节点分析算法相关是指,节点分析算法在对一个时间戳对应的音频(音频a)进行分析时,会使用该音频a前面的一段音频(音频b)以及后面的一段音频(音频c)与该音频a进行对比分析等操作以确定音频a对应的时间戳是否为音频节点。因此如果需要获取重采样音频1中的全部音频节点,则第j段子音频与第j+1段子音频的重叠部分的长度至少等于(或者等于):音频a+音频b+音频c的长度。
然后,如图5所示,并行执行步骤S201以及步骤S202将R段子音频发送至节拍分析算法进行解码。
S201.发送重采样音频1中的第j段子音频。
S202.发送重采样音频1中的第j+1段子音频。
后续,执行步骤S21,实现将重采样音频1中每一段子音频使用节拍分析算法并列进行节点分析。
S21.重采样模块对重采样音频1进行节点分析。
关于步骤S21的描述可以参考图5中示出的步骤S211-步骤S213。
S211.接收到第j段子音频之后,对第j段子音频进行节点分析,得到第j段子音频对应的音频节点。
S212.接收到第j+1段子音频之后,对第j+1段子音频进行节点分析,得到第j+1段子音频对应的音频节点。
S213.将R段子音频对应的音频节点进行合并,且删除时间戳重复的两个音频节点中的一个音频节点,得到音频1对应的T个音频节点。
由于前述在将重采样音频1划分为R段子音频时,R段子音频中的第j段子音频与第j+1段子音频存在重叠音频。则第j段子音频中的音频节点和第j+1段子音频中的音频节点可能存在重复的音频节点。该重复的音频节点来自重叠音频。
则将R段子音频对应的音频节点进行合并之前,需要删除第j段子音频中与第j+1段子音频中重复的音频节点,得到音频1对应的T个音频节点。
参考图6,这里以R段子音频包括子音频1、子音频2、子音频3为例进行说明。子音频1对应的音频节点包括[011、014、016、021]。子音频2对应的音频节点包括[021、026、030、034]。子音频3对应的音频节点包括[034、037、044]。实际上,子音频1对应的音频节点与子音频2对应的音频节点存在重复的音频节点021,则删除子音频1中的音频节点021。则子音频1对应的音频节点更新为[011、014、016]。子音频2对应的音频节点与子音频3对应的音频节点存在重复的音频节点034,则删除子音频2中的音频节点034。则子音频2对应的音频节点更新为[021、026、030]。这里子音频3已经为R段子音频中的最后一段子音频,其对应的音频节点不变。后续将子音频1对应的音频节点(更新后的)、子音频2对应的音频节点(更新后的)以及子音频3对应的音频节点进行合并之后,即可得到音频对应的T个音频节点[011、014、016、021、026、030、034、037、044]。
节点分析算法在得到音频1对应的T个音频节点之后,可以向应用1发送音频1对应的T个音频节点。后续,应用1可以基于音频节点处理素材,得到卡点视频。对于得到卡点视频的过程可以参考前述相关内容,此处不再赘述。
下面以N=2为例,基于图7A以及图7B详细描述前述涉及的开启N个音频解码器之后,读过程和写过程串行时进行解码的过程。
对该过程的描述可以参考下述对步骤S31、步骤S32、步骤S33a-步骤S43a以及步骤S33b-步骤S43b的描述。
S31.音频解码模块创建并配置2个音频解码器。
S32.音频解码模块启动该2个音频解码器。
该2个音频解码器包括音频解码器1以及音频解码器2。
其中步骤S31涉及的内容与前述步骤S14以及步骤S15中涉及的内容相同,步骤S32涉及的内容与前述步骤S16相同。可以参考前述对相关内容的描述,此处不再赘述。
开启2个音频解码器之后,音频解码模块执行步骤S33a为音频解码器1创建读写线程1,以及执行步骤S33b为音频解码器2创建读写线程2。
读写线程1创建之后,音频解码1可以基于该读写线程1将音频1中的前1/2部分内容进行解码。且,读写线程2创建之后,音频解码器2可以基于该读写线程2将音频1中的后1/2部分内容进行解码。这里两个音频解码器进行解码的过程相似,只是被解码的对象不同。后文中以音频解码器1基于读写线程1进行解码的过程为例进行说明。音频解码器的解码过程可以参考此描述,不再赘述。
其中,音频解码器1基于读写线程1将音频1中前1/2部分内容进行解码的过程可以参考下述步骤S34a-步骤S43a的描述。
S34a.文件解析模块确定是否有空闲的输入缓冲区。
空闲是指输入缓冲区中无数据。
只要确定还有空闲的输入缓冲区,读写线程1通过文件解析模块执行下述步骤S35a进入读过程。
确定不存在空闲的输入缓冲区之后,则读写线程1通过缓冲合并模块执行下述步骤S40a进入写过程。
S35a.文件解析模块确定空闲的输入缓冲区1。
文件解析模块可以先获取空闲的输入缓冲区序号,基于序号找到该空闲的输入缓冲区。为便于区分,这里将空闲的输入缓冲区称为输入缓冲区1进行说明。
其中,文件解析模块获取序号的方式包括但不限于:文件解析模块可以询问音频解码器1空闲的输入缓冲区序号,或者,音频解码器1可以将空闲的输入缓冲区序号发送至文件解析模块。
S36a.所读取音频帧的时间戳是否为音频1的中间时间。
在读取的音频帧的时间戳未到达音频1的中间时间时,读写线程1通过文件解析模块执行下述步骤S37a继续读过程。
在读取的音频帧的时间戳到达音频1的中间时间时,读写线程1通过缓冲合并模块执行下述步骤S40a进入写过程。
这里需要说明的是,音频解码器1读取的第一帧音频的时间戳为音频1的开始时间。
S37a.文件解析模块将音频帧的1/H读入空闲的输入缓冲区1。
应该理解的是,文件解析模块是按照时间戳从前往后获取每一音频帧的1/H,然后放入输入缓冲区。先进入输入缓冲区的音频帧的1/H会先被解码,然后读入输出缓冲区进而写入音频帧队列。这样,保证了音频在解码的过程中,不会乱序。
S38a.文件解析模块将输入缓冲区1的序号1发送至音频解码器1。
S39a.音频解码器1基于序号1从对应的缓冲区中读取1/H帧音频进行解码,且将1/H帧解码后的音频发送至输出缓冲区。
前述步骤S35a、步骤S37a-步骤S39a描述了读过程。关于写过程的描述可以参考下述对步骤S40a-步骤S42a的描述。
S40a.缓存合并模块确定是否存在有数据的输出缓冲区。
其中,文件解析模块确定是否存在有数据的输出缓冲区的方式包括但不限于:文件解析模块可以询问音频解码器1空闲的输出缓冲区的序号,或者,音频解码器1可以将空闲的输出缓冲区的序号发送至文件解析模块。
确定不存在有数据的输出缓冲区时,执行下述步骤S35a以进入读过程。
确定存在有数据的输出缓冲区时,执行前述步骤S41a继续写过程。
S41a.缓存合并模块确定有数据的输出缓冲区1并获取其中的1/H帧解码后的音频,将获取到的1/H帧解码后的音频写入第1个音频队列中。
输出缓冲区1是指有数据的输出缓冲区。
S42a.输出缓冲区1是否有结束标志。
如果输出缓冲区1不存在结束标志则表示解码过程未完成,继续执行前述步骤S40a重新判断是重新进入读过程还是继续写过程。
如果输出缓冲区1存在结束标志则表示解码过程已经完成,执行下述步骤S43a结束读线程。
S43a.结束读写线程1。
音频解码器2基于读写线程2将音频2中的后1/2部分内容进行解码的过程可以参考下述步骤S34b-步骤S43b。
S34b.文件解析模块确定是否有空闲的输入缓冲区。
S35b.文件解析模块确定空闲的输入缓冲区2。
S36b.所读取音频帧的时间戳是否为音频1的结束时间。
在读取的音频帧的时间戳不为音频1的结束时间时,读写线程1通过文件解析模块执行下述步骤S37b继续读过程。
这里需要说明的是,音频解码器2读取的第一帧音频的时间戳为音频1的中间时间。
在读取的音频帧的时间戳为音频1的结束时间时,读写线程1通过缓冲合并模块执行下述步骤S40b进入写过程。
S37b.文件解析模块将音频帧的1/H读入空闲的输入缓冲区2。
S38b.文件解析模块将输入缓冲区2的序号2发送至音频解码器2。
S39b.音频解码器1基于序号2从对应的缓冲区中读取1/H帧音频进行解码,且将1/H帧解码后的音频发送至输出缓冲区。
S40b.缓存合并模块确定是否存在有数据的输出缓冲区。
S41b.缓存合并模块确定有数据的输出缓冲区2并获取其中的1/H帧解码后的音频,将获取到的1/H帧解码后的音频写入第2个音频队列中。
S42b.输出缓冲区2是否有结束标志。
S43b.结束读写线程2。
步骤S34b-步骤S43b分别与前步骤S34a-步骤S43a相似,对照将编号对照修改即可:例如,将音频解码器1更改为音频解码器2,将输入缓冲区1更改为输入缓冲区2等。可以参考前述步骤S34a-步骤S43a的描述,此处不再赘述。
基于前述图7A中的内容,可以得出,在读过程和写过程串行时,如果输入缓冲区有空闲,就不能将输出缓冲区中的解码帧写入到音频帧队列中。反之,如果存在有数据的输出缓冲区,也不能将音频帧的1/H读入到输入缓冲区中以进行解码。
参考图7B,在音频解码器1解码音频1的前1/2内容,音频解码器2解码音频1的后1/2内容的场景中。读过程和写过程串行时,针对音频解码器1,输入缓冲区13为有数据的输入缓冲区。输入缓冲区11以及输入缓冲区12中的数据(音频帧的1/H)已经被传输至解码器进行解码了,解码后的音频帧分别被读入了输出缓冲区11以及输出缓冲区12,现在输入缓冲区11以及输入缓冲区12均为空闲的输入缓冲区。由于存在空闲的输入缓冲区,即使输出缓冲区11以及输出缓冲区12已经有数据了,但是仍然不可以将其写入到音频帧队列1中。针对音频解码器2,输出缓冲区21以及输出缓冲区23均为有数据的输出缓冲区,即使输入缓冲区21、输入缓冲区22以及输入缓冲区23均为空闲的输入缓冲区,也不能往输入缓冲区21-输入缓冲区23中读入数据。
由此可见,在读过程和写过程串行时,读过程和写过程存在相互制约,对解码速度存在影响。例如,图7B中,输出缓冲区21为空闲的输出缓冲区,但是却不能往输入缓冲区21-输入缓冲区23中读入数据以解码后读入到该输出缓冲区21中。
再次参考图7B,在读写线程1以及读写线程2均结束之后,缓存合并模块可以将音频帧队列1以及音频帧队列2中的数据进行合并,得到解码后的音频1。
下面以N=2为例,基于图8A以及图8B详细描述前述涉及的开启N个音频解码器之后,读过程和写过程并行时进行解码的过程。
对该过程的描述可以参考下述对步骤S31、步骤S32以及步骤S331-步骤S334的描述。
S31.音频解码模块创建并配置2个音频解码器。
S32.音频解码模块启动该2个音频解码器。
该2个音频解码器包括音频解码器1以及音频解码器2。
其中,步骤S31涉及的内容与前述步骤S14以及步骤S15中涉及的内容相同,步骤S32涉及的内容与前述步骤S16相同。可以参考前述对相关内容的描述,此处不再赘述。
开启2个音频解码器之后,音频解码模块执行步骤S331为音频解码器1创建读线程1以及执行步骤S332为音频解码器1创建写线程1。且,音频解码模块执行步骤S333为音频解码器2创建读线程2以及执行步骤S334为音频解码器2创建写线程2。
在读线程1以及写线程1创建之后,音频解码1可以基于该读线程1以及写线程1并行将音频1中的前1/2部分内容进行解码。且,在读线程2以及写线程2创建之后,音频解码器2可以基于该读线程2以及写线程2并行将音频1中的后1/2部分内容进行解码。这里两个音频解码器进行解码的过程相似,只是被解码的对象不同。后文中以音频解码器1基于读线程1以及写线程1进行解码的过程为例进行说明。音频解码器的解码过程可以参考此描述,不再赘述。
音频解码器1基于读线程1进行读过程涉及的内容可以参考下述步骤S331a-步骤S331e的描述。基于写线程1进行写过程涉及的内容可以参考下述步骤S332a-步骤S332e的描述。
首先基于步骤S331a-步骤S331e描述音频解码器1基于读线程1进行读过程涉及的内容。
S331a.文件解析模块确定有空闲的输入缓冲区1。
步骤S331a中确定有空闲的输入缓冲区1的方式与前述步骤S35中确定空闲的输入缓冲区1的过程相同。可以参考前述相关内容,此处不再赘述。
S331b.所读取音频帧的时间戳是否为音频1的中间时间。
在读取的音频帧的时间戳未到达音频1的中间时间时,读线程1通过文件解析模块执行下述步骤S331c继续读过程。
在读取的音频帧的时间戳到达音频1的中间时间时,结束读线程1。
这里需要说明的是,音频解码器1读取的第一帧音频的时间戳为音频1的开始时间。
S331c.文件解析模块将音频帧的1/H读入空闲的输入缓冲区1。
步骤S331c的描述可以参考前述步骤S37a此处不再赘述。
S331d.文件解析模块将输入缓冲区1的序号1发送至音频解码器1。
S331e.音频解码器1基于序号1从对应的缓冲区中读取1/H帧音频进行解码,且将1/H帧解码后的音频发送至输出缓冲区。
再基于步骤S332a-步骤S332e描述音频解码器1基于写线程1进行写过程涉及的内容。
S332a.缓存合并模块确定有数据的输出缓冲区1。
步骤S332a涉及的内容与前述步骤S40a中确定有数据的输出缓冲区1的过程相同,可以参考前述步骤S40a中的相关内容,此处不再赘述。
S332b.输出缓冲区1是否有结束标志。
如果输出缓冲区1存在结束标志则表示写过程已完成,则结束写线程1。
如果输出缓冲区1不存在结束标志则表示写过程未完成,执行下述步骤S332c继续进行写过程。
S332c.缓存合并模块从输出缓冲区1中获取1/H帧解码后的音频。
S332d.缓存合并模块将获取到的1/H帧解码后的音频写入第1个音频队列中。
S332e.缓存合并模块释放该输出缓冲区1,并将该输出缓冲区1的序号发送至音频解码器1。
将释放后的输出缓冲区1的序号发送至音频解码器1的目的:使得音频解码器1记录输出缓冲区1的状态为无数据(空闲)以便于将解码帧记录至空闲的输出缓冲区1。
在读线程和写线程均结束之后,确定音频解码器1完成对音频1的前1/2部分内容的解码。
音频解码器2基于读线程2进行读过程的内容可以参考下述步骤S333a-步骤S333e的描述。基于写线程2进行写过程的内容可以参考下述步骤S334a-步骤S334e的描述。
首先基于步骤S333a-步骤S333e描述音频解码器2基于读线程2进行读过程的内容。
S333a.文件解析模块确定有空闲的输入缓冲区2。
S333b.所读取音频帧的时间戳是否为音频1的结束时间。
在读取的音频帧的时间戳未到达音频1的结束时间时,读线程2通过文件解析模块执行下述步骤S333c继续读过程。
在读取的音频帧的时间戳到达音频1的结束时间时,结束读线程2。
这里需要说明的是,音频解码器2读取的第一帧音频的时间戳为音频1的中间时间。
S333c.文件解析模块将音频帧的1/H读入空闲的输入缓冲区2。
S333d.文件解析模块将输入缓冲区2的序号2发送至音频解码器2。
S333e.音频解码器2基于序号2从对应的缓冲区中读取1/H帧音频进行解码,且将1/H帧解码后的音频发送至输出缓冲区。
步骤S333a-步骤S333e分别与前步骤S331a-步骤S331e相似,对照将编号对照修改即可:例如,将音频解码器1更改为音频解码器2,将输入缓冲区1更改为输入缓冲区2等。可以参考前述步骤S331a-步骤S331e的描述,此处不再赘述。
再基于步骤S334a-步骤S334e描述音频解码器2基于写线程2进行写过程的内容。
S334a.缓存合并模块确定有数据的输出缓冲区2。
S334b.输出缓冲区2是否有结束标志。
如果输出缓冲区2存在结束标志则表示写过程已完成,则结束写线程2。
如果输出缓冲区2不存在结束标志则表示写过程未完成,执行下述步骤S334c继续进行写过程。
S334c.缓存合并模块从输出缓冲区2中获取1/H帧解码后的音频。
S334d.缓存合并模块将获取到的1/H帧解码后的音频写入第2个音频队列中。
S334e.缓存合并模块释放该输出缓冲区2,并将该输出缓冲区2的序号发送至音频解码器1。
步骤S334a-步骤S334e分别与前步骤S332a-步骤S332e相似,对照将编号对照修改即可:例如,将音频解码器1更改为音频解码器2,将输入缓冲区1更改为输入缓冲区2等。可以参考前述步骤S332a-步骤S332e的描述,此处不再赘述。
步骤S333a-步骤S333e分别与前步骤S331a-步骤S331e相似,对照将编号对照修改即可:例如,将音频解码器1更改为音频解码器2,将输入缓冲区1更改为输入缓冲区2等。可以参考前述步骤S331a-步骤S331e的描述,此处不再赘述。
基于前述图8A中的内容,可以得出,在读过程和写过程并行时,读过程和写过程相互不干扰:如果输入缓冲区有空闲,就可以读入音频帧的1/H以进行解码。如果输出缓冲区中有数据就可以将输出缓冲区中的解码帧写入到音频帧队列中。
参考图8B,在音频解码器1解码音频1的前1/2内容,音频解码器2解码音频1的后1/2内容的场景中。读过程和写过程并行时,针对音频解码器1,输入缓冲区13为有数据的输入缓冲区。输入缓冲区11以及输入缓冲区12中的数据(音频帧的1/H)已经被传输至解码器进行解码了,解码后的音频帧分别被读入了输出缓冲区11以及输出缓冲区12,现在输入缓冲区11以及输入缓冲区12均为空闲的输入缓冲区。对比图7B,这里即使输入缓冲区11以及输出缓冲区12空闲,也仍然可以将输出缓冲区11中数据写入到音频帧队列1中,以及将输出缓冲区12中数据写入到音频帧队列2中。针对音频解码器2,输出缓冲区21以及输出缓冲区23均为有数据的输出缓冲区,输入缓冲区21、输入缓冲区22以及输入缓冲区23均为空闲的输入缓冲区。对比图7B,在将输出缓冲区21以及输出缓冲区23中的数据写入到音频帧队列2时,也可以往输入缓冲区21-输入缓冲区23中读入数据,这样,音频解码器可以将输入缓冲区11中的数据进行解码写入空闲的输出缓冲区21中。
再次参考图8B,在读线程1与写线程1以及读线程2与写线程2均结束之后,缓存合并模块可以将音频帧队列1以及音频帧队列2中的数据进行合并,得到解码后的音频1。
基于前述图7B以及图8B可知,图8A中示出的读线程与写线程并行的方案相比于图7A中示出的读过程和写过程串行的方案可以加快解码的速度。但是,如果出现了音频解码器出现故障的暂停解码的情况下,需要将该故障的音频解码器对应的读线程和写线程同时停止工作。否则会造成一些解码错误:例如,如果读线程继续往输入缓冲区中读数据并将该输入缓冲区的序号汇报至音频解码器时,音频解码器无法查收该已读入数据的输入缓冲区的序号,后续恢复时会造成漏解码的情况。如果写线程继续将输出缓冲区中的数据写入到音频帧队列中,并释放该输出缓冲区且将释放的输出缓冲区的序号发送至音频解码器时,音频解码器也无法查收。
这里需要说明的是,前述图8A中,音频解码器1对应的读线程1和写线程1是并行的两个线程,两者的执行独立。读线程1中的步骤(包括步骤S331a-步骤S331e)以及写线程1(包括步骤S332a-步骤S332e)没有先后顺序,例如,步骤S331a与步骤S332a之间没有先后之分。音频解码器2对应的读线程2和写线程2也是并行的两个线程,两者的执行独立。读线程2中的步骤(包括步骤S333a-步骤S333e)以及写线程2(包括步骤S334a-步骤S334e)没有先后顺序,例如,步骤S331a与步骤S332a之间没有先后之分。
还需要说明的是,前述图3中步骤S12与步骤S13之间的执行顺序没有先后之分。前述图5中的步骤S201以及步骤S202是并行执行的,步骤S211以及步骤S21也是并行执行的。
图9是本申请实施例提供的电子设备的结构示意图。
下面以电子设备为例对实施例进行具体说明。应该理解的是,电子设备可以具有比图9中所示的更多的或者更少的部件,可以组合两个或多个的部件,或者可以具有不同的部件配置。图9中所示出的各种部件可以在包括一个或多个信号处理和/或专用集成电路在内的硬件、软件、或硬件和软件的组合中实现。
电子设备可以包括:处理器110,外部存储器接口120,内部存储器121,通用串行总线(universal serial bus,USB)接口130,充电管理模块140,电源管理模块141,电池142,天线1,天线2,移动通信模块150,无线通信模块160,音频模块170,扬声器170A,受话器170B,麦克风170C,耳机接口170D,传感器模块180,按键190,马达191,指示器192,摄像头193,显示屏194以及用户标识模块(subscriber identification module,SIM)卡接口195等。其中传感器模块180可以包括压力传感器180A,陀螺仪传感器180B,气压传感器180C,磁传感器180D,加速度传感器180E,距离传感器180F,接近光传感器180G,指纹传感器180H,温度传感器180J,触摸传感器180K,环境光传感器180L,骨传导传感器180M等。
可以理解的是,本申请实施例示意的结构并不构成对电子设备的具体限定。在本申请另一些实施例中,电子设备可以包括比图示更多或更少的部件,或者组合某些部件,或者拆分某些部件,或者不同的部件布置。图示的部件可以以硬件,软件或软件和硬件的组合实现。
处理器110可以包括一个或多个处理单元,例如:处理器110可以包括应用处理器(application processor,AP),调制解调处理器,图形处理器(graphics processingunit,GPU),图像信号处理器(image signal processor,ISP),控制器,存储器,视频编解码器,数字信号处理器(digital signal processor,DSP),基带处理器,和/或神经网络处理器(neural-network processing unit,NPU)等。其中,不同的处理单元可以是独立的器件,也可以集成在一个或多个处理器中。
其中,控制器可以是电子设备的神经中枢和指挥中心。控制器可以根据指令操作码和时序信号,产生操作控制信号,完成取指令和执行指令的控制。
处理器110中还可以设置存储器,用于存储指令和数据。在一些实施例中,处理器110中的存储器为高速缓冲存储器。该存储器可以保存处理器110刚用过或循环使用的指令或数据。如果处理器110需要再次使用该指令或数据,可从所述存储器中直接调用。避免了重复存取,减少了处理器110的等待时间,因而提高了系统的效率。
在一些实施例中,处理器110可以包括一个或多个接口。接口可以包括集成电路(inter-integrated circuit,I2C)接口,集成电路内置音频(inter-integrated circuitsound,I2S)接口,脉冲编码调制(pulse code modulation,PCM)接口等。
可以理解的是,本申请实施例示意的各模块间的接口连接关系,只是示意性说明,并不构成对电子设备的结构限定。在本申请另一些实施例中,电子设备也可以采用上述实施例中不同的接口连接方式,或多种接口连接方式的组合。
充电管理模块140用于从充电器接收充电输入。其中,充电器可以是无线充电器,也可以是有线充电器。
电源管理模块141用于连接电池142,充电管理模块140与处理器110。
电子设备的无线通信功能可以通过天线1,天线2,移动通信模块150,无线通信模块160,调制解调处理器以及基带处理器等实现。
天线1和天线2用于发射和接收电磁波信号。电子设备100中的每个天线可用于覆盖单个或多个通信频带。不同的天线还可以复用,以提高天线的利用率。
移动通信模块150可以提供应用在电子设备100上的包括2G/3G/4G/5G等无线通信的解决方案。移动通信模块150可以包括至少一个滤波器,开关,功率放大器,低噪声放大器(low noise amplifier,LNA)等。
调制解调处理器可以包括调制器和解调器。
无线通信模块160可以提供应用在电子设备上的包括无线局域网(wirelesslocal area networks,WLAN)(如无线保真(wireless fidelity,Wi-Fi)网络),蓝牙(bluetooth,BT),红外技术(infrared,IR)等无线通信的解决方案。
在一些实施例中,电子设备的天线1和移动通信模块150耦合,天线2和无线通信模块160耦合,使得电子设备可以通过无线通信技术与网络以及其他设备通信。所述无线通信技术可以包括全球移动通讯系统(global system for mobile communications,GSM),通用分组无线服务(general packet radio service,GPRS)等。
电子设备通过GPU,显示屏194,以及应用处理器等实现显示功能。
GPU为图像处理的微处理器,连接显示屏194和应用处理器。GPU用于执行数学和几何计算,用于图形渲染。处理器110可包括一个或多个GPU,其执行程序指令以生成或改变显示信息。
显示屏194用于显示图像,视频等。显示屏194包括显示面板。显示面板可以采用液晶显示屏(liquid crystal display,LCD)。显示面板还可以采用有机发光二极管(organiclight-emitting diode,OLED)等制造。
电子设备100可以通过ISP,摄像头193,视频编解码器,GPU,显示屏194以及应用处理器等实现拍摄功能。
ISP用于处理摄像头193反馈的数据。
摄像头193用于捕获静态图像或视频。物体通过镜头生成光学图像投射到感光元件。
数字信号处理器用于处理数字信号,除了可以处理数字图像信号,还可以处理其他数字信号。例如,当电子设备100在频点选择时,数字信号处理器用于对频点能量进行傅里叶变换等。
视频编解码器用于对数字视频压缩或解压缩。电子设备100可以支持一种或多种视频编解码器。这样,电子设备100可以播放或录制多种编码格式的视频,例如:动态图像专家组(moving picture experts group,MPEG)1,MPEG2,MPEG3,MPEG4等。
NPU为神经网络(neural-network,NN)计算处理器,通过借鉴生物神经网络结构,例如借鉴人脑神经元之间传递模式,对输入信息快速处理,还可以不断的自学习。
内部存储器121可以包括一个或多个随机存取存储器(random access memory,RAM)和一个或多个非易失性存储器(non-volatile memory,NVM)。
外部存储器接口120可以用于连接外部的非易失性存储器,实现扩展电子设备100的存储能力。
电子设备100可以通过音频模块170,扬声器170A,受话器170B,麦克风170C,耳机接口170D,以及应用处理器等实现音频功能。例如音乐播放,录音等。
随机存取存储器可以包括静态随机存储器(static random-access memory,SRAM)、动态随机存储器(dynamic random access memory,DRAM)、同步动态随机存储器(synchronous dynamic random access memory,SDRAM)等;
非易失性存储器可以包括磁盘存储器件、快闪存储器(flash memory)。
快闪存储器按照运作原理划分可以包括NOR FLASH、NAND FLASH、3D NAND FLASH等,按照存储单元电位阶数划分可以包括单阶存储单元(single-level cell,SLC)、多阶存储单元(multi-level cell,MLC)等。
压力传感器180A用于感受压力信号,可以将压力信号转换成电信号。
陀螺仪传感器180B可以用于确定电子设备的运动姿态。
气压传感器180C用于测量气压。在一些实施例中,电子设备通过气压传感器180C测得的气压值计算海拔高度,辅助定位和导航。
加速度传感器180E可检测电子设备在各个方向上(一般为三轴)加速度的大小。
距离传感器180F,用于测量距离。电子设备可以通过红外或激光测量距离。
接近光传感器180G可以包括例如发光二极管(LED)和光检测器,例如光电二极管。
环境光传感器180L用于感知环境光亮度。
指纹传感器180H用于采集指纹。电子设备可以利用采集的指纹特性实现指纹解锁,访问应用锁,指纹拍照,指纹接听来电等。
温度传感器180J用于检测温度。
触摸传感器180K,也称“触控面板”。触摸传感器180K可以设置于显示屏194,由触摸传感器180K与显示屏194组成触摸屏,也称“触控屏”。触摸传感器180K用于检测作用于其上或附近的触摸操作。触摸传感器可以将检测到的触摸操作传递给应用处理器,以确定触摸事件类型。可以通过显示屏194提供与触摸操作相关的视觉输出。在另一些实施例中,触摸传感器180K也可以设置于电子设备的表面,与显示屏194所处的位置不同。
按键190包括开机键,音量键等。按键190可以是机械按键。也可以是触摸式按键。电子设备100可以接收按键输入,产生与电子设备100的用户设置以及功能控制有关的键信号输入。
马达191可以产生振动提示。马达191可以用于来电振动提示,也可以用于触摸振动反馈。
指示器192可以是指示灯,可以用于指示充电状态,电量变化,也可以用于指示消息,未接来电,通知等。
SIM卡接口195用于连接SIM卡。SIM卡可以通过插入SIM卡接口195,或从SIM卡接口195拔出,实现和电子设备100的接触和分离。
本申请实施例中,该处理器110可以调用内部存储器121中存储的计算机指令,以使得电子设备执行本申请实施例中的方法。
本申请还提供了一种芯片系统,所述芯片系统包括至少一个处理器,用于实现上述任意一个实施例中电子设备执行的方法中所涉及的功能。
在一种可能的设计中,所述芯片系统还包括存储器,所述存储器用于保存程序指令和数据,存储器位于处理器之内或处理器之外。
该芯片系统可以由芯片构成,也可以包含芯片和其他分立器件。
可选地,该芯片系统中的处理器可以为一个或多个。该处理器可以通过硬件实现也可以通过软件实现。当通过硬件实现时,该处理器可以是逻辑电路、集成电路等。当通过软件实现时,该处理器可以是一个通用处理器,通过读取存储器中存储的软件代码来实现。
可选地,该芯片系统中的存储器也可以为一个或多个。该存储器可以与处理器集成在一起,也可以和处理器分离设置,本申请实施例并不限定。
示例性地,存储器可以是非瞬时性处理器,例如只读存储器ROM,其可以与处理器集成在同一块芯片上,也可以分别设置在不同的芯片上,本申请实施例对存储器的类型,以及存储器与处理器的设置方式不作具体限定。
示例性地,该芯片系统可以是现场可编程门阵列(field programmable gatearray,FPGA),可以是专用集成芯片(application specific integrated circuit,ASIC),还可以是系统芯片(system on chip,SoC),还可以是中央处理器(central processorunit,CPU),还可以是网络处理器(network processor,NP),还可以是数字信号处理电路(digital signal processor,DSP),还可以是微控制器(micro controller unit,MCU),还可以是可编程控制器(programmable logic device,PLD)或其他集成芯片。
本申请还提供一种计算机程序产品,所述计算机程序产品包括:计算机程序(也可以称为代码,或指令),当所述计算机程序被运行时,使得计算机执行上述任一个实施例中电子设备执行的方法。
本申请还提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序(也可以称为代码,或指令)。当所述计算机程序被运行时,使得计算机执行上述任一个实施例中电子设备执行的方法。
以上所述,以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的范围。
上述实施例中所用,根据上下文,术语“当…时”可以被解释为意思是“如果…”或“在…后”或“响应于确定…”或“响应于检测到…”。类似地,根据上下文,短语“在确定…时”或“如果检测到(所陈述的条件或事件)”可以被解释为意思是“如果确定…”或“响应于确定…”或“在检测到(所陈述的条件或事件)时”或“响应于检测到(所陈述的条件或事件)”。
本申请实施例中所使用的术语只是为了描述特定实施例的目的,而并非旨在作为对本申请的限制。如在本申请的说明书和所附权利要求书中所使用的那样,单数表达形式“一个”、“一种”、“所述”、“上述”、“该”和“这一”旨在也包括复数表达形式,除非其上下文中明确地有相反指示。还应当理解,本申请中使用的术语“和/或”是指并包含一个或多个所列出项目的任何或所有可能组合。
术语“第一”、“第二”仅用于描述目的,而不能理解为暗示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个该特征,在本申请实施例的描述中,除非另有说明,“多个”的含义是两个或两个以上。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线)或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如DVD)、或者半导体介质(例如固态硬盘)等。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,该流程可以由计算机程序来指令相关的硬件完成,该程序可存储于计算机可读取存储介质中,该程序在执行时,可包括如上述各方法实施例的流程。而前述的存储介质包括:ROM或随机存储记忆体RAM、磁碟或者光盘等各种可存储程序代码的介质。
Claims (16)
1.一种音频处理方法,其特征在于,所述方法包括:
电子设备将第一音频划分为N段子音频;所述N为正整数;
通过N个音频解码器对第一音频进行抽样解码,得到第二音频;其中,所述N个音频解码器中的第i个音频解码器用于对所述第一音频中的第i段子音频进行抽样解码;所述抽样解码包括将所述第i段子音频中每一音频帧的1/H进行解码;所述第二音频包含的采样点数为所述第一音频的采样点数的1/H;所述H为大于或者等于2的整数;所述i的取值为1至所述N;
对所述第二音频进行音频分析处理,得到分析结果。
2.根据权利要求1所述的方法,其特征在于,对所述第二音频进行音频分析处理,得到分析结果,具体包括:
在所述第二音频的单位时长内包含的采样点数与第一采样点数不同时,所述电子设备将所述第二音频进行重采样,得到第三音频;所述第三音频的单位时长内包含的采样点数与第一采样点数相同;所述第一采样点数为适配音频分析算法的输入音频在所述单位时长内包含的采样点数;
所述电子设备将所述第三音频输入所述音频分析算法中,得到所述分析结果。
3.根据权利要求2所述的方法,其特征在于,进行所述重采样时,所述方法还包括:
所述电子设备还调整所述第二音频除单位时长内包含的采样点数以外的音频参数,所述音频参数包括所述第二音频对应的声道数、位深中的至少一个。
4.根据权利要求2或3所述的方法,其特征在于,所述方法还包括:
所述电子设备对解码后的N段子音频进行去重处理;
将去重后的N段子音频按照时间戳进行合并,将合并后的音频作为所述第二音频;
其中,所述去重处理包括:确定解码后的第e段子音频和解码后的第e+1段子音频存在重叠;从所述解码后的第e段子音频或所述解码后的第e+1段子音频中移除重叠的部分;所述e的取值为1至所述N-1。
5.根据权利要求2-4中任一项所述的方法,其特征在于,所述音频分析算法为节点分析算法,所述分析结果为所述第一音频中的音频节点。
6.根据权利要求5所述的方法,其特征在于,电子设备将第一音频划分为N段子音频之前,所述方法还包括:
所述电子设备显示第一界面,所述第一界面中包括选中的视频和第一控件;
响应于针对所述第一控件的操作,所述电子设备确定与所述视频对应的音频作为第一音频。
7.根据权利要求6所述的方法,其特征在于,所述方法还包括:
在得到所述第一音频中的音频节点之后,所述电子设备基于所述第一音频中的音频节点调整所述视频中至少一个视频片段,得到调整后的视频;所述调整后的视频中包括所述第一音频,且所述调整后的视频中原音频被抑制;所述调整后的视频中所述第一音频的音频节点与所述视频中的画面转场部分或者全部对齐。
8.根据权利要求3所述的方法,其特征在于,通过N个音频解码器对第一音频进行抽样解码时,所述方法还包括:
所述电子设备创建第i个音频解码器的读线程以及写线程;
在所述读线程确定第一输入缓冲区空闲时,向所述第一输入缓冲区写入第一音频帧的1/H;所述第一音频帧为所述第i段子音频中的一帧音频;
所述第i个音频解码器从所述第一输入缓冲区中获取第一音频帧的1/H进行解码,将解码后的第一音频帧写入第一输出缓冲区;
在所述读线程确定第一输入缓冲区空闲时,所述写线程确定第二输出缓冲区中存在解码后的第二音频帧,且将所述解码后的第二音频帧存储至第i个音频帧队列并释放所述第二输出缓冲区;所述第二音频帧为第一音频帧之前的音频帧。
9.根据权利要求8所述的方法,其特征在于,所述方法还包括:
在所述读线程所读取音频帧的时间戳等于所述第i段子音频的结束时间戳时,所述电子设备将所述第i个音频帧队列中的音频帧按照时间戳进行合并,得到解码后的第i段子音频。
10.根据权利要求5-9中任一项所述的方法,其特征在于,所述音频分析算法为节点分析算法时,所述电子设备将所述第三音频输入所述音频分析算法中,得到所述分析结果,具体包括:
所述电子设备将所述第三音频划分为R段子音频;所述R段子音频中第j段子音频的末尾与第j+1段子音频的开始存在重叠音频;所述j的取值从1至R-1;重叠程度与所述音频分析算法相关;所述R大于或者等于2;
基于所述节点分析算法对所述R段子音频进行分析,得到R段子音频各自对应的音频节点。
11.根据权利要求10所述的方法,其特征在于,所述方法还包括:将所述R段子音频各自对应的音频节点进行合并,得到所述第一音频中的音频节点。
12.根据权利要求11所述的方法,其特征在于,将所述R段子音频各自对应的音频节点进行合并之前,所述方法还包括:
删除所述第j段子音频中与所述第j+1段子音频中重复的音频节点。
13.根据权利要求1-12中任一项所述的方法,其特征在于,在所述第一音频的长度小于阈值时,所述N等于1;在所述第一音频的长度大于或者等于所述阈值时,所述N大于或者等于2。
14.一种电子设备,其特征在于,包括:一个或多个处理器和存储器;所述存储器与所述一个或多个处理器耦合,所述存储器用于存储计算机程序代码,所述计算机程序代码包括计算机指令,所述一个或多个处理器调用所述计算机指令以使得所述电子设备执行如权利要求1-13中任一项所述的方法。
15.一种计算机可读存储介质,包括计算机指令,其特征在于,当所述计算机指令在电子设备上运行时,使得所述电子设备执行如权利要求1-13中任一项所述的方法。
16.一种芯片系统,所述芯片系统应用于电子设备,其特征在于,所述芯片系统包括一个或多个处理器,所述处理器用于调用计算机指令以使得所述电子设备执行如权利要求1-13中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311852345.5A CN118447870A (zh) | 2023-12-28 | 2023-12-28 | 音频处理方法和电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311852345.5A CN118447870A (zh) | 2023-12-28 | 2023-12-28 | 音频处理方法和电子设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN118447870A true CN118447870A (zh) | 2024-08-06 |
Family
ID=92332145
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311852345.5A Pending CN118447870A (zh) | 2023-12-28 | 2023-12-28 | 音频处理方法和电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN118447870A (zh) |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6035096A (en) * | 1996-09-03 | 2000-03-07 | Mitsubishi Denki Kabushiki Kaisha | Video/audio decoding and reproducing apparatus and method |
CN1525438A (zh) * | 2002-12-14 | 2004-09-01 | 三星电子株式会社 | 立体声音频编码方法及装置,音频流解码方法及装置 |
CN101872618A (zh) * | 1995-12-01 | 2010-10-27 | Dts(Bvi)有限公司 | 多通道音频编码器 |
US20140029701A1 (en) * | 2012-07-29 | 2014-01-30 | Adam E. Newham | Frame sync across multiple channels |
CN110602550A (zh) * | 2019-08-09 | 2019-12-20 | 咪咕动漫有限公司 | 一种视频处理方法、电子设备及存储介质 |
CN112153463A (zh) * | 2020-09-04 | 2020-12-29 | 上海七牛信息技术有限公司 | 一种多素材视频合成方法、装置、电子设备及存储介质 |
CN113259761A (zh) * | 2020-02-13 | 2021-08-13 | 华为技术有限公司 | 视频处理方法和视频处理的设备、存储介质 |
CN113365147A (zh) * | 2021-08-11 | 2021-09-07 | 腾讯科技(深圳)有限公司 | 基于音乐卡点的视频剪辑方法、装置、设备及存储介质 |
CN113643728A (zh) * | 2021-08-12 | 2021-11-12 | 荣耀终端有限公司 | 一种音频录制方法、电子设备、介质及程序产品 |
CN116761027A (zh) * | 2023-06-15 | 2023-09-15 | 北京字跳网络技术有限公司 | 视频处理方法、装置、设备、介质及程序产品 |
-
2023
- 2023-12-28 CN CN202311852345.5A patent/CN118447870A/zh active Pending
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101872618A (zh) * | 1995-12-01 | 2010-10-27 | Dts(Bvi)有限公司 | 多通道音频编码器 |
US6035096A (en) * | 1996-09-03 | 2000-03-07 | Mitsubishi Denki Kabushiki Kaisha | Video/audio decoding and reproducing apparatus and method |
CN1525438A (zh) * | 2002-12-14 | 2004-09-01 | 三星电子株式会社 | 立体声音频编码方法及装置,音频流解码方法及装置 |
US20140029701A1 (en) * | 2012-07-29 | 2014-01-30 | Adam E. Newham | Frame sync across multiple channels |
CN110602550A (zh) * | 2019-08-09 | 2019-12-20 | 咪咕动漫有限公司 | 一种视频处理方法、电子设备及存储介质 |
CN113259761A (zh) * | 2020-02-13 | 2021-08-13 | 华为技术有限公司 | 视频处理方法和视频处理的设备、存储介质 |
CN112153463A (zh) * | 2020-09-04 | 2020-12-29 | 上海七牛信息技术有限公司 | 一种多素材视频合成方法、装置、电子设备及存储介质 |
CN113365147A (zh) * | 2021-08-11 | 2021-09-07 | 腾讯科技(深圳)有限公司 | 基于音乐卡点的视频剪辑方法、装置、设备及存储介质 |
CN113643728A (zh) * | 2021-08-12 | 2021-11-12 | 荣耀终端有限公司 | 一种音频录制方法、电子设备、介质及程序产品 |
CN116761027A (zh) * | 2023-06-15 | 2023-09-15 | 北京字跳网络技术有限公司 | 视频处理方法、装置、设备、介质及程序产品 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112559098B (zh) | 一种卡片渲染方法及电子设备 | |
CN110045960B (zh) | 基于芯片的指令集处理方法、装置及存储介质 | |
CN110070896B (zh) | 图像处理方法、装置、硬件装置 | |
WO2021213451A1 (zh) | 轨迹回放方法及相关装置 | |
CN113838490B (zh) | 视频合成方法、装置、电子设备及存储介质 | |
CN113726950A (zh) | 一种图像处理方法和电子设备 | |
US20230307004A1 (en) | Audio data processing method and apparatus, and device and storage medium | |
WO2022143258A1 (zh) | 一种语音交互处理方法及相关装置 | |
WO2021213351A1 (zh) | 图片加载方法及相关装置 | |
CN114979785A (zh) | 视频处理方法和相关装置 | |
CN105516485A (zh) | 录音方法及装置 | |
KR20190081701A (ko) | 사진촬영에 음악을 링크하는 전자 장치 및 이의 제어 방법 | |
CN115053516A (zh) | 存储图像的电子装置和方法 | |
CN114253872B (zh) | 电子设备及其内存回收方法、介质 | |
CN117133306A (zh) | 立体声降噪方法、设备及存储介质 | |
WO2016048734A1 (en) | Processing parameters for operations on blocks while decoding images | |
CN114979533A (zh) | 一种视频录制方法、装置及终端 | |
CN118447870A (zh) | 音频处理方法和电子设备 | |
CN115543350A (zh) | 一种编译优化方法和装置 | |
CN115145513A (zh) | 一种投屏方法、系统及相关装置 | |
CN116055799B (zh) | 多轨道视频编辑方法、图形用户界面及电子设备 | |
CN114253737B (zh) | 电子设备及其内存回收方法、介质 | |
WO2024083014A1 (zh) | 界面生成方法及电子设备 | |
CN115016871B (zh) | 多媒体编辑方法、电子设备和存储介质 | |
CN113485969B (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 | ||
CB02 | Change of applicant information | ||
CB02 | Change of applicant information |
Country or region after: China Address after: Unit 3401, unit a, building 6, Shenye Zhongcheng, No. 8089, Hongli West Road, Donghai community, Xiangmihu street, Futian District, Shenzhen, Guangdong 518040 Applicant after: Honor Terminal Co.,Ltd. Address before: 3401, unit a, building 6, Shenye Zhongcheng, No. 8089, Hongli West Road, Donghai community, Xiangmihu street, Futian District, Shenzhen, Guangdong Applicant before: Honor Device Co.,Ltd. Country or region before: China |