发明内容
本发明提供了一种乐曲识别方法、系统和装置,能够在保证识别成功率与节省数据传输资源之间取得平衡。
一种乐曲识别方法,该方法包括:
客户端从采集的音频数据中提取用于进行乐曲识别的音频信息;
所述客户端将所述用于进行乐曲识别的音频信息上传给数据分析服务器;
所述数据分析服务器对所述用于进行乐曲识别的音频信息和已知乐曲的特征数据库进行匹配,得到匹配相似度;
所述客户端在所述匹配相似度未达到乐曲识别成功的条件时,继续向所述数据分析服务器上传用于进行乐曲识别的音频信息,在所述匹配相似度达到乐曲识别成功的条件时,暂停向所述数据分析服务器上传用于进行乐曲识别的音频信息;
在所述匹配相似度达到乐曲识别成功的条件时,该方法还包括:
所述数据分析服务器向所述客户端发送识别成功的乐曲除去当前已播放部分的剩余音频信息;
所述客户端将所述剩余音频信息与采集的音频数据进行匹配,根据匹配结果保存识别的乐曲信息;
其中,所述客户端持续地采集音频数据;
根据匹配结果保存识别的乐曲信息包括:
当所述剩余音频信息与采集的音频数据的匹配相似度满足乐曲停止条件时,所述客户端识别出当前播放的乐曲已停止;
所述客户端根据识别出的乐曲停止位置,确定识别出的乐曲片段,根据所述乐曲片段的属性信息保存识别出的乐曲信息。
一种乐曲识别系统,该系统包括客户端和数据分析服务器;
所述客户端,用于从采集的音频数据中提取用于进行乐曲识别的音频信息,将所述用于进行乐曲识别的音频信息上传给数据分析服务器,在所述数据分析服务器得到的匹配相似度未达到乐曲识别成功的条件时,继续向所述数据分析服务器上传用于进行乐曲识别的音频信息,在所述匹配相似度达到乐曲识别成功的条件时,暂停向所述数据分析服务器上传用于进行乐曲识别的音频信息;
所述数据分析服务器,用于对所述用于进行乐曲识别的音频信息和已知乐曲的特征数据库进行匹配,得到匹配相似度;在所述匹配相似度达到乐曲识别成功的条件时,向所述客户端发送识别成功的乐曲除去当前已播放部分的剩余音频信息;
所述客户端,用于将所述剩余音频信息与采集的音频数据进行匹配,根据匹配结果保存识别的乐曲信息;
其中,所述客户端持续地采集音频数据;
所述客户端,用于当所述剩余音频信息与采集的音频数据的匹配相似度满足乐曲停止条件时,识别出当前播放的乐曲已停止,根据识别出的乐曲停止位置,确定识别出的乐曲片段,根据所述乐曲片段的属性信息保存识别出的乐曲信息。
一种用于乐曲识别的数据分析服务器,该数据分析服务器包括接收模块和匹配模块;
所述接收模块,用于接收客户端上传的用于进行乐曲识别的音频信息,其中,在所述匹配模块得到的匹配相似度未达到乐曲识别成功的条件时,继续接收所述用于进行乐曲识别的音频信息,在所述匹配模块得到的匹配相似度达到乐曲识别成功的条件时,暂停接收所述用于进行乐曲识别的音频信息;
所述匹配模块,用于对所述用于进行乐曲识别的音频信息和已知乐曲的特征数据库进行匹配,得到匹配相似度;
该数据分析服务器还包括发送模块,
所述发送模块,用于在所述匹配相似度达到乐曲识别成功的条件时,向所述客户端发送识别成功的乐曲除去当前已播放部分的剩余音频信息,以便所述客户端将所述剩余音频信息与采集的音频数据进行匹配,根据匹配结果保存识别的乐曲信息;
所述接收模块,用于在所述客户端识别出当前播放的乐曲已停止时,继续接收所述客户端上传的所述用于进行乐曲识别的音频信息,其中,所述客户端在所述剩余音频信息与采集的音频数据的匹配相似度满足乐曲停止条件时,识别出当前播放的乐曲已停止。
一种用于乐曲识别的客户端,该客户端包括采集模块、提取模块和数据交互模块;
所述采集模块,用于采集音频数据;
所述提取模块,用于从采集的音频数据中提取用于进行乐曲识别的音频信息;
所述数据交互模块,用于将所述用于进行乐曲识别的音频信息上传给数据分析服务器,根据所述数据分析服务器对所述用于进行乐曲识别的音频信息和已知乐曲的特征数据库进行匹配得到的匹配相似度,在所述匹配相似度未达到乐曲识别成功的条件时,继续向所述数据分析服务器上传用于进行乐曲识别的音频信息,在所述匹配相似度达到乐曲识别成功的条件时,暂停向所述数据分析服务器上传用于进行乐曲识别的音频信息;
所述客户端还包括本地识别模块;
所述数据交互模块,用于在所述匹配相似度达到乐曲识别成功的条件时,接收所述数据分析服务器发送的识别成功的乐曲除去当前已播放部分的剩余音频信息;
所述本地识别模块,用于将所述剩余音频信息与采集的音频数据进行匹配,根据匹配结果保存识别的乐曲信息;当所述剩余音频信息与采集的音频数据的匹配相似度满足乐曲停止条件时,识别出当前播放的乐曲已停止,根据识别出的乐曲停止位置,确定识别出的乐曲片段,根据所述乐曲片段的属性信息保存识别出的乐曲信息。
由上述技术方案可见,本发明实施例中,客户端从采集的音频数据中提取用于进行乐曲识别的音频信息,并将所述用于进行乐曲识别的音频信息上传给数据分析服务器以后,需要进一步根据数据分析服务器对所述用于进行乐曲识别的音频信息和已知乐曲的特征数据库进行匹配得到的匹配相似度,确定是否继续向所述数据分析服务器上传用于进行乐曲识别的音频信息,具体地,在所述匹配相似度未达到乐曲识别成功的条件时,继续向所述数据分析服务器上传用于进行乐曲识别的音频信息,在所述匹配相似度达到乐曲识别成功的条件时,暂停向所述数据分析服务器上传用于进行乐曲识别的音频信息,从而使得客户端上传的音频数据量恰好能够实现成功地识别出当前播放的乐曲,又不至于上传过多的音频数据造成数据传输资源的浪费,因此能够在保证识别成功率与节省数据传输资源之间取得平衡。
具体实施方式
图2是本发明实施例提供的乐曲识别方法流程图。
如图2所示,该流程包括:
步骤201,客户端从采集的音频数据中提取用于进行乐曲识别的音频信息。
本步骤中,客户端可以通过麦克风等音频采集设备采集周围环境的音频数据,所述客户端可以持续地采集周围环境的音频数据,以便持续地识别周围环境中播放的乐曲,其中,所述持续可以是无间断地持续,也可以是有间断地持续,其中的间断一般是优先级更高的操作需要暂停采集周围环境的音频数据造成的。
由于周围环境的音频数据中可能包含了单纯的说话声音或其他环境噪音,如果直接从采集的音频数据中提取用于进行乐曲识别的音频信息,一方面信息提取的工作量较大,另一方面提取的准确度和精度也较差,影响后续的乐曲识别效果,因此,本发明实施例提出,可以先根据可识别乐音的特征初步判断采集的音频数据中是否包含可识别乐音,如果是,再从包含可识别乐音的音频数据中提取用于进行乐曲识别的音频信息,否则,不执行所述提取的操作。
其中,所述用于进行乐曲识别的音频信息可以包括所述客户端采集的包含可识别乐音的音频数据,或者,从所述客户端采集的包含可识别乐音的音频数据中提取的音频特征信息。换言之,本发明实施例中,所述客户端采集音频数据以后,根据可识别乐音的特征,从采集的音频数据中截取包含可识别乐音的音频数据,将采集的所述包含可识别乐音的音频数据确定为用于乐曲识别的音频信息,或者,也可以在截取包含可识别乐音的音频数据以后,进一步从所述包含可识别乐音的音频数据中提取音频特征信息,将所述音频特征信息确定为用于进行乐曲识别的音频信息。
其中,所述可识别乐音是否区分于单纯的说话声音或其他环境噪音的带有旋律的音频数据,例如,单纯的歌声、配乐的歌声或者没有歌声的纯音乐等。
步骤202,所述客户端将所述用于进行乐曲识别的音频信息上传给数据分析服务器。
步骤203,所述数据分析服务器对所述用于进行乐曲识别的音频信息和已知乐曲的特征数据库进行匹配,得到匹配相似度。
步骤204,判断所述匹配相似度是否达到乐曲识别成功的条件,如果是,执行步骤205,否则,返回步骤202。
本步骤中,可以由数据分析服务器判断所述匹配相似度是否达到乐曲识别成功的条件(比如,所述匹配相似度是否大于预设值),如果是,则向所述客户端发送暂停上传用于进行乐曲识别的音频信息的命令,否则,不向所述客户端发送暂停上传用于进行乐曲识别的音频信息的命令、或者向所述客户端发送继续上传用于进行乐曲识别的音频信息的命令,从而所述客户端根据收到的命令确定是否继续向所述数据分析服务器上传用于进行乐曲识别的音频信息。
或者,本步骤中,数据分析服务器也可以将得到的所述匹配相似度下发给所述客户端,由所述客户端判断所述匹配相似度是否达到乐曲识别成功的条件,根据判断结果确定是否继续向所述数据分析服务器上传用于进行乐曲识别的音频信息。
步骤205,所述客户端暂停向所述数据分析服务器上传用于进行乐曲识别的音频信息。
在本发明的优选实施例中,为了进一步提高乐曲识别的准确率,在所述匹配相似度达到乐曲识别成功的条件时,所述数据分析服务器还可以向所述客户端发送识别成功的乐曲除去当前已播放部分的剩余音频信息,所述客户端将所述剩余音频信息与采集的音频数据进行匹配,根据匹配结果保存识别的乐曲信息。
可见,在本发明的优选实施例中,通过在数据分析服务器得到的匹配相似度达到乐曲识别成功的条件时,由数据分析服务器将识别成功的乐曲除去当前已播放部分的剩余音频信息发给客户端,由客户端根据所述剩余音频信息和本地采集的音频数据进行本地匹配,进一步根据本地匹配的结果保存识别的乐曲信息,一方面不需要客户端持续上传从周围环境的音频数据中提取的大量音频信息,节省了数据传输资源,另一方面,通过客户端本地的匹配结果进一步验证或细化网络侧数据分析服务器的乐曲识别结果,能够进一步提高乐曲识别的准确率。
例如,在一实施例中,所述客户端可以判断所述剩余音频信息与采集的音频数据的匹配相似度是否满足乐曲停止条件(比如,所述匹配相似度是否小于预设值),如果是,则识别出当前播放的乐曲已停止,所述客户端根据识别出的乐曲停止位置,确定识别出的乐曲片段,根据所述乐曲片段的属性信息保存识别出的乐曲信息。
为了进一步提高乐曲识别的精度和准确率,在一实施例中,所述客户端可以计算所述乐曲片段内的匹配相似度的加权平均值,当所述加权平均值高于预定值时,保存所述乐曲片段的属性信息,否则,不保存所述乐曲片段的属性信息。
其中,所述乐曲片段的属性信息可以包括:所述乐曲片段所归属的乐曲的标识信息、和所述乐曲片段在所归属的乐曲中的播放进度信息。
在实际应用中,受各种因素干扰,一首连续播放的乐曲可能在识别过程中发生中断,从而分成多个可识别的乐曲片段,针对这种情况,本发明实施例提出,所述客户端还可以根据各个乐曲片段的乐曲标识信息和播放进度信息,将播放进度符合连续播放的同一首乐曲的多个乐曲片段进行合并,保存合并后的乐曲片段的属性信息,从而能够识别出由于干扰而导致识别为多个分隔的乐曲片段的连续播放的乐曲,提高识别准确度,而且,由于只需要存储合并后的乐曲片段的属性信息,因此还能够节省存储空间。
由于在实际应用场景中,环境中可能先后播放了多首乐曲,关于如何对顺序播放的多首乐曲进行持续性地自动识别,本发明实施例提出,每当所述客户端根据本地匹配的结果识别出当前播放的乐曲已停止时,都返回所述客户端将所述用于进行乐曲识别的音频信息上传给数据分析服务器的步骤,从而能够实现对顺序播放的多首乐曲进行持续性地自动识别。
在本发明实施例中,还可以根据识别出的乐曲信息生成音乐日志列表,当由所述客户端生成所述音乐日志列表时,所述客户端可以将所述音乐日志列表上传到音乐日志服务器上。所述音乐日志列表除了包含识别出的乐曲片段的属性信息以外,还可以在所述音乐日志列表中进一步添加识别出乐曲片段的时间、地点信息、或者添加文字、图片、表情等信息,并且,可以通过网络服务器将所述音乐日志列表分享给其他用户。
根据上文提供的实施例,下面给出一种乐曲识别的优选实施例,该优选实施例并不用于限制本发明,具体请参见图3。
图3是本发明优选实施例提供的乐曲识别方法流程图。
如图3所示,在该优选实施例中,该流程包括:
步骤301,客户端持续地采集周围环境的音频数据。
步骤302,客户端判断采集的音频数据中是否包含可识别乐音,如果是,执行步骤303,否则,返回步骤302。
步骤303,客户端从包含可识别乐音的音频数据中提取用于进行乐曲识别的音频信息,执行步骤304。
步骤304,所述客户端将所述用于进行乐曲识别的音频信息上传给数据分析服务器。
步骤305,所述数据分析服务器对所述用于进行乐曲识别的音频信息和已知乐曲的特征数据库进行匹配,得到匹配相似度。
步骤306,判断所述匹配相似度是否达到乐曲识别成功的条件,如果是,执行步骤307,否则,返回步骤304。
步骤307,所述客户端暂停向所述数据分析服务器上传用于进行乐曲识别的音频信息。
步骤308,所述数据分析服务器向所述客户端发送识别成功的乐曲除去当前已播放部分的剩余音频信息。
本步骤中,所述数据分析服务器还向所述客户端返回识别成功的乐曲信息,所述乐曲信息可以包括乐曲标识信息和播放进度信息。
本步骤中,可以是数据分析服务器在确定出乐曲识别成功以后,主动向所述客户端下发所述剩余音频信息,也可以是所述客户端在确定出乐曲识别成功以后,向所述数据分析服务器请求所述剩余音频信息,从而所述数据分析服务器应所述请求返回所述剩余音频信息。
其中,所述剩余音频信息可以是原始音频数据或者进过压缩的适合匹配的数据。
其中,步骤307和步骤308顺序可调,或者,步骤307和步骤308可以同步执行。
步骤309,所述客户端将所述剩余音频信息与采集的音频数据进行匹配。
步骤310,所述客户端判断所述剩余音频信息与采集的音频数据的匹配相似度是否满足乐曲停止条件,如果是,执行步骤311,否则,返回步骤310。
步骤311,所述客户端识别出当前播放的乐曲已停止,执行步骤312,并且,返回步骤302。
其中,通过执行步骤312及其后续步骤,可以实现通过在客户端本地匹配所述剩余音频信息和采集的音频数据,精确地识别出周围环境中播放的乐曲片段并生成音乐日志列表,通过执行步骤302,可以实现对周围环境中顺序播放的多首不同乐曲进行持续性地自动识别。
步骤312,所述客户端根据识别出的乐曲停止位置,确定识别出的乐曲片段。
步骤313,所述客户端计算所述乐曲片段内的匹配相似度的加权平均值,判断所述加权平均值是否高于预定值,如果是,执行步骤314,否则,执行步骤316。
步骤314,保存所述乐曲片段的属性信息。
本步骤中,客户端如果有其他感应器,例如位置感应器,也可以获取相应信息后可以一起保存。
步骤315,所述客户端根据各个乐曲片段的乐曲标识信息和播放进度信息,将播放进度符合连续播放的同一首乐曲的多个乐曲片段进行合并,保存合并后的乐曲片段的属性信息,执行步骤317。
步骤316,不保存所述乐曲片段的属性信息,执行步骤317。
步骤317,所述客户端根据保存的乐曲片段的属性信息生成音乐日志列表,并将所述音乐日志列表上传到音乐日志服务器。
其中,生成音乐日志列表以后,可以以文本等方式展示和分享,还可以通过播放器下载和播放所述音乐日志列表。
根据本发明实施例提供的乐曲识别方法,本发明实施例还提供了一种乐曲识别系统、服务器和客户端,具体请参见图4-6。
图4是本发明实施例提供的乐曲识别系统组成示意图。
如图4所示,该系统包括客户端401和数据分析服务器402。
客户端401,用于从采集的音频数据中提取用于进行乐曲识别的音频信息,将所述用于进行乐曲识别的音频信息上传给数据分析服务器402,在所述数据分析服务器402得到的匹配相似度未达到乐曲识别成功的条件时,继续向所述数据分析服务器402上传用于进行乐曲识别的音频信息,在所述匹配相似度达到乐曲识别成功的条件时,暂停向所述数据分析服务器402上传用于进行乐曲识别的音频信息。
数据分析服务器402,用于对所述用于进行乐曲识别的音频信息和已知乐曲的特征数据库进行匹配,得到匹配相似度。
其中,数据分析服务器402,用于在所述匹配相似度达到乐曲识别成功的条件时,向所述客户端401发送识别成功的乐曲除去当前已播放部分的剩余音频信息。
客户端401,用于将所述剩余音频信息与采集的音频数据进行匹配,根据匹配结果保存识别的乐曲信息。
其中,所述客户端401持续地采集音频数据。
客户端401,用于当所述剩余音频信息与采集的音频数据的匹配相似度满足乐曲停止条件时,识别出当前播放的乐曲已停止,根据识别出的乐曲停止位置,确定识别出的乐曲片段,根据所述乐曲片段的属性信息保存识别出的乐曲信息。
客户端401,可以用于在识别出当前播放的乐曲已停止时,继续将所述用于进行乐曲识别的音频信息上传给数据分析服务器402。
其中,客户端401或者数据分析服务器402可以根据识别出的乐曲信息生成音乐日志列表。
图5是本发明实施例提供的用于乐曲识别的数据分析服务器结构示意图。
如图5所示,该数据分析服务器包括接收模块501和匹配模块502。
接收模块501,用于接收客户端上传的用于进行乐曲识别的音频信息,其中,在所述匹配模块502得到的匹配相似度未达到乐曲识别成功的条件时,继续接收所述用于进行乐曲识别的音频信息,在所述匹配模块502得到的匹配相似度达到乐曲识别成功的条件时,暂停接收所述用于进行乐曲识别的音频信息。
匹配模块502,用于对所述用于进行乐曲识别的音频信息和已知乐曲的特征数据库进行匹配,得到匹配相似度。
该数据分析服务器还可以包括发送模块。
所述发送模块,用于在所述匹配相似度达到乐曲识别成功的条件时,向所述客户端发送识别成功的乐曲除去当前已播放部分的剩余音频信息,以便所述客户端将所述剩余音频信息与采集的音频数据进行匹配,根据匹配结果保存识别的乐曲信息。
接收模块501,可以用于在所述客户端识别出当前播放的乐曲已停止时,继续接收所述客户端上传的所述用于进行乐曲识别的音频信息,其中,所述客户端在所述剩余音频信息与采集的音频数据的匹配相似度满足乐曲停止条件时,识别出当前播放的乐曲已停止。
图6是本发明实施例提供的用于乐曲识别的客户端结构示意图。
如图6所示,该客户端包括提取模块601和数据交互模块602。
提取模块601,用于从采集的音频数据中提取用于进行乐曲识别的音频信息。
数据交互模块602,用于将所述用于进行乐曲识别的音频信息上传给数据分析服务器,根据所述数据分析服务器对所述用于进行乐曲识别的音频信息和已知乐曲的特征数据库进行匹配得到的匹配相似度,在所述匹配相似度未达到乐曲识别成功的条件时,继续向所述数据分析服务器上传用于进行乐曲识别的音频信息,在所述匹配相似度达到乐曲识别成功的条件时,暂停向所述数据分析服务器上传用于进行乐曲识别的音频信息。
所述客户端还可以包括本地识别模块。
数据交互模块602,用于在所述匹配相似度达到乐曲识别成功的条件时,接收所述数据分析服务器发送的识别成功的乐曲除去当前已播放部分的剩余音频信息。
所述本地识别模块,用于将所述剩余音频信息与采集的音频数据进行匹配,根据匹配结果保存识别的乐曲信息。
所述本地识别模块,可以用于当所述剩余音频信息与采集的音频数据的匹配相似度满足乐曲停止条件时,识别出当前播放的乐曲已停止,根据识别出的乐曲停止位置,确定识别出的乐曲片段,根据所述乐曲片段的属性信息保存识别出的乐曲信息。
所述本地识别模块,可以用于计算所述乐曲片段内的匹配相似度的加权平均值,当所述加权平均值高于预定值时,保存所述乐曲片段的属性信息,否则,不保存所述乐曲片段的属性信息。
其中,所述乐曲片段的属性信息包括:所述乐曲片段所归属的乐曲的标识信息、和所述乐曲片段在所归属的乐曲中的播放进度信息。
所述本地识别模块,可以用于根据各个乐曲片段的乐曲标识信息和播放进度信息,将播放进度符合连续播放的同一首乐曲的多个乐曲片段进行合并,保存合并后的乐曲片段的属性信息。
数据交互模块602,可以用于在所述本地识别模块识别出当前播放的乐曲已停止时,继续将所述用于进行乐曲识别的音频信息上传给数据分析服务器。
提取模块601,可以用于根据可识别乐音的特征,判断采集的音频数据中是否包含可识别乐音,在包含可识别乐音时,从所述音频数据中提取用于进行乐曲识别的音频信息。
本发明实施例所述的客户端可以包括但不限于个人电脑(PC)、笔记本电脑、手机、平板电脑等终端。通过本发明实施例,使得在任何有音乐的场所如KTV、演唱会等,都能够识别分析出环境中的乐曲,进而将分析结果在网络云端保存成列表记录,之后再根据需要进行回放或者下载,还可以进一步添加信息形成可分享音乐日志。
并且,本发明实施例不限制具体场所,能够通过主动方式持续地获取和分析环境中音频信息,识别出其中的乐曲部分,并且还能够识别出的乐曲部分生成日志信息。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。