提供音频相关信息的方法、系统、客户端及服务器.pdf

上传人:Y94****206 文档编号:973025 上传时间:2018-03-22 格式:PDF 页数:27 大小:1.12MB
返回 下载 相关 举报
摘要
申请专利号:

CN200910173469.4

申请日:

2009.09.18

公开号:

CN101651694A

公开日:

2010.02.17

当前法律状态:

撤回

有效性:

无权

法律详情:

发明专利申请公布后的视为撤回IPC(主分类):H04L 29/06申请公布日:20100217|||实质审查的生效IPC(主分类):H04L 29/06申请日:20090918|||公开

IPC分类号:

H04L29/06; G06F17/30

主分类号:

H04L29/06

申请人:

北京亮点时间科技有限公司

发明人:

王红宝

地址:

100007北京市东城区东直门内北小街青龙胡同1号歌华大厦B1120室

优先权:

专利代理机构:

隆天国际知识产权代理有限公司

代理人:

邢雪红

PDF下载: PDF下载
内容摘要

本发明公开了一种提供音频相关信息的方法、系统、客户端和服务器。该方法包括:客户端对本地音频文件进行解析,获取指定时长的音频片段作为原始指纹数据;对所述原始指纹数据进行帧划分,并对每一帧分别执行快速傅立叶变换FFT,将所述原始指纹数据转换为数列的集合作为客户端指纹信息;将所述客户端指纹信息发送给特定的服务器,与所述服务器中预存的服务器端指纹信息进行匹配;当与一服务器端指纹信息匹配成功时,查找所述服务器端指纹信息对应的音频信息并下发给客户端。通过本发明,能够保证客户端的本地音频文件具有完整而且统

权利要求书

1: 一种提供音频相关信息的方法,其特征在于,包括以下步骤: 步骤S1:客户端对本地音频文件进行解析,获取指定时长的音频片 段作为原始指纹数据; 步骤S2:对所述原始指纹数据进行特征提取,作为客户端指纹信息; 步骤S3:将所述客户端指纹信息发送给特定的服务器,与所述服务 器中预存的服务器端指纹信息进行匹配; 步骤S4:当与一服务器端指纹信息匹配成功时,查找所述服务器端 指纹信息对应的音频信息并下发给客户端。
2: 根据权利要求1所述的提供音频相关信息的方法,其特征在于, 所述步骤S1包括: 步骤S11:提取本地音频文件的头信息,包括音频文件的播放时长 信息; 步骤S12:识别所述音频文件的播放时长是否超出所述指定时长, 是则执行步骤S13,否则执行步骤S14; 步骤S13:截取所述音频文件的前n秒音频片段作为原始指纹数据, 其中,n秒为所述指定时长; 步骤S14:将所述音频文件的完整音频作为原始指纹数据。
3: 根据权利要求2所述的提供音频相关信息的方法,其特征在于, 所述步骤S11之前还包括步骤S10:将所述本地音频文件格式转换为wav 文件,并指定所述wav文件的采样率和采样值。
4: 根据权利要求1所述的提供音频相关信息的方法,其特征在于, 所述步骤S2之前还包括: 步骤Sa:根据本地音频文件头信息中的声道信息,对双声道数据执 行合并声道值处理并执行步骤Sb,对单声道数据直接执行步骤Sb; 步骤Sb:对音频文件执行去噪处理,并重新计算去除噪声后的音频 文件播放时长信息; 步骤Sc:对所述音频文件执行振幅归一化处理。
5: 根据权利要求1所述的提供音频相关信息的方法,其特征在于, 所述步骤S2中对原始指纹数据进行特征提取的步骤包括: 步骤S21:对原始指纹数据进行帧划分; 步骤S22:对划分后的每一帧分别执行快速傅立叶变换FFT,将所述 原始指纹数据转换为数列的集合; 步骤S23:对转换后的数列进行筛选,获得客户端指纹信息。
6: 根据权利要求1所述的提供音频相关信息的方法,其特征在于, 所述步骤S3中将所述客户端指纹信息发送给特定的服务器的步骤为:将 所述客户端指纹信息进行base64编码,将编码后的结果发送给所述服务 器;以及,还包括所述服务器解码接收到的数据后再将其与服务器端指 纹信息进行匹配。
7: 根据权利要求1所述的提供音频相关信息的方法,其特征在于, 所述步骤S3中与服务器端指纹信息进行匹配的步骤包括: 计算客户端指纹信息向量与任一服务器端指纹信息向量的余弦夹 角,当计算结果不小于预设阈值时,所述客户端指纹信息与所述服务器 端指纹信息匹配成功。
8: 一种提供音频相关信息的系统,用于通过特定的服务器为客户端 本地音频文件提供音频相关信息;其特征在于,包括: 设置在客户端中的文件解析模块,用于对本地音频文件进行解析, 获取指定时长的音频片段作为原始指纹数据; 设置在客户端中的文件变换模块,与所述文件解析模块连接,用于 对所述原始指纹数据进行特征提取,作为客户端指纹信息; 设置在客户端中的指纹信息发送模块,与所述文件变换模块连接, 用于将所述客户端指纹信息发送给所述服务器; 设置在所述服务器中的指纹信息接收模块,用于接收从客户端发送 的客户端指纹信息; 设置在所述服务器中的数据库,用于保存音频信息和服务器端指纹 信息; 设置在所述服务器中的指纹信息匹配模块,与所述指纹信息接收模 块和所述数据库连接,用于将所述客户端指纹信息与所述服务器中预存 的服务器端指纹信息进行匹配; 设置在所述服务器中的音频信息下发模块,与所述指纹信息匹配模 块和所述数据库连接,用于在所述客户端指纹信息与一服务器端指纹信 息匹配成功时,查找所述服务器端指纹信息对应的音频信息并下发给客 户端。
9: 一种提供音频相关信息的客户端,其特征在于,包括: 文件解析模块,用于对本地音频文件进行解析,获取指定时长的音 频片段作为原始指纹数据; 文件变换模块,与所述文件解析模块连接,用于对所述原始指纹数 据进行特征提取,作为客户端指纹信息; 指纹信息发送模块,与所述文件变换模块连接,用于将所述客户端 指纹信息发送给所述服务器,以使所述服务器在客户端指纹信息与一服 务器端指纹信息匹配成功时,返回对应的音频信息。
10: 一种提供音频相关信息的服务器,其特征在于,包括: 指纹信息接收模块,用于接收从客户端发送的客户端指纹信息; 数据库,用于保存音频信息和服务器端指纹信息; 指纹信息匹配模块,与所述指纹信息接收模块和所述数据库连接, 用于将所述客户端指纹信息与所述服务器中预存的服务器端指纹信息进 行匹配; 音频信息下发模块,与所述指纹信息匹配模块和所述数据库连接, 用于在所述客户端指纹信息与一服务器端指纹信息匹配成功时,查找所 述服务器端指纹信息对应的音频信息并下发给客户端。

说明书


提供音频相关信息的方法、系统、客户端及服务器

    【技术领域】

    本发明涉及信息识别技术领域,尤其涉及一种提供音频相关信息的方法、系统、客户端及服务器。

    背景技术

    随着网络技术的发展,互联网所能够支持的业务日益丰富,比如,人们现在可以通过网络下载自己喜欢的音频(包括歌曲、音乐);由于其中蕴含着巨大的商机和利润,因此,很多服务商都开始提供相关的服务。

    但是,不同服务商所提供的音频服务由于不具有统一的标准,因而,即使是对同一音频而言,如果是在不同的服务网站进行下载,其所携带的音频信息(比如曲目名称、歌手信息、歌词信息等)往往会存在很大的出入。举例来说,有的音频段落下载完成后,会携带曲目名称,而有的音频段落下载完成后,只会携带其在专辑中的序号,如“track 5”;更有甚者,可能下载后音频所携带的信息根本就是错误的。

    可以看出,不完整、不准确甚至于错误的音频信息会影响用户对于下载音频的收听和进一步的分类、存储,不可避免的给用户带来不良的使用感受。

    【发明内容】

    本发明的实施例旨在提供能够提供音频相关信息的技术方案,从而为客户端的音频提供完整统一的音频信息。

    为实现上述目的,本发明的实施例提供了一种提供音频相关信息的方法,包括以下步骤:

    步骤S1:客户端对本地音频文件进行解析,获取指定时长的音频片段作为原始指纹数据;

    步骤S2:对所述原始指纹数据进行特征提取,作为客户端指纹信息;

    步骤S3:将所述客户端指纹信息发送给特定的服务器,与所述服务器中预存的服务器端指纹信息进行匹配;

    步骤S4:当与一服务器端指纹信息匹配成功时,查找所述服务器端指纹信息对应的音频信息并下发给客户端。

    较佳的,该步骤S1可以包括:

    步骤S11:提取本地音频文件的头信息,包括音频文件的播放时长信息;

    步骤S12:识别所述音频文件的播放时长是否超出所述指定时长,是则执行步骤S13,否则执行步骤S14;

    步骤S13:截取所述音频文件的前n秒音频片段作为原始指纹数据,其中,n秒为所述指定时长;

    步骤S14:将所述音频文件的完整音频作为原始指纹数据。

    较佳的,该步骤S11之前还可以包括步骤S10:将所述本地音频文件格式转换为wav文件,并指定所述wav文件的采样率和采样值。

    较佳的,该步骤S2之前还可以包括:

    步骤Sa:根据本地音频文件头信息中的声道信息,对双声道数据执行合并声道值处理并执行步骤Sb,对单声道数据直接执行步骤Sb;

    步骤Sb:对音频文件执行去噪处理,并重新计算去除噪声后的音频文件播放时长信息;

    步骤Sc:对所述音频文件执行振幅归一化处理。

    较佳的,步骤S2中对原始指纹数据进行特征提取的步骤包括:

    步骤S21:对原始指纹数据进行帧划分;

    步骤S22:对划分后的每一帧分别执行快速傅立叶变换FFT,将所述原始指纹数据转换为数列的集合;

    步骤S23:对转换后的数列进行筛选,获得客户端指纹信息。:

    较佳的,步骤S3中将所述客户端指纹信息发送给特定的服务器的步骤为:将所述客户端指纹信息进行base64编码,将编码后的结果通过socket发送给所述服务器;以及,还包括所述服务器解码接收到的数据后再将其与服务器端指纹信息进行匹配。

    较佳的,步骤S3中与服务器端指纹信息进行匹配的步骤包括:计算客户端指纹信息向量与任一服务器端指纹信息向量的余弦夹角,当计算结果大于预设阈值时,所述客户端指纹信息与所述服务器端指纹信息匹配成功。

    本发明的实施例还提供了一种提供音频相关信息的系统,用于通过特定的服务器为客户端本地音频文件提供音频相关信息;包括:

    设置在客户端中的文件解析模块,用于对本地音频文件进行解析,获取指定时长的音频片段作为原始指纹数据;

    设置在客户端中地文件变换模块,与所述文件解析模块连接,用于对所述原始指纹数据进行特征提取,作为客户端指纹信息;

    设置在客户端中的指纹信息发送模块,与所述文件变换模块连接,用于将所述客户端指纹信息发送给所述服务器;

    设置在所述服务器中的指纹信息接收模块,用于接收从客户端发送的客户端指纹信息;

    设置在所述服务器中的数据库,用于保存音频信息和服务器端指纹信息;

    设置在所述服务器中的指纹信息匹配模块,与所述指纹信息接收模块和所述数据库连接,用于将所述客户端指纹信息与所述服务器中预存的服务器端指纹信息进行匹配;

    设置在所述服务器中的音频信息下发模块,与所述指纹信息匹配模块和所述数据库连接,用于在所述客户端指纹信息与一服务器端指纹信息匹配成功时,查找所述服务器端指纹信息对应的音频信息并下发给客户端。

    本发明的实施例还提供了一种提供音频相关信息的客户端,包括:

    文件解析模块,用于对本地音频文件进行解析,获取指定时长的音频片段作为原始指纹数据;

    文件变换模块,与所述文件解析模块连接,用于对所述原始指纹数据进行特征提取,作为客户端指纹信息;

    指纹信息发送模块,与所述文件变换模块连接,用于将所述客户端指纹信息发送给所述服务器,以使所述服务器在客户端指纹信息与一服务器端指纹信息匹配成功时,返回对应的音频信息。

    本发明的实施例还提供了一种提供音频相关信息的服务器,包括:

    指纹信息接收模块,用于接收从客户端发送的客户端指纹信息;

    数据库,用于保存音频信息和服务器端指纹信息;

    指纹信息匹配模块,与所述指纹信息接收模块和所述数据库连接,用于将所述客户端指纹信息与所述服务器中预存的服务器端指纹信息进行匹配;

    音频信息下发模块,与所述指纹信息匹配模块和所述数据库连接,用于在所述客户端指纹信息与一服务器端指纹信息匹配成功时,查找所述服务器端指纹信息对应的音频信息并下发给客户端。

    由上述技术方案可知,本发明的实施例通过解析和匹配客户端本地音频文件,采用服务器统一下发音频信息,具有以下有益效果:

    1、保证客户端的本地音频文件具有完整而且统一的音频信息;

    2、提高了用户的使用感受。

    通过以下参照附图对优选实施例的说明,本发明的上述以及其它目的、特征和优点将更加明显。

    【附图说明】

    图1为本发明所提供的提供音频相关信息的方法一实施例的流程图;

    图2A为图1所示实施例中获取原始指纹数据一具体实施例的流程图;

    图2B为进行音频统一化和归一化处理的具体实施例的流程图;

    图2C为图1所示实施例中获取客户端指纹信息一具体实施例的流程图;

    图2D为图1所示实施例中进行指纹信息匹配一具体实施例的示意图;

    图3为本发明所提供的提供音频相关信息的系统一实施例的框图;

    图4为图3所示系统的应用示意图;

    图5为本发明所提供的提供音频相关信息的客户端一实施例的框图;

    图6A、6B为图5所示客户端操作流程的实施例示意图;

    图7为本发明所提供的提供音频相关信息的服务器一实施例的框图;

    图8为图7所示服务器操作流程的实施例示意图。

    【具体实施方式】

    下面将详细描述本发明的具体实施例。应当注意,这里描述的实施例只用于举例说明,并不用于限制本发明。

    基于规范描述和方便阅读的考虑,逐一定义本发明专利申请文件中出现的术语如下:

    指纹信息:是指基于音频文件数据、按照预设的算法进行特征提取所生成的用于进行匹配的数据。

    需要说明的是,上述各术语仅作为指称其意指的名称之一,因此凡意指与其相同或近似的名称均应视为其等价物。

    本发明的主要构思在于通过在客户端进行音频文件的特征提取,基于特征匹配向客户端提供统一完整的音频信息,来解决现有音频信息不完整甚至错误的问题。这样,为帮助读者更好的理解本发明,下面将详细介绍本发明所提供的提供音频相关信息的技术方案。

    首先,请参见图1,显示了本发明所提供的提供音频相关信息的方法一实施例的流程图,通过特定的服务器统一向客户端提供音频信息,包括以下步骤:

    步骤S1:客户端对本地音频文件进行解析,获取指定时长的音频片段作为原始指纹数据;

    其中,客户端可以是有线互联网客户端,比如PC机等,也可以是无线互联网客户端,比如移动终端等;

    本地音频文件可以是客户端通过互联网下载获得的音频文件,也可以是通过其他方式,比如从其他设备拷贝获得的音频文件;当然,该音频文件的格式可能为mp3、wmv等等不同的格式,其所携带的音频信息在此时往往也比较杂乱,存在不完整甚至错误的问题;

    步骤S2:对原始指纹数据进行特征提取,作为客户端指纹信息;

    特征提取的方法一般是通过将时域信号变换为频域信号,从而获得数列的集合作为后续处理的指纹信息;由于进行变换的数据不一定每一字节都是有效且有代表性的,因此较佳的技术方案进一步包括对获得的数列集合加以筛选,后续将通过具体的实施例加以描述;

    步骤S3:将客户端指纹信息发送给特定的服务器,与服务器中预存的服务器端指纹信息进行匹配;

    其中,为了便于传输信息,客户端可以将生成的客户端指纹信息进行编码,如进行base64编码,然后将编码后的结果通过socket发送给服务器,并等待服务器返回相应的结果;

    相应的,服务器在执行匹配之前,需要先将接收的base64编码内容进行解码操作,得到相应的客户端指纹信息后再执行匹配处理;

    本领域技术人员可以根据需要选择匹配手段,比如可以采用按数值依次匹配算法,这种算法虽然效率低下,但在比较小的范围内易于实现;本发明进一步提供了一种较为简便的向量余弦夹角算法,将在后续的实施例中加以描述;

    步骤S4:当与一服务器端指纹信息匹配成功时,查找服务器端指纹信息对应的音频信息并下发给客户端;

    其中,音频信息可以包括歌曲名称、歌手名称、所属专辑名称等等;

    上述服务器端指纹信息和音频信息都存储在数据库中,每一个服务器端指纹信息对应一个ID存放,相应的音频信息对应同样的ID存放,这样,当服务器端指纹信息匹配成功后,即可根据其ID查找出对应的歌曲信息,并下发给客户端;

    通过上述步骤S1~S4可以看出,无论客户端音频文件是否携带正确或者完整的音频信息,通过生成客户端指纹信息并在服务器端进行匹配,都能够获得统一完整的音频信息,便于用户了解音频文件相关信息,提高了用户的使用感受。

    下面,通过几个具体实施例对本发明的提供音频相关信息的方法进行进一步的描述。

    基于图1所示实施例,其步骤S1可以包括以下步骤,如图2A所示:

    步骤S10:将本地音频文件格式转换为wav文件,并指定所述wav文件的采样率和采样值;

    需要指出的是,本步骤S10是一个优选的步骤,本领域技术人员同样可以按照原有的本地音频文件格式进行后续的处理;但是那种情况下,需要针对不同的音频文件格式设计不同的处理方案,因此不利于实现;

    具体的,本步骤S10可以利用开源工具包lame将本地音频文件格式转换为wav格式;以及,为了便于说明,在本发明的实施例中,转换后wav格式文件(称为wave文件)的采样率统一为44.1KHz,采样值统一为16bit,下同;本领域技术人员可以了解,可以根据实际需要选用其他的采样率和采样值;

    步骤S11:提取本地音频文件的头信息;

    以对wave文件进行头信息提取为例,由于wave文件是由若干个块(Chunk)组成的,按照在文件中出现的位置,可以包括:RIFF WAVEChunk,Format Chunk,Fact Chunk(可选),Data Chunk……如表1所示:

      RIFF WAVE Chunk  ID=′RIFF′  RiffType=′WAVE′  Format Chunk  Fact Chunk(optional)  Data Chunk

    表1

    通过提取wave文件中的头信息,可以判断wave文件的正确性以及必要的文件信息,如音频的采样率、采样bit率、音频的长度、音频文件的播放时长信息等信息;

    其中,读取wave文件的前16个字节,可以判断该音频文件是否为合法的wave文件;读取wave文件的23和24字节的声道值,可以识别该wave文件是单声道(声道值为1)还是双声道(声道值为2);读取wave文件第25到28字节能够得到采样率(对于本实施例而言,采样率为44.1KHz);读取wave文件第35和36字节能够获得bit率(对于本实施例而言,比特率为16bit);读取wave文件第53到56字节可以确定音频文件的播放时长信息,等等;

    步骤S12:识别音频文件的播放时长是否超出所述指定时长,是则执行步骤S13,否则执行步骤S14;

    一般来说,对于歌曲和音乐来说,进行匹配并不需要提取整首乐曲的特征,只需取指定时长的内容作为原始指纹数据;但如果音频文件整个播放时长不足指定时长,那么便直接把整个音频文件作为原始指纹数据;

    举个例子来说,一首歌曲的长度一般在3-5分钟,所以可以取前n秒作为原始指纹数据,比如,n为90,即取前90秒作为原始指纹数据;当然,也可以设置其他的取值点,比如取前140秒,前160秒,等等;

    进一步的,播放时长与指定时长n的比较可以转换为数据长度的比较;

    其中,音频文件播放时长信息事实上是根据Data Chunk识别出的数据长度信息获得的;在采样值为16bit的情况下,播放时长=音频文件数据长度/(采样率*声道值*2),因此能够基于数据长度信息获取播放时长信息;其中,单声道的声道值为1,双声道的声道值为2;以及,之所以采样率*声道值需要乘以2,是因为16bit是2byte,如果选用其他的采样值,相应变换该系数;

    基于同样原理,在采样值为16bit的情况下,当前n秒作为指定时长以及采样值为16bit时,指定时长信息可以转换为所应该截取的原始指纹数据的长度,即指定时长n*采样率*声道值*2;

    这样,播放时长与指定时长的比较即转换为音频文件数据长度和所应该截取的原始指纹数据的长度的比较;如果前者大于后者,则执行步骤S13;如果前者小于等于后者,则执行步骤S14;

    步骤S13:截取所述音频文件的前n秒音频片段作为原始指纹数据,其中,n秒为所述指定时长;

    本步骤S13可以通过截取n*采样率*声道值*2长度的数据作为原始指纹数据实现;

    进一步的,可以设定原始指纹数据的样本个数;比如,设置该样本个数N=44100*135=5953500个,则每一个样本包括2个字节(单声道)或者4个字节(双声道)的数据;

    步骤S14:将所述音频文件的完整音频作为原始指纹数据,即将音频文件本身作为原始指纹数据;

    上述步骤S13或者步骤S14所获得的原始指纹数据可以暂存到Buffer中,以进行后续的处理;

    可以看出,图2A所示实施例提供了一个获取原始指纹数据的具体实施例,但本领域技术人员应当理解其并非对本发明技术方案的限制,并非获取原始指纹数据的唯一实施方式。

    在步骤S1之后,优选的,如图2B所示,可进一步执行以下步骤:

    步骤Sa:根据本地音频文件头信息中的声道信息,对双声道数据执行合并声道值处理并执行步骤Sb,对单声道数据直接执行步骤Sb;

    本步骤Sa属于优选操作,合并声道值以便于后续的计算,方便处理;

    具体的,以wave文件为双声道为例,按照以下公式计算左右声道的互相关性:其中,S为wave文件的二进制数据内容,n=0,2,4……N;

    对计算出的互相关性的值加以识别,如果小于-0.98,则用左声道数据减去右声道数据求取均值作为单声道数据,否则用左声道加上右声道的数据求均值作为单声道数据;

    步骤Sb:对音频文件执行去噪处理,并重新计算去除噪声后的音频文件播放时长信息;

    本步骤Sb同样是优选步骤;

    由于基本上所有的音频都会携带噪声,通常来说,噪声出现在音频文件的首尾,比如以前磁带在歌曲为开始或者结束的几秒钟内播放会出现“沙沙”的声音;这段噪声对后续生成指纹信息而言是毫无意义的数据内容,因此将其去除将有利于后续的识别和处理;

    去除噪声后需要重新计算音频文件的播放时长信息。

    步骤Sc:对所述音频文件执行振幅归一化处理;

    本步骤Sc还是优选步骤;

    具体的,可以通过以下方法实现振幅的归一化:

    先按照以下公式进行计算:max=Max(|Sn|),其中Max为取最大值函数,S为wave文件的二进制数据内容或者说是原始数据,n=0,1,2……N;

    根据得到的max的值,计算系数:

    k=1max>=MAXSAMPLEMAXSAMPLEmaxmax<MAXSAMPLE,]]>其中,MAXSAMPLE为双声道16bit采样最大的振幅,其值为32767;

    对原始数据每个字节的数据乘以系数k,将振幅规格化;

    可以看出,通过上述优选的三个步骤Sa~Sc,能够将各种来源的音频统一化和归一化,从而使不同来源的同一音频文件的差异性尽量减少;

    当然,由于上述三个步骤都为优选步骤,因此也可以跳过,在执行步骤S1之后,直接执行以下步骤S2。

    基于图1所示实施例,其步骤S2可以包括以下步骤,如图2C所示:

    步骤S21:对原始指纹数据进行帧划分;

    为了便于特征提取,我们对原始指纹数据进行帧划分;一般来说,可以以10~30ms为一帧,我们这里设置一帧frame的大小为8192个样本;

    这样,当原始指纹数据的样本个数为N=5953500时,以一帧M=8192个样本为例进行划分,采样帧的个数为num=N/M=727;

    步骤S22:对划分后的每一采样帧分别执行快速傅立叶变换(FFT),将原始指纹数据转换为数列的集合;

    本实施例中所采用的快速傅立叶变换,是离散傅立叶变换的快速算法,公式为:Xm=Σk=0M-1Ske-j2πkmM,m=0,1,2......M2;]]>

    其中,输入的信号为时域信号:Sk=S0,S1,S2,……SM(M个采样信号样本);输出信号为频域信号:FT=X0,X1,X2,......XM2,]]>一共个复数。因为X为复数系列,可以得到Xm=|Xm|ejθm;]]>

    至本步骤S22将音频信号生成若干个数列的集合,其已经可以成为指纹信息;但由于这些数据不一定每个数据就是有效且具有代表性的,所以,较佳的实施方式为对其进行筛选,即执行步骤S23;

    步骤S23:对转换后的数列进行筛选,具体为重塑采样的帧的信号。并将筛选后的数据放入二维数组内,包括:

    在每一帧中提取约定个数的、具有最大值的样本点;以上述实施例所提供的数据为例,从每帧8192个样本点中提取约定个数的样本点,比如,具有最大值的40个样本点;

    将提取出的样本点放入采样的Buffer中,则该Buffer为一个二维矩阵,以727帧和每帧40个样本点为例,二位矩阵为727×40;

    把此二维矩阵转换成一个线性的数组,比如,通过基于分块的奇异值分解(SVD)变换,生成的是大小为7×40的一个矩阵;

    将所述矩阵乘以MAXSAMPLE进行归一化处理,得到的Y=280个字符即作为最终的客户端指纹信息;

    可以看出,图2C所示实施例提供了一个获取客户端指纹信息的具体实施例,但本领域技术人员应当理解其并非对本发明技术方案的限制,并非获取原始指纹数据的唯一实施方式。

    以及,基于图1所示实施例,其步骤S3进行指纹信息匹配可以采用向量余弦夹角算法实现,具体如下:

    按照公式cosA=⟨a,b⟩|a||b|,]]>其中a为客户端指纹信息的矩阵向量,b为服务端端指纹信息的矩阵向量;

    该公式展开为cosA=ΣanbnΣan2·Σbn2,]]>其中n=0,1,2……Y;如果cosA的值大于等于0.85即可认为匹配成功,请参考图2D。

    本发明还提供了一种提供音频相关信息的系统,其一实施例如图3所示,该提供音频相关信息的系统300用于通过特定的服务器为客户端本地音频文件提供音频相关信息。

    从整体上而言,该系统300分为客户端310和服务器320两个部分,但客户端310可以为多个,每个客户端与服务器320的连接关系相同,请参考图4,显示了该系统300的一应用示意图:

    客户端310生成指定格式的客户端指纹信息,将客户端指纹信息传送给服务器320进行匹配后,接受服务器320返回的音乐相关信息;同时,服务器320接受客户端发送来的指纹信息,通过指定的搜索算法识别到对应的指纹信息,从而将整理好的音频信息从数据库中搜索出来,将此信息反馈给客户端310。

    为了实现上述方案,包括:

    设置在客户端310中的文件解析模块311,用于对本地音频文件进行解析,获取指定时长的音频片段作为原始指纹数据;

    设置在客户端310中的文件变换模块312,与文件解析模块311连接,用于对原始指纹数据进行特征提取,作为客户端指纹信息;作为一具体实施例,该文件变换模块312可以通过帧划分+FFT变换+筛选的方式实现特征提取;

    设置在客户端310中的指纹信息发送模块313,与文件变换模块312连接,用于将客户端指纹信息发送给服务器320;作为一具体实施例,可以采用base64编码发送,以便于传输;

    设置在服务器320中的指纹信息接收模块321,用于接收从客户端310发送的客户端指纹信息;

    设置在服务器320中的数据库322,用于保存音频信息和服务器端指纹信息;

    设置在服务器320中的指纹信息匹配模块323,与指纹信息接收模块321和数据库322连接,用于将客户端指纹信息与服务器数据库322中预存的服务器端指纹信息进行匹配;作为一具体实施例,可以采用向量余弦夹角算法实现信息匹配;此外,对于以base64编码发送的客户端指纹信息,指纹信息匹配模块323在执行匹配之前还要进行base64解码操作;

    设置在服务器320中的音频信息下发模块324,与指纹信息匹配模块323和数据库322连接,用于在客户端指纹信息与一服务器端指纹信息匹配成功时,查找服务器端指纹信息对应的音频信息并下发给客户端310。

    可以看出,通过本发明的提供音频相关信息的系统300,客户端310能够获得统一完整的音频信息,便于用户了解音频文件相关信息,提高了用户的使用感受;

    上述提供音频相关信息的系统300的内部具体工作方式请参见本发明方法的相应步骤。

    本发明还提供了一种提供音频相关信息的客户端,其一实施例如图5所示,该提供音频相关信息的客户端510包括:

    文件解析模块511,用于对本地音频文件进行解析,获取指定时长的音频片段作为原始指纹数据;

    文件变换模块512,与文件解析模块511连接,用于对原始指纹数据进行特征提取,作为客户端指纹信息;

    指纹信息发送模块513,与文件变换模块512连接,用于将客户端指纹信息发送给服务器,以使服务器在客户端指纹信息与一服务器端指纹信息匹配成功时,返回对应的音频信息。

    其中,上述提供音频相关信息的客户端510的内部具体工作方式请参见本发明方法的相应步骤;例如,上述提供音频相关信息的客户端510可以完成如图6A所示操作,而且,作为一具体实施例,该文件解析模块511可以通过图6B所示步骤完成文件解析;其中,合并声道值处理、去噪处理和规格化样本(即振幅归一化)处理可由专门设置的模块完成,图5中未示。

    本发明还提供了一种提供音频相关信息的服务器,其一实施例如图7所示,该提供音频相关信息的服务器720包括:

    指纹信息接收模块721,用于接收从客户端发送的客户端指纹信息;

    数据库722,用于保存音频信息和服务器端指纹信息;

    指纹信息匹配模块723,与指纹信息接收模块721和数据库722连接,用于将客户端指纹信息与数据库722中预存的服务器端指纹信息进行匹配;

    音频信息下发模块724,与指纹信息匹配模块723和数据库722连接,用于在客户端指纹信息与一服务器端指纹信息匹配成功时,查找服务器端指纹信息对应的音频信息并下发给客户端。

    其中,上述提供音频相关信息的服务器720的内部具体工作方式请参见本发明方法的相应步骤;例如,上述提供音频相关信息的服务器720可以完成如图8所示操作。

    虽然已参照几个典型实施例描述了本发明,但应当理解,所用的术语是说明和示例性、而非限制性的术语。由于本发明能够以多种形式具体实施而不脱离发明的精神或实质,所以应当理解,上述实施例不限于任何前述的细节,而应在随附权利要求所限定的精神和范围内广泛地解释,因此落入权利要求或其等效范围内的全部变化和改型都应为随附权利要求所涵盖。

提供音频相关信息的方法、系统、客户端及服务器.pdf_第1页
第1页 / 共27页
提供音频相关信息的方法、系统、客户端及服务器.pdf_第2页
第2页 / 共27页
提供音频相关信息的方法、系统、客户端及服务器.pdf_第3页
第3页 / 共27页
点击查看更多>>
资源描述

《提供音频相关信息的方法、系统、客户端及服务器.pdf》由会员分享,可在线阅读,更多相关《提供音频相关信息的方法、系统、客户端及服务器.pdf(27页珍藏版)》请在专利查询网上搜索。

本发明公开了一种提供音频相关信息的方法、系统、客户端和服务器。该方法包括:客户端对本地音频文件进行解析,获取指定时长的音频片段作为原始指纹数据;对所述原始指纹数据进行帧划分,并对每一帧分别执行快速傅立叶变换FFT,将所述原始指纹数据转换为数列的集合作为客户端指纹信息;将所述客户端指纹信息发送给特定的服务器,与所述服务器中预存的服务器端指纹信息进行匹配;当与一服务器端指纹信息匹配成功时,查找所述服务。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 电学 > 电通信技术


copyright@ 2017-2020 zhuanlichaxun.net网站版权所有
经营许可证编号:粤ICP备2021068784号-1