CN110622155A - 将音乐识别为特定歌曲 - Google Patents

将音乐识别为特定歌曲 Download PDF

Info

Publication number
CN110622155A
CN110622155A CN201880031926.3A CN201880031926A CN110622155A CN 110622155 A CN110622155 A CN 110622155A CN 201880031926 A CN201880031926 A CN 201880031926A CN 110622155 A CN110622155 A CN 110622155A
Authority
CN
China
Prior art keywords
audio data
digital audio
computing device
song
songs
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
Application number
CN201880031926.3A
Other languages
English (en)
Inventor
多米尼克·罗博列克
布勒斯·阿格拉-阿尔卡斯
汤姆·休姆
马文·里特尔
布兰登·巴贝尔洛
凯文·基尔戈
米哈伊洛·韦利米罗维奇
克里斯托弗·沃尔特·乔治·桑顿
加布里尔·陶布曼
詹姆斯·戴维·莱恩
扬·奥尔索斯
卡恰里纳·纳利乌卡
朱利安·奥德尔
马修·谢里菲
比特·格费尔勒
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Google LLC
Original Assignee
Google LLC
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Google LLC filed Critical Google LLC
Publication of CN110622155A publication Critical patent/CN110622155A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/16Sound input; Sound output
    • G06F3/165Management of the audio stream, e.g. setting of volume, audio stream path
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/60Information retrieval; Database structures therefor; File system structures therefor of audio data
    • G06F16/63Querying
    • G06F16/635Filtering based on additional data, e.g. user or group profiles
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/60Information retrieval; Database structures therefor; File system structures therefor of audio data
    • G06F16/68Retrieval characterised by using metadata, e.g. metadata not derived from the content or metadata generated manually
    • G06F16/683Retrieval characterised by using metadata, e.g. metadata not derived from the content or metadata generated manually using metadata automatically derived from the content
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10HELECTROPHONIC MUSICAL INSTRUMENTS; INSTRUMENTS IN WHICH THE TONES ARE GENERATED BY ELECTROMECHANICAL MEANS OR ELECTRONIC GENERATORS, OR IN WHICH THE TONES ARE SYNTHESISED FROM A DATA STORE
    • G10H2210/00Aspects or methods of musical processing having intrinsic musical character, i.e. involving musical theory or musical parameters or relying on musical knowledge, as applied in electrophonic musical tools or instruments
    • G10H2210/031Musical analysis, i.e. isolation, extraction or identification of musical elements or musical parameters from a raw acoustic signal or from an encoded audio signal
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10HELECTROPHONIC MUSICAL INSTRUMENTS; INSTRUMENTS IN WHICH THE TONES ARE GENERATED BY ELECTROMECHANICAL MEANS OR ELECTRONIC GENERATORS, OR IN WHICH THE TONES ARE SYNTHESISED FROM A DATA STORE
    • G10H2210/00Aspects or methods of musical processing having intrinsic musical character, i.e. involving musical theory or musical parameters or relying on musical knowledge, as applied in electrophonic musical tools or instruments
    • G10H2210/031Musical analysis, i.e. isolation, extraction or identification of musical elements or musical parameters from a raw acoustic signal or from an encoded audio signal
    • G10H2210/046Musical analysis, i.e. isolation, extraction or identification of musical elements or musical parameters from a raw acoustic signal or from an encoded audio signal for differentiation between music and non-music signals, based on the identification of musical parameters, e.g. based on tempo detection

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Multimedia (AREA)
  • Data Mining & Analysis (AREA)
  • Library & Information Science (AREA)
  • Databases & Information Systems (AREA)
  • General Health & Medical Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Human Computer Interaction (AREA)
  • Biomedical Technology (AREA)
  • Computational Linguistics (AREA)
  • Biophysics (AREA)
  • Evolutionary Computation (AREA)
  • Molecular Biology (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Artificial Intelligence (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Auxiliary Devices For Music (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Electrophonic Musical Instruments (AREA)

Abstract

一般而言,本公开中所描述的主题可以体现在用于指示参考歌曲的方法、系统和程序产品。计算设备存储识别多个参考歌曲中的每个参考歌曲的多个音频特征的参考歌曲表征数据。所述计算设备接收表示由麦克风记录的音频的数字音频数据,将所述数字音频数据从时域格式转换成频域格式,并且在音乐表征过程中使用所述频域格式的所述数字音频数据。响应于确定所述数字音频数据的表征值与特定参考歌曲的表征值最为相关,所述计算设备输出对所述特定参考歌曲的指示。

Description

将音乐识别为特定歌曲
背景技术
许多现代计算设备包括用于各种目的诸如记录电话呼叫的音频、出于噪声消除之目的来识别外部噪声以及接收口头输入的麦克风。麦克风的另一用途是记录计算设备然后可以作为歌曲传输至远程服务器系统以进行分析和潜在辨识的音频。将音频发送到远程服务器系统以进行分析的这一步骤在计算上可以是昂贵且缓慢的。
发明内容
本文档描述了用于确定检测到的音频表示或包括音乐然后将音乐识别为特定歌曲的技术、方法、系统和其它机制。实施本文中所描述的机制的设备可以连续地执行这种过程,使得当用户决定其希望知道在其所处的当前环境中正在扬声器上播放的歌曲的名称时,该设备可能已经识别出歌曲并且输出歌曲标题以供在显示设备上显示。在一些示例中,本文中所描述的音乐检测和歌曲识别机制可以完全在便携式计算设备上执行,使得不将由便携式计算设备从环境音频记录中生成的数据传输至任何远程电子系统以进行分析,从而使得便携式计算设备能够在网络连接不可用时辨识并识别音乐。因此,该功能性可以消除将本地记录的音频数据传输至远程电子系统以进行歌曲辨识和识别的需要。
在一些示例中,音乐确定和歌曲识别过程可以在两个阶段中执行。第一阶段可以涉及:辨识计算设备已经检测到的音频(例如,基于连续的监视过程)是否表示或包括音乐。因为该第一阶段可以连续地操作或至少在延迟的持续时间内操作,所以其可以由可操作地耦合至计算设备或包括在计算设备中的低功率处理器执行,该低功率处理器不同于计算设备的主处理器。该低功率处理器可以在比主处理器低的电压和时钟速率下运行,从而使由音乐检测过程引起的电池消耗最小化。低功率处理器可以在物理上与主处理器分离,使得低功率处理器能够被容纳于计算设备的与主处理器不同的部分(例如,单独的电路板、模块或壳体)中。
在低功率处理器已经确定了环境音频表示或包括音乐之后,主处理器可以执行第二阶段,该第二阶段包括:在歌曲识别过程中分析记录的音频。歌曲识别过程可以涉及两个子步骤。第一子步骤通过将记录的音频的特征与数千个参考歌曲的识别数千个参考歌曲的特征的设备上的数据集进行比较来识别候选歌曲集合。该第一子步骤可以使用相对较低的分辨率特征来提高识别候选歌曲的速度。一旦已经识别出候选歌曲集合,歌曲识别过程执行第二子步骤以识别哪些候选歌曲(若存在)与记录的音频相匹配。第二子步骤可以使用相对较高的分辨率特征来使歌曲匹配精度最大化。
一旦已经识别出歌曲,计算设备可以呈现对当前正在播放的歌曲的指示。例如,如果计算设备是智能电话并且被“锁定”(即,处于低访问或无访问安全状态下),那么计算设备可以在计算设备的“锁定屏幕”或“始终开启屏幕”上显示歌曲的名称。如果计算设备被解锁,那么计算设备可以在计算设备的屏幕上(例如,在智能电话通知内)显示歌曲的名称。以这种连续的方式识别歌曲允许用户在不必启动专门的歌曲识别应用然后选择按钮来记录音频的情况下识别歌曲的名称。同样,用户可以在不需要停止其正在参与的活动以在其计算设备上启动歌曲识别应用的情况下识别在其所处的环境中正在扬声器上播放哪些歌曲。此外,启动和运行歌曲识别应用需要花费时间,且歌曲可能会在用户能够启动并且运行这种歌曲识别应用之前结束播放。此外,设备有时无法识别歌曲,而且自动歌曲识别过程限制了用户将以其它方式启动并运行歌曲识别应用结果只能对歌曲识别应用无法识别歌曲感到失望的次数。
作为对下述实施例的附加描述,本公开描述了以下实施例。
实施例1是一种计算机实现的方法。该方法包括由计算设备存储识别多个参考歌曲中的每个参考歌曲的多个音频特征的参考歌曲表征数据。该方法包括由计算设备接收表示由麦克风记录的音频的数字音频数据。该方法包括由计算设备使用音乐确定过程来确定数字音频数据是否表示音乐。该方法包括由计算设备在确定数字音频数据表示音乐之后辨识数字音频数据表示多个参考歌曲中的特定参考歌曲。该方法包括由计算设备响应于确定数字音频数据表示多个参考歌曲中的特定参考歌曲来输出对特定参考歌曲的指示。
实施例2是实施例1的计算机实现的方法,其中,多个参考歌曲包括至少一万个参考歌曲,使得参考歌曲表征数据识别该至少一万个参考歌曲的音频特征。
实施例3是实施例1或2中任一者的计算机实现的方法,其中,将多个参考歌曲中的参考歌曲的参考歌曲表征值被限制到二进制一或二进制零,使得每个表征值被限制到二进制一或二进制零。
实施例4是实施例1至3中任一者的计算机实现的方法,其中,确定数字音频数据是否表示音乐包括将数字音频数据从时域格式转换成频域格式,将频域格式的数字音频数据用于音乐确定过程,并且输出数字音频数据表示音乐的指示。
实施例5是实施例4的计算机实现的方法,其中,音乐确定过程包括执行已经训练成确定音频是否表示音乐的机器学习系统。
实施例6是实施例1至5中任一者的计算机实现的方法,其中,计算设备在不访问识别多个参考歌曲中的每个参考歌曲的多个音频特征的参考歌曲表征数据的情况下确定数字音频数据是否表示音乐。
实施例7是实施例1至6中任一者的计算机实现的方法,其中,确定数字音频数据是否表示音乐包括计算设备在确定数字音频数据表示音乐之前,在没有接收到发起音乐确定过程的用户输入的情况下多次确定数字音频数据不表示音乐。
实施例8是实施例4至7中任一者的计算机实现的方法,其中,频域格式是第一频域格式,并且频域转换过程是第一频域转换过程,并且辨识数字音频数据表示特定参考歌曲包括:(i)在第二频域转换过程期间将数字音频数据从时域格式转换成第二频域格式,(ii)在音乐表征过程中使用第二频域格式的数字音频数据,该音乐表征过程接收第二频域格式的数字音频数据并且输出数字音频数据的表征值类集,以及(iii)将数字音频数据的该表征值类集与多个参考歌曲的至少子集中的每个的多个表征值进行比较,以确定特定参考歌曲的多个表征值与数字音频数据的表征值类集最为相关。
实施例9是实施例8的计算机实现的方法,其中,第二频域格式和第一频域格式分析不同数量的频率区间。
实施例10是实施例8或9中任一者的计算机实现的方法,其中,音乐表征过程由已经训练成表征音乐的机器学习系统执行。
实施例11是实施例8至10中任一者的计算机实现的方法,其中,将数字音频数据的表征值类集与多个参考歌曲的至少子集中的每个的多个表征值进行比较通过以下步骤来执行:在不向另一计算设备发送对歌曲表征数据的请求的情况下访问由计算设备针对多个歌曲的至少子集中的每个存储的多个表征值。
实施例12是实施例8至11中任一者的计算机实现的方法,其中,计算设备将数字音频数据的表征值类集与多个参考歌曲的仅所述子集中的每个的多个表征值进行比较,并且该方法还包括:将数字音频数据的表征值类集中的表征值与多个候选歌曲中的每个的多个表征值进行比较,以选择多个参考歌曲的子集。
实施例13是实施例8至12中任一者的计算机实现的方法,该方法还包括:将数字音频数据的表征值类集中的表征值从并非全部被限制到二进制零和二进制一的值转换为被限制到二进制零和二进制一的值;其中,将数字音频的表征值类集中的表征值与多个候选歌曲中的每个的多个表征值进行比较包括比较,其中:(a)数字音频数据的表征值被限制到二进制零和二进制一,以及(b)多个歌曲中的每个的表征值被限制到二进制零和二进制一。
实施例14是实施例8至13中任一者的计算机实现的方法,其中,将数字音频数据的表征值类集与多个参考歌曲的至少子集中的每个的多个表征值进行比较包括比较,其中:(a)数字音频数据的表征值包括表示除了二进制零和二进制一之外的值的实数,以及(b)多个歌曲的至少子集中的每个的表征值被限制到二进制零和二进制一。
实施例15是实施例1至13中任一者的计算机实现的方法,其中:确定数字音频数据是否表示音乐是由计算设备的第一处理器执行的;以及辨识数字音频数据表示多个参考歌曲中的特定参考歌曲是由计算设备的第二处理器执行的。
实施例16是实施例15的计算机实现的方法,其中,第一处理器在比第二处理器低的电压下运行。
实施例17是实施例15的计算机实现的方法,其中,第二处理器根据比所述第一处理器操作所根据的时钟信号至少快一个数量级的时钟信号操作。
实施例18是实施例1至17中任一者的计算机实现的方法,其中,输出正在播放特定参考歌曲的指示包括:除了启用连续的歌曲识别过程之外,在用户输入尚未提示计算设备执行歌曲识别过程的情况下,在计算设备的锁定屏幕上、在计算设备的始终开启屏幕中或在计算设备的解锁屏幕上方呈现的通知中呈现特定参考歌曲的名称。
实施例19是实施例1至17中任一者的计算机实现的方法,其中,计算设备包括麦克风。
实施例20涉及一种计算机化系统,该计算机化系统包括:一个或者多个处理器;以及一个或多个计算机可读设备,该一个或多个计算机可读设备包括指令,该指令在被该一个或多个处理器执行时促使执行实施例1至19中任一者的方法。
实施例21涉及一种计算系统。该计算系统包括麦克风,该麦克风被配置成记录音频信号。该计算系统包括模数转换器,该模数转换器被配置成从记录的音频信号生成数字音频数据。该计算系统包括一个或多个计算机可读存储器设备,该一个或多个计算机可读存储器设备存储:(i)识别多个参考歌曲中的每个参考歌曲的多个音频特征的参考歌曲表征数据,以及(ii)可由处理器执行并且配置处理器的操作的指令。该计算系统包括第一处理器,该第一处理器被配置成在确定数字音频数据表示音乐后输出数字音频数据表示音乐的指示。该计算系统包括第二处理器,该第二处理器被配置成从第一处理器接收数字音频数据表示音乐的指示,并且辨识数字音频数据表示多个参考歌曲中的特定参考歌曲。该计算系统包括显示设备,该显示设备被配置成响应于第二处理器辨识数字音频数据表示多个参考歌曲中的特定参考歌曲来呈现对特定参考歌曲的识别。
实施例22是实施例21的计算系统,其中,该计算系统包括移动计算设备,该移动计算设备包括麦克风、模数转换器、一个或多个计算机可读存储器设备、第一处理器和第二处理器。
实施例23是实施例21或22中任一者的计算系统,其中,第一处理器在比第二处理器低的电压或瓦数下运行。
实施例24是实施例21至23中任一者的计算系统,其中,第二处理器根据比所述第一处理器操作所根据的时钟信号至少快一个数量级的时钟信号操作。
实施例25是实施例22至24中任一者的计算系统,其中,在计算设备不向除了计算设备之外的计算系统发送数字音频数据的情况下,第一处理器被配置成输出数字音频数据表示音乐的指示,并且第二处理器被配置成辨识数字音频数据表示特定参考歌曲。
实施例26是实施例22至25中任一者的计算系统,其中,在计算设备不具有与任何外部设备的网络连接时,第一处理器被配置成输出数字音频数据表示音乐的所述指示,并且第二处理器被配置成辨识数字音频数据表示特定参考歌曲。
实施例27是实施例22至26中任一者的计算系统,其中,确定数字音频数据表示音乐包括:在第一处理器确定数字音频数据表示音乐之前,第一处理器在没有接收到发起音乐确定过程的用户输入的情况下多次确定数字音频数据不表示音乐。
实施例28是实施例21至27中任一者的计算系统,其中,由所述一个或多个计算机可读存储器设备存储的多个参考歌曲中的参考歌曲的参考歌曲表征值被限制到二进制一或二进制零,使得每个表征值被限制到二进制一或二进制零。
实施例29是实施例21至28中任一者的计算系统,其中,多个参考歌曲包括至少一万个参考歌曲,使得由一个或多个计算机可读存储器设备存储的参考歌曲表征数据识别该至少一万个参考歌曲的音频特征。
实施例30是实施例21至29中任一者的计算系统,其中,第一处理器被配置成通过以下步骤来确定数字音频数据表示音乐:在频域转换过程期间将数字音频数据从时域格式转换成频域格式,以及在音乐确定过程中使用频域格式的数字音频数据,该音乐确定过程接收频域格式的数字音频数据并且输出数字音频数据表示音乐的指示。
实施例31是实施例30的计算系统,其中,音乐确定过程包括:执行已经训练成确定音频是否表示音乐的机器学习系统。
实施例32是实施例30的计算系统,其中,音乐确定过程包括:在低功率处理器上执行卷积神经网络。
实施例33是实施例21至32中任一者的计算系统,其中,频域格式是第一频域格式,并且频域转换过程是第一频域转换过程,并且第二处理器被配置成通过以下步骤来辨识数字音频数据表示多个参考歌曲中的特定参考歌曲:(i)在第二频域转换过程期间将数字音频数据从时域格式转换成第二频域格式,(ii)在音乐表征过程中使用第二频域格式的数字音频数据,该音乐表征过程接收第二频域格式的数字音频数据并且输出数字音频数据的表征值类集,以及(iii)将数字音频数据的该表征值类集与多个参考歌曲的子集中的每个的多个表征值进行比较,以确定特定参考歌曲的多个表征值与数字音频数据的表征值类集最为相关。
实施例34是实施例33的计算系统,其中,第二频域格式和第一频域格式分析不同数量的频率区间。
实施例35是实施例33或34中任一者的计算系统,其中,音乐表征过程由已经训练成表征音乐的机器学习系统执行。
实施例36是实施例33至35中任一者的计算系统,其中,将数字音频数据的表征值类集与多个参考歌曲的子集中的每个的多个表征值进行比较通过以下步骤来执行:在不向另一计算设备发送对歌曲表征数据的请求的情况下访问由计算设备针对多个歌曲的子集中的每个存储的多个表征值。
实施例37是实施例33至36中任一者的计算系统,该计算系统还包括:将数字音频数据的表征值类集中的表征值与多个候选歌曲中的每个的多个表征值进行比较,以选择多个参考歌曲的子集。
实施例38是实施例33至37中任一者的计算系统,该计算系统还包括:将数字音频数据的表征值类集中的表征值从并非全部被限制到二进制零和二进制一的值转换为被限制到二进制零和二进制一的值;以及将数字音频数据的表征值类集中的表征值与多个参考歌曲中的每个的多个表征值进行比较包括比较,其中:(a)数字音频数据的表征值被限制到二进制零和二进制一,以及(b)多个歌曲中的每个的表征值被限制到二进制零和二进制一。
实施例39是实施例33至38中任一者的计算系统,其中,将数字音频数据的表征值类集与多个参考歌曲的子集中的每个的多个表征值进行比较包括比较,其中:(a)数字音频数据的表征值包括表示除了二进制零和二进制一之外的值的实数,以及(b)多个歌曲的至少子集中的每个的表征值被限制到二进制零和二进制一。
实施例40是一种计算机实现的方法。该方法包括由计算设备存储识别多个参考歌曲中的每个参考歌曲的多个音频特征的参考歌曲表征数据。该方法包括由计算设备接收表示由麦克风记录的音频的数字音频数据。该方法包括由计算设备将数字音频数据从时域格式转换成频域格式。该方法包括由计算设备在音乐表征过程中使用频域格式的数字音频数据,该音乐表征过程输出数字音频数据的表征值类集,该表征值中的至少一些表示除了二进制零和二进制一之外的值。该方法包括由计算设备将数字音频数据的表征值类集与多个参考歌曲中的每个的多个表征值进行比较,以从多个参考歌曲中选择多个候选歌曲的子集作为与数字音频数据的表征值对应的那些参考歌曲。该方法包括由计算设备将数字音频数据的表征值类集与多个候选歌曲的子集中的每个参考歌曲的多个表征值进行比较,以确定数字音频数据的表征值类集与特定参考歌曲的多个表征值最为相关。该方法包括由计算设备响应于确定数字音频数据的表征值类集与特定参考歌曲的多个表征值最为相关来输出对特定参考歌曲的指示。
实施例41是实施例40的计算机实现的方法,其中,音乐表征过程由已经训练成表征音乐的机器学习系统执行。
实施例42是实施例40或41中任一者的计算机实现的方法,其中,将数字音频数据的表征值类集与多个候选歌曲的子集中的每个参考歌曲的多个表征值进行比较通过以下步骤来执行:在不向另一计算设备发送对歌曲表征数据的请求的情况下访问由计算设备针对多个候选歌曲的子集中的每个参考歌曲存储的多个表征值。
实施例43是实施例40至42中任一者的计算机实现的方法,该方法还包括:将数字音频数据的表征值类集从并非全部被限制到二进制零和二进制一的值转换为被限制到二进制零和二进制一的值;以及其中,将数字音频数据的表征值类集与多个参考歌曲中的每个的多个表征值进行比较包括比较,其中:(a)数字音频数据的表征值类集被限制到二进制零和二进制一,以及(b)多个歌曲中的每个的表征值被限制到二进制零和二进制一。
实施例44是实施例40至43中任一者的计算机实现的方法,其中,将数字音频数据的表征值类集与候选歌曲子集中的每个参考歌曲的多个表征值进行比较包括比较,其中:(a)数字音频数据的表征值类集包括表示除了二进制零和二进制一之外的值的实数,以及(b)候选歌曲子集中的每个参考歌曲的表征值被限制到二进制零和二进制一。
实施例45是实施例40至44中任一者的计算机实现的方法,其中,将多个参考歌曲中的参考歌曲的参考歌曲表征值被限制到二进制零和二进制一,使得每个表征值被限制到二进制一或二进制零。
实施例46是实施例40至45中任一者的计算机实现的方法,其中,多个参考歌曲包括至少一万个参考歌曲,使得参考歌曲表征数据识别该至少一万个参考歌曲的音频特征。
实施例47是实施例40至46中任一者的计算机实现的方法,该方法还包括:由计算设备利用音乐确定过程来确定数字音频数据是否表示音乐,其中,在计算设备已经利用音乐确定过程确定了数字音频数据表示音乐之后,计算设备将数字音频数据的表征值类集与多个参考歌曲中的每个的多个表征值进行比较。
实施例48是实施例40至47中任一者的计算机实现的方法,其中,频域格式是第一频域格式,并且频域转换过程是第一频域转换过程,并且确定数字音频数据是否表示音乐包括:在第二频域转换过程期间将数字音频数据从时域格式转换成频域格式,以及在音乐确定过程中使用第二频域格式的数字音频数据,该音乐确定过程接收第二频域格式的数字音频数据并且输出数字音频数据是否表示音乐的指示。
实施例49是实施例47或48中任一者的计算机实现的方法,其中,音乐确定过程包括:执行已经训练成确定音频是否表示音乐的机器学习系统。
实施例50是实施例47至49中任一项的计算机实现的方法,其中,计算设备在不访问识别多个参考歌曲中的每个参考歌曲的多个音频特征的参考歌曲表征数据的情况下确定数字音频数据是否表示音乐。
实施例51是实施例47至50中任一者的计算机实现的方法,其中,计算设备利用音乐确定过程来确定数字音频数据是否表示音乐包括:计算设备在确定数字音频数据表示音乐之前,在没有接收到发起音乐确定过程的用户输入的情况下多次确定数字音频数据不表示音乐。
实施例52是实施例47至51中任一者的计算机实现的方法,其中,第二频域格式和第一频域格式分析不同数量的频率区间。
实施例53是实施例47至52中任一者的计算机实现的方法,其中:确定数字音频数据是否表示音乐是由计算设备的第一处理器执行的;将数字音频数据的表征值类集与多个参考歌曲中的每个的多个表征值进行比较是由计算设备的第二处理器执行的;以及将数字音频数据的表征值类集与多个候选歌曲的子集中的每个参考歌曲的多个表征值进行比较是由计算设备的第二处理器执行的。
实施例54是实施例53的计算机实现的方法,其中,第一处理器在比第二处理器低的电压或瓦数下运行。
实施例55是实施例53至54中任一者的计算机实现的方法,其中,第二处理器根据比所述第一处理器操作所根据的时钟信号至少快一个数量级的时钟信号操作。
实施例56是实施例40至55中任一者的计算机实现的方法,其中,输出对特定参考歌曲的指示包括:除了启用连续的歌曲识别过程之外,在用户输入尚未提示计算设备执行歌曲识别过程的情况下,在计算设备的锁定屏幕上、在设备的始终开启屏幕中或在计算设备的解锁屏幕上方呈现的通知中呈现特定参考歌曲的名称。
实施例57涉及一种计算机化系统,该计算机化系统包括:一个或者多个处理器;以及一个或多个计算机可读设备,该一个或多个计算机可读设备包括指令,该指令在被该一个或多个处理器执行时促使执行实施例40至56中任一者的方法。
在下面的附图和说明书中阐述了一个或者多个示例的细节。其它特征、目的、和优点将通过说明书、附图和权利要求书而变得显而易见。
附图说明
图1示出了执行自动音乐确定和歌曲识别的计算设备以及为该计算设备提供参考歌曲数据的远程服务器系统。
图2是用于检测和确定当前正在示例计算设备的当前环境中播放音乐的示例计算设备组件、操作和数据结构的概念图。
图3A-B示出了用于确定当前正在示例计算设备的当前环境中播放音乐的示例过程的示意图。
图4是用于接收和存储参考歌曲数据并且用于识别当前正在示例计算设备的当前环境中播放的歌曲的示例计算设备组件、操作和数据结构的概念图。
图5示出了用于接收和存储参考歌曲数据的示例过程的示意图。
图6A-B示出了用于识别当前正在示例计算设备的当前环境中播放的歌曲的示例过程的示意图。
图7是由示例计算设备执行的示例歌曲候选识别过程的概念图。
图8示出了由计算设备呈现的示例用户界面,其指示正在周围环境中播放识别到的歌曲。
图9是实施本文档中所描述的系统和方法的示例系统的概念图。
图10是将本文档中所描述的系统和方法实施为客户端或实施为一个服务器或多个服务器中任一者的示例计算设备的框图。
在各个附图中,类似的附图标记表示类似的元件。
具体实施方式
本文档大体上描述了用于确定检测到的环境音频表示或包括音乐然后识别该环境音频中所包含的歌曲的机制。本公开首先参看图1描述了该过程的主要方面,然后参看图2至图10提供了这些过程的附加细节。
图1示出了执行自动音乐确定和歌曲识别的计算设备100以及为计算设备100提供参考歌曲数据的远程服务器系统150。图1中将计算设备100图示为触摸屏智能电话,但计算设备100可以是其它类型的移动计算设备和非移动计算设备诸如平板计算机、智能手表、桌面型计算机和智能家电。
计算设备100被配置成连续记录音频数据102并且分析音频数据102以确定在检测到的环境音频中是否包含音乐。用麦克风以模拟格式记录音频数据102,然后将其提供给低功率处理器104,该低功率处理器将音频数据102从模拟格式转换成数字格式。
低功率处理器104将数字格式的音频数据102存储在缓冲器中,并且将音频数据102从时域格式转换成频域格式,以便于(例如通过对音频数据102执行快速傅里叶变换)对音频数据102进行分析。低功率处理器104可以按一定间隔(例如,每隔10毫秒、每隔20毫秒、每隔40毫秒或另一合适的值)定期执行此转换过程。快速傅里叶变换可以在大于此间隔的窗口上运行(例如,其可以在步长为10ms的25ms的窗口上运行)。
低功率处理器104存储这些阵列的一定秒数(例如,五秒、十秒、二十秒或另一值)的缓冲器,使得对于过去的秒数(例如,五秒)内的每个间隔(例如,10毫秒间隔、20毫秒间隔、40毫秒间隔),计算设备已经在频率范围的若干不同“区间”(例如,32个区间、64个区间、128个区间)中的每一个中识别出频率内容的功率。缓冲器可以是循环缓冲器,使得能够以新生成的阵列替换历时数秒(例如,历时5秒)的阵列。低功率处理器104可以连续地执行该过程(即,在不需要重复的用户输入来发起该过程的情况下以规则间隔重复执行该过程)。
以规则间隔(例如,每隔1秒、每隔2秒、每隔5秒),低功率处理器104对5秒缓冲器进行分析以确定最新获取到的音频数据102是否表示正在计算设备100所处的周围环境中播放的音乐。在一些示例中,通过在低功率处理器104上执行的机器学习系统诸如卷积神经网络来执行此分析。可能已经通过将数万个音频记录以及对每个音频记录是否表示音乐的指示传递到机器学习系统中,在单独计算系统上训练了机器学习系统。这些输入最终训练机器学习系统,然后可以将该经过训练的机器学习系统(例如,通过传送机器学习系统配置数据)传送到计算设备100和与其类似的其它设备。计算设备100可以接收对机器学习系统的偶然更新。
低功率处理器104可以生成音乐估计决策的缓冲器(例如,置信度值和/或在每个间隔(例如,每隔1秒、每隔2秒、每隔5秒)处的“是”或“否”确定),以识别音频数据102是否表示音乐。低功率处理器104可以将这些音乐估计决策存储在又一缓冲器中,并且可以分析音乐估计决策的最新历史以确定其是否满足预定准则,从而输出音乐确实正在计算设备100所处的周围环境中播放的指示。在一些示例中,如果先前确定中的至少特定分数(例如,过去七个1秒确定中的五个)指示“是”(即,指示检测到的环境音频包括音乐),那么低功率处理器104可以输出正在播放音乐的决策。例如,对七个单独确定的此“投票”增加了由低功率处理器104输出的音乐确定决策的可靠性,并且确保在仅播放两秒或三秒的音乐片段(例如,在电视广告中)的情况下低功率处理器104不指示正在播放音乐。在存在一些伪造的肯定分类的情况下,投票也是有用的。
在低功率处理器104已经确定了在检测到的环境音频中包含音乐之后,低功率处理器向高功率处理器110发送指令108,以使高功率处理器110识别正在播放的歌曲。低功率处理器104还向高功率处理器110发送,低功率处理器104基于基础音频数据106做出正在播放音乐的确定。低功率处理器104发送时域格式的基础音频数据106,这是因为高功率处理器可以生成相对于由低功率处理器104生成的表示的对音频数据102的高分辨率频域表示。低功率处理器104向高功率处理器110发送的缓冲器可以是与分类窗口不同的大小(例如,其可以是过去8秒,即使分类可以在过去5秒内执行)。
高功率处理器110接收音频数据106并且将音频数据106转换成频域格式,以准备对音频数据106进行分析。频域转换可以使用快速傅里叶变换过程来执行,并且可以生成音频数据106的相对较高的分辨率频域表示,该音频数据包括每次转换的值的特定数量的区间(例如,256个区间、512个区间、1024个区间)(例如,以生成长度与区间数量对应的阵列)。高功率处理器110可以在高功率处理器110从低功率处理器104接收到的音频数据106上按规则间隔(例如,46毫秒的间隔、92毫秒的间隔、184毫秒的间隔)运行频域转换过程。高功率处理器110可以将所生成的阵列存储在缓冲器中。同样,高功率处理器110从低功率处理器104得到音频数据106的时域版本,并且用表示音频数据106的频域版本的值的阵列填充缓冲器。
高功率处理器110然后分析存储在缓冲器中的频域音频数据106以表征音频数据106。例如,高功率处理器110可以将频域音频数据106提供给已经训练的机器学习系统(例如,神经网络)以生成集合表征值,每个表征值集合具有表征音频的若干值(例如,48个值、96个值、192个值或另一合适数量的值)。在此示例中,并非生成值的单个集合以表征缓冲器中的所有音频数据106,而是高功率处理器110可以在缓冲器上以一秒的间隔运行其表征过程,从而每一次表征音频数据102的两秒部分。同样,如果缓冲器为八秒长,那么高功率处理器110将生成七个表征值集合(一个集合从0至2秒开始,另一集合从1至3秒开始,另一集合从2至4秒开始,依此类推)。每个表征值可以是存储在“浮点”值中的实数(例如,此数值可以为包括实数的小数部分中的“783”的值的0.783)。在利用机器学习系统分析缓冲器中的音频数据106之前,高功率处理器110可以例如通过提供频率区间权重或特征缩放/标准化(例如,均值为0,标准偏差为1)来处理缓冲器中的值。
高功率处理器110创建该表征值,以将计算设备100记录的音频数据106与计算设备100在设备上的歌曲数据库116中为数千个歌曲存储的以类似方式创建的参考歌曲表征数据118进行比较。计算设备100可以用从远程服务器系统150接收到的参考歌曲表征数据118填充设备上的歌曲数据库116。远程服务器系统150可以包括全球歌曲数据库120,该全球歌曲数据库存储了数十万个或甚至上百万个歌曲的歌曲表征数据,并且可以使用歌曲过滤过程122来选择要向计算设备100发送哪些歌曲表征数据。
例如,全球歌曲数据库120可以包括全世界流行的歌曲的表征数据,但可以仅将歌曲子集的参考歌曲表征数据118发送到计算设备100。例如,远程服务器系统150确定计算设备100位于北美,因此发送到计算设备100的参考歌曲表征数据118可以仅包括在北美流行的歌曲。当确定不同歌曲在计算设备100所处的地理区域中流行时,远程服务器系统150可以周期性地向计算设备100发送参考歌曲数据118的更新列表。用于从全球歌曲数据库120中的所有歌曲中选择参考歌曲表征数据118的准则可以基于除了地理位置之外的因素,诸如以下中的各种组合:用户年龄(例如,针对年轻人的流行音乐和针对老年人的古典歌曲)、设备的存储容量(例如,用户允许存储更多歌曲表征数据的一个或多个大容量设备的更多歌曲数据)、一天中的时间(例如,基于用户偏好,夜晚的迪斯科和早晨的健身歌曲)、一年中的时间(例如,十二月里更多的节日音乐)以及用户兴趣(例如,基于从社交网络配置文件或消息中收集到的信息)。这种个性化数据的收集和使用可以响应于用户的选择加入请求而执行,使得可以不访问或使用个性化数据,除非用户明确请求使用这种数据来使参考歌曲表征数据118中的信息个性化。可能已经使用与上文相对于在计算设备100处对记录的音频数据106执行的过程所描述的过程类似或相同的表征过程来生成参考歌曲表征数据118。换句话说,远程服务器系统150可以在参考歌曲上以一秒的间隔为每个参考歌曲生成数值或表征值(例如,48个值、96个值、192个值或另一合数数量的值)。可以以二进制格式存储参考歌曲表征数据118,其中,每个表征值是根据其标称值向下或向上舍入的“0”或“1”,以节省存储空间并且便于进行快速比较。另一方面,由计算设备100生成的表征数据可以将其表征值存储为实数(例如,存储在“浮点”值诸如0.783中的实数)。
一旦高功率处理器110已经通过(例如,使用机器学习系统)将音频数据106转换成歌曲表征数据表征了音频数据106,那么高功率处理器110可以将该歌曲表征数据与参考歌曲表征数据114进行比较,以确定记录的音频数据106是否与设备上的歌曲数据库116中表示的任何歌曲相匹配。可以在两个子步骤中执行该比较过程。在第一子步骤中,高功率处理器110对设备上的歌曲数据库116中表示的整个歌曲集合执行轻量级比较,以识别与计算设备记录的音频数据106类似的一组候选歌曲。这些候选歌曲是在第二子步骤中执行的更详细分析的候选。
在一些示例中,用于识别候选歌曲的这种轻量级比较涉及:选择从音频数据106中生成的表征值的子集(例如,64个值、48个值、32个值或另一合适数量的值)并且(使用舍入过程)将这些值中的每一个转换成二进制“0”或二进制“1”中任一者。然后,高功率处理器110将从记录的音频数据106生成的二进制表征值的子集与在数千个参考歌曲中的每个的每隔一秒的间隔内在设备上的歌曲数据库116中存储的对应的64个二进制表征值进行比较。该过程可以涉及数十万次比较。例如,存在从记录的音频106生成的七个表征值集合,并且可以将这些表征值集合中的每一个与在设备上的歌曲数据库116中表示的每个歌曲的每隔1秒的间隔内存储的每个表征值集合进行比较。例如,假设每个歌曲大约长200秒,这意味着比较过程将涉及设备上的歌曲数据库116中的每个歌曲的1400次比较。高功率处理器110可以相对快速地执行这些比较,这是因为所比较的值都是二进制的,因此可以采用处理器比较指令。
一旦高功率处理器110已经生成了候选歌曲列表(例如,存在与记录的音频数据106的匹配或相似度比较过程生成了高相似度分数的那些歌曲),高功率处理器110就可以执行第二子步骤,该第二子步骤涉及将记录的音频数据106与候选歌曲进行更详细的比较。这种更详细的比较可以涉及:以整个表征值集合的实值格式(即,并非其二进制表示,如同候选识别过程)使用该整个表征值集合(例如,例如,48个值、96个值、192个值或另一合适数量的值),并且将这些表征值集合与设备上的歌曲数据库中的对应表征值集合进行比较。
在比较过程中使用实值(例如,带小数点的值)产生不仅仅是“匹配”或“不匹配”的输出,而是产生包括值的阵列的输出,其每个指示记录的音频数据106的表征值集合与参考歌曲表征数据118的对应集合的表征值集合之间的相似度。在执行数十万次比较之后,高功率比较器110将与记录的音频数据106具有最大相似度的候选歌曲识别为当前正在周围环境中播放的歌曲,至少在候选歌曲的表征值与记录的音频数据106的表征值之间的相似度值超过预定阈值的情况下。
在一些示例中,计算设备100在视觉上或听觉上指示其已经识别出正在周围环境中播放的歌曲。例如,计算设备100可以在计算设备100的显示器上呈现歌曲信息112(例如,歌曲标题和艺人姓名)。例如,计算设备100可以在通知中或作为背景显示的一部分来呈现歌曲信息112。
参照其余附图,本公开的其余部分以附加细节逐步地进行了此过程。
图2是用于检测和确定当前正在示例计算设备的当前环境中播放音乐的示例计算设备组件、操作和数据结构的概念图。如图2所示,例如,可以使用低功率处理器202(例如,与图1中所示的低功率处理器104类似)来持续地处理数字音频数据,并且确定数字音频数据是否表示音乐。例如,低功率处理器202可以是被包括在专用音频编解码器芯片上的用于处理来自设备麦克风的信号的专用数字信号处理器(DSP),低功率处理器202在比主处理器(例如,中央处理单元(CPU))低的电压或瓦数下操作,并且根据比主处理器的时钟信号慢至少五倍、十倍、二十倍或三十倍的时钟信号操作。因此,低功率处理器202可以持续地监视由设备麦克风检测到的环境声音,同时消耗少量的设备电池电量(例如,小于1%的电池容量)。相对于3A-B更详细地描述了由低功率处理器202用于确定音乐包含在检测到的环境音频中的组件、操作和数据结构。
~图3A-B示出了用于确定当前正在示例计算设备的当前环境中播放歌曲的示例过程的示意图。通常,可以在不具有明确的用户输入的情况下连续地执行该过程。例如,在发起该过程之前的某个时间点处,用户可以修改设备配置设置,该设备配置设置为设备提供用于在设备通电时连续执行该过程的指令。此后,在不具有其它用户输入的情况下,无论何时开启设备,设备都将执行该过程。例如,可以由(图2中所示的)低功率处理器202执行用于确定音乐包含在检测到的环境音频中的操作。
在框302中,接收由麦克风捕获到的音频输入。例如,(图1中所示的)计算设备100可以连续地监视并且记录由其麦克风检测到的环境声音。
在框304中,将音频输入从模拟格式转换成数字格式。现在参照图2,由模数(A/D)转换器204接收环境音频信号(例如,由设备麦克风生成的模拟音频信号)。模数转换器204可以将模拟音频信号转换成时域格式的数字音频数据。在一些示例中,可以将模数转换器204实施为与低功率处理器202分离的集成电路。在一些示例中,模数转换器204可以实施在低功率处理器202上。
在框306中,将数字音频数据保持在数字音频缓冲器中。例如,模数转换器204可以输出存储在低功率处理器202的数字音频缓冲器206中的数字音频数据的连续流式传输。在一些示例中,数字音频缓冲器206可以是循环缓冲器,使得比指定秒数(例如,四秒、八秒、十六秒)长的数字音频用以新的方式接收到的数字音频数据覆盖。
在框308中,执行数字音频数据是否表示音乐的确定。例如,低功率处理器202可以连续地处理来自数字音频缓冲器206的数字音频数据流式传输,并且可以基于处理来周期性地确定数字音频数据的特定区段是否表示音乐。
在框310中,确定数字音频数据是否表示音乐包括:在第一频域转换过程期间将数字音频数据从时域格式转换成第一频域格式。例如,低功率处理器202可以周期性地(例如,以10毫米、20毫米、40毫米的时间间隔或另一合适的时间间隔)执行频率变换过程208,在此过程中,将来自数字音频缓冲器206的数字音频数据的指定时间窗口(例如,25毫米、50毫米、100毫米或另一合适的时间窗口)从时域格式转换成第一频域格式。在本示例中,低功率处理器202每隔20毫秒执行一次频率变换过程208,每次对来自数字音频缓冲器206的最新五十毫秒的数字音频进行采样和处理。例如,频率变换过程208输出数据帧210,该数据帧包括指定数量的区间(例如,十六个区间、三十二个区间、六十四个区间或另一合适数量的区间)的值,每个区间与频率范围相关联并且具有关联值,该关联值表示在采样时间段期间的频率范围下的音频强度。在本示例中,数据帧210包括十六个区间,每个区间与音频范围(例如,可听音频范围)的不同部分相关联,并且每个区间被分配有表示音频范围的该部分处的音频强度的浮点值。在一些示例中,频率变换过程208可以使用快速傅里叶变换(FFT)算法将数字音频数据的采样部分从时域格式转换成第一频域格式的数据帧。
在框312中,确定数字音频数据是否表示音乐包括:将第一频域中的数字音频数据存储在缓冲器中。例如,低功率处理器202可以将数据帧210(例如,表示来自数字音频缓冲器206的最新五十毫秒的数字音频)添加至频率变换212的缓冲器,该缓冲器包括已经由频率变换过程208在先前采样周期期间生成的一系列数据帧。在本示例中,频率变换212的缓冲器包括已在过去五秒内生成的数据帧。在一些示例中,频率变换212的缓冲器可以是循环缓冲器,使得比指定秒数(例如,五秒)长的数据帧由以新的方式生成的数据帧覆盖。
在框314中,确定数字音频数据是否表示音乐包括:将第一频域格式的数字音频数据提供给接收呈第一频域格式的数字音频数据的音乐确定过程。例如,作为音乐确定过程的部分,低功率处理器202可以周期性地(例如,每秒一次)对存储在频率变换212的缓冲器中的一些或所有先前生成的数据帧执行音乐估计过程214。在本示例中,音乐估计过程214接收频率变换212的整个缓冲器作为输入,其包括以第一频域格式存储的采样音频数据的最后五秒。
在框316中,音乐确定过程包括已经训练成确定数字音频是否表示音乐的机器学习系统。例如,为了确定频率变换212的缓冲器是否表示音乐,音乐估计过程214可以包括:参考已经(例如,先前在服务器系统150处)离线训练并且提供给低功率处理器202的机器学习模型。可以使用机器学习模型相对于第一频域格式的数字音频数据(例如,频率变换212的缓冲器中的一系列数据帧)是表示音乐还是不表示音乐来执行二进制分类。在一些示例中,机器学习模型可以是在低功率处理器202上连续运行的小型量化卷积神经网络。
在框320中,确定数字音频数据是否表示音乐包括:将指示数字音频数据是否表示音乐的值保持在音乐估计决策216的缓冲器中。例如,在执行音乐估计过程214之后,低功率处理器202可以将表示第一频域格式的数字音频数据是否表示音乐的二进制值218(例如,指示音乐的值一和指示无音乐的值零)添加在音乐估计决策216的缓冲器中。在一些示例中,音乐估计决策216的缓冲器可以是循环缓冲器,使得能够保持指定数量的最新音乐估计决策值(例如,七个),并且使得较旧决策值能够被新决策值覆盖。
在框322中,确定数字音频数据是否表示音乐包括:确定先前音乐估计决策是否满足用于输出数字音频表示音乐的指示的预定准则。例如,在将二进制值218添加至音乐估计决策216的缓冲器之后,低功率处理器202可以执行音乐确定过程220,该音乐确定过程接收音乐估计决策216的缓冲器中的一些或所有先前音乐估计决策作为输入。在本示例中,音乐确定过程220接收音乐估计决策216的整个缓冲器作为输入,该缓冲器包括先前的七个音乐估计决策,每个决策以一秒的间隔生成。在一些示例中,用于输出数字音频表示音乐的指示的预定准则包括:确定音乐估计决策216的缓冲器中的阈值数量(例如,七个当中的五个)的先前音乐估计决策是否指示第一频域格式的数字音频数据表示音乐。在一些示例中,用于输出数字音频表示音乐的指示的预定准则包括:确定音乐估计决策216的缓冲器中的阈值数量的连续的先前音乐估计决策(例如,四个连续的决策)是否指示第一频域格式的数字音频数据表示音乐。
在框324中,确定数字音频数据是否表示音乐包括:输出数字音频数据表示音乐的指示。例如,响应于音乐确定过程220确定第一频域格式的数字音频数据表示音乐,低功率处理器202可以将用于分析音频222的指令提供给(图4中所示的)高功率处理器402,并且可以提供来自数字音频缓冲器206的对应数字音频224。在本示例中,将数字音频缓冲器206的全部内容(例如,包括时域格式的记录的数字音频数据的先前八秒)提供给高功率处理器以供进一步处理。
在框326中,确定数字音频数据是否表示音乐包括:在确定数字音频数据表示音乐之前,在没有接收到发起音乐确定过程的用户输入的情况下多次(例如,数千次)确定数字音频数据不表示音乐。例如,计算设备100可以连续地监视音乐的环境声音,从而确定不存在音乐。当存在音乐时(例如,音乐开始在设备附近播放,或设备传送到具有音乐的位置),计算设备100可以在不具有来自设备用户的发起用于确定音乐的过程的任何输入的情况下检测音乐。
图4是用于接收和存储参考歌曲数据并且用于识别当前正在示例计算设备的当前环境中播放的歌曲的示例计算设备组件、操作和数据结构的概念图。如图4所示,例如,可以使用高功率处理器402(例如,与图1中所示的高功率处理器110类似)来确定表示正在播放的歌曲的数据是否与表示存储在设备上的歌曲数据库404(例如,与图1中所示的设备上的歌曲数据库116类似)中的歌曲的数据相匹配。例如,高功率处理器402可以是设备的主处理器(例如,中央处理单元(CPU)),该主处理器在比(图2中所示的)低功率处理器202更高的电压或瓦数下操作,并且根据比低功率处理器202的时钟信号至少快一个数量级(例如,快五倍、十倍、二十倍或三十倍)的时钟信号操作。在一些示例中,高功率处理器402可以包括两个或更多个CPU核心。在一些示例中,可以使用持久性存储器来实施设备上的歌曲数据库404,并且可以将设备上的歌曲数据库404中的一些或所有数据加载到设备的随机存取存储器(RAM)中以促进歌曲识别过程。相对于图5更详细地描述了用于接收并且存储设备上的歌曲数据库404中的参考歌曲数据的组件、操作和数据结构。相对于图6A至图6B更详细地描述了由高功率处理器402用于识别正在播放的歌曲的组件、操作和数据结构。
图5示出了用于接收和存储参考歌曲数据的示例过程的示意图。通常,可以周期性地(例如,每天、每周)执行此过程,可以响应于设备上下文的变化(例如,设备位置的变化)而执行此过程,和/或可以响应于用户输入而执行此过程。参照图1,例如,可以将表示新歌曲的数据添加至全球歌曲数据库120,并且作为响应,可以将参考歌曲数据118提供给计算设备100以供在设备上的参考歌曲数据库116中进行存储。作为另一示例,计算设备110的位置可以改变,并且作为响应,可以提供可与计算设备110的当前位置相关的参考歌曲数据118以供在设备上的参考歌曲数据库116中进行存储。作为另一示例,计算设备110的用户可以提供特定输入以触发对服务器系统150的请求,以提供更新的参考歌曲数据118以供在设备上的参考歌曲数据库116中进行存储。
在框502中,由计算设备从远程计算系统接收参考歌曲表征数据。再次参照图1,例如,计算设备100从服务器系统150接收参考歌曲数据118。可以通过服务器系统150使用歌曲过滤过程122从全球歌曲数据库120选择由参考歌曲数据118表示的歌曲,例如,该歌曲过滤过程可以用于基于诸如设备的位置、设备用户的音乐兴趣和其它相关因素的因素来为计算设备100选择自定义歌曲集合。
歌曲的参考歌曲表征数据包括表征歌曲的数据,该数据已经通过使用神经网络为歌曲中所包括的一系列事件窗口生成特征向量集合的歌曲表征过程生成。通常,用于生成歌曲的特征向量集合的过程可以包括(例如使用快速傅里叶变换(FFT)算法)将歌曲的数字音频从时域格式转换成频域格式,然后通过将频域格式化数据提供给神经网络来生成歌曲的指纹。对于歌曲中所包括的每隔两秒的窗口,歌曲指纹可以包括例如九十六个特征向量的集合。
在一些示例中,可以对每个特征向量执行平滑处理,使得基于前述时间窗口和/或以下时间窗口的对应特征向量值来调整给定时间窗口的特定特征向量值。例如:
smoothed_value[t]=
1*值[t-2]+
3*值[t-1]+
4*值[t]+
3*值[t+1]+
1*值[t+2]
在一些示例中,可以将特征向量值从浮点值转换为二进制值。例如,特征向量值可以包括来自具有零平均值的分布的正值和负值。例如,在使每个特征向量值平滑之后,可以将值转换为二进制值,使得能够将正值映射为真(例如,1),并且将零值和负值映射为假(例如,-1)。在一些示例中,为特定特征向量中的每个值生成smoothed_value[t]。例如,通过对特征向量值进行二值化并且使特征向量值平滑,可以为每个歌曲生成紧凑指纹。
在框504中,存储识别多个参考歌曲中的每个参考歌曲的多个音频特征的参考歌曲表征数据。现在参照图4,可以将参考歌曲表征数据(例如,图1中所示的参考歌曲数据118)存储在设备上的歌曲数据库404中。
在框506中,针对多个参考歌曲中的每个参考歌曲存储的参考歌曲表征数据包括与多个音频特征对应的多个参考歌曲表征值。在本示例中,歌曲的每隔两秒的窗口与九十六个歌曲表征值相关联,每个歌曲表征值代表不同音频特征。
在框508中,针对多个参考歌曲中的所有参考歌曲存储的参考歌曲表征数据具有相同数量的音频特征。在本示例中,每个歌曲与九十六个音频特征相关联。
在框510中,多个参考歌曲中的所有参考歌曲的参考歌曲表征值是二进制一或二进制零中任一者(即,每个值被限制到二进制一或二进制零)。在本示例中,针对每个歌曲和歌曲的每隔两秒的窗口,每个歌曲特征被分配有二进制一或二进制零中任一者。
在框512中,多个参考歌曲包括至少一万个参考歌曲,使得参考歌曲表征数据识别至少一万个参考歌曲的音频特征。例如,由于每个歌曲与紧凑但详细的指纹相关联,因此可以将大量的参考歌曲的指纹数据存储在设备上的歌曲数据库404中。
图6A-B示出了用于识别当前正在示例计算设备的当前环境中播放的歌曲的示例过程的示意图。通常,该过程可以由计算设备响应于确定音乐包含在检测到的环境音频中(如上文参照图3A-B所描述)而自动发起。例如,(图1中所示的)计算设备100可以使用(同样在图1中所示的)低功率处理器104连续地监视环境中针对可能的音乐的环境声音,并且只有在检测到音乐时,计算设备100才可以尝试使用(同样在图1中所示的)高功率处理器110从多个参考歌曲中识别正在播放的特定歌曲。
在框602中,接收用于分析音频的指令。例如,响应于(图2中所示的与图1中所示的低功率处理器104类似的)低功率处理器202确定数字音频数据表示音乐,低功率处理器202可以向(图4中所示的与图1中所示的高功率处理器110类似的)高功率处理器402提供用于分析音频222的指令。
在框604中,接收用于分析音频的指令可以包括接收对应数字音频224。例如,对应数字音频224可以包括(图2中所示出)数字音频缓冲器206的一些或所有内容。在本示例中,对应数字音频224包括时域格式的前八秒的记录且经过转换的数字音频数据。该数字音频数据可以至少表示相同的音频内容,低功率处理器104基于该音频内容的基础做出正在播放音乐的确定。
在框606中,计算设备识别数字音频数据表示多个参考歌曲中的特定参考歌曲。例如,高功率处理器402可以确定对应数字音频224是否与设备上的歌曲数据库404中表示的任何歌曲的参考歌曲特征数据相匹配。
在框608中,识别数字音频数据表示特定参考歌曲可以包括在第二频域转换过程期间将数字音频数据从时域格式转换为第二频域格式,并且将经过转换的数字音频数据存储在缓冲器中。例如,高功率处理器402可以执行频率变换过程408,其中将对应数字音频224从时域格式转换成第二频域格式。例如,高功率处理器402可以使用指定长度的采样窗口(例如,92毫秒的采样窗口、138毫秒的采样窗口、184毫秒的采样窗口或另一合适长度)对对应数字音频224执行频率转变处理408,该窗口以指定的时间间隔(46毫秒的间隔、69毫秒的间隔、92毫秒的间隔)出现。对于每个采样窗口,频率变换过程408输出对应数据帧(例如,数据帧410),其包括用于指定数量的频率区间(例如,256个区间、512个区间、1024个区间或另一合数数量的频率区间)的数据值,每个频率区间与频率范围相关联。每个区间的值表示在采样时间段期间的频率范围内的音频强度。在一些示例中,频率变换过程408可以使用快速傅里叶变换(FFT)算法以将数字音频数据的采样部分从时域格式转换成第二频域格式的数据帧。例如,可以由高功率处理器402将所生成的数据帧中的每个存储在频率样本412的序列缓冲器中。
在框610中,第二频域格式可由于用于生成第二频域格式和第一频域格式的分析不同数量的频率区间的过程而与第一频域格式不同。在第二频域格式与第一频域格式之间,计算区间的频率范围也可以是不同的(例如,在针对每个单独区间分析的频率宽度和/或所分析的总体频率宽度中)。如本示例中所示,与由(图4中所示的)高功率处理器402执行的相对于音频频率产生一系列相对较高分辨率的数据帧(例如,每个帧具有两百五十六个频率范围区间的数据)的频率变换过程408相比,由(图2中所示的)低功率处理器202执行的频率变换过程208相对于音频频率产生一系列相对较低分辨率的数据帧(例如,每个帧具有十六个频率范围区间的数据)。此外,采样速率也可以在两个频率变换过程之间变化。如本示例中所示,与由高功率处理器402执行的产生具有相对较长的时间窗口(例如,一百八十四毫秒)的一系列数据帧的频率变换过程408相比,由低功率处理器202执行的频率变换过程208产生具有相对较短的时间窗口(例如,五十毫秒)的一系列数据帧。
在框612中,将第二频域格式的数字音频数据提供给接收呈第二频域格式的音频数据的音乐表征过程。例如,高功率处理器402可以接收频率样本412的缓冲器,并且可以对缓冲器执行在两秒的窗口中处理缓冲器的歌曲表征过程416,这些窗口以一秒的间隔进行采样。在本示例中,对于两秒的窗口中的每一个,歌曲表征过程406输出九十六个歌曲特征(例如,特征向量或96个值)的集合,从而产生频率样本412的八秒缓冲器的九十六个歌曲特征的七个集合。在一些示例中,歌曲表征过程406输出一百二十八个维度的集合。在各种示例中,窗口可以间隔0.5秒或1秒。
在框614中,音乐确定过程可以由已经训练成表征音乐的机器学习系统执行。例如,为了生成歌曲特征集合,歌曲特征过程416可以参考已经(例如,在过去的某一时间处,在服务器系统150处)离线训练并且提供给低功率处理器402的机器学习模型.可以使用机器学习模型为歌曲中的频率样本的窗口(例如,两秒的窗口)生成歌曲特征(例如,特征向量)集合,该集合可以在将来的某一时间与音乐的前述部分和/或以下部分的歌曲特征集合一起用于对歌曲进行指纹识别或识别。在一些示例中,机器学习模型可以是在高功率处理器402上运行的量化卷积神经网络。
在框616中,可以输出数字音频数据的表征值类集。例如,可以将歌曲表征过程416的输出(例如,频率样本412的八秒缓冲器的九十六个歌曲特征的七个集合)存储和/或保持在设备存储器中作为当前歌曲特征418,每个歌曲特征由浮点值(例如,实数值,诸如,0.443)表示。
在框618中,将数字音频数据的表征值类集中的表征值的二进制表示与参考歌曲的多个表征值进行比较,以选择多个候选歌曲的子集。所选择的候选歌曲可以是与环境音频的表征值的二进制表示相关或以其它方式相匹配的那些歌曲。例如,高功率处理器402可以执行候选识别过程420,该候选识别过程接收一些或所有当前歌曲特征418,接收设备上的歌曲数据库404中引用的歌曲的一些或所有音频特征(例如,特征向量),并且执行比较过程以识别多个可能匹配的歌曲。在本示例中,候选识别过程420包括从当前歌曲特征418中选择特征子集(例如,九十六个特征中的四十八个),接收针对两秒的窗口中的每一个的值的对应子集(例如,四十八个值的七个集合),并且将每个值从浮点值转换为二进制值。候选识别过程420还为在设备上的歌曲数据库404中表示的每个歌曲接收对应的四十八个音频特征中的每一个的二进制值。
在一些示例中,在不具有考虑到歌曲特征的两秒窗口是否按顺序匹配的比较的情况下,执行其中计算设备将当前歌曲特征的每隔两秒的集合与参考歌曲特征的每隔两秒的集合进行比较的过程。例如,比较可以涉及:识别当前歌曲特征的每个单独集合至参考歌曲特征的其它集合的汉明(Hamming)距离,但不考虑当前歌曲和参考歌曲特征的集合的序列性质。同样,如果当前歌曲的一个或多个两秒的数据窗口与参考歌曲的一个或多个两秒的数据窗口相匹配,那么即使计算设备可能尚未确定当前歌曲的整个八秒数据缓冲器与参考歌曲的对应八秒数据缓冲器相匹配,计算设备也可以将参考歌曲识别为候选匹配。
在一些示例中,对参考歌曲进行加权,使得确定为总体上更为流行(或如上文所论述,同与特定用户相关联的准则诸如地理位置、收听趋势等更为相关)的歌曲更有可能被识别为可能匹配的歌曲。
现在参照图7,示出了由计算设备执行的示例候选识别过程(例如,候选识别过程420)的概念图。如图7所示,当前歌曲特征418包括(图4中所示的)频率样本412的缓冲器的每个采样窗口的歌曲特征集合,每个采样窗口与相邻采样窗口部分重叠。在本示例中,当前歌曲特征包括针对缓冲器的0至2秒部分的特征集合702a、针对缓冲器的1至3秒部分的特征集合702b、针对缓冲器的2至4秒部分的特征集合702c、针对缓冲器的3至5秒部分的特征集合702d、针对缓冲器的4至6秒部分的特征集合702e、针对缓冲器的5至7秒部分的特征集合702f、针对缓冲器的6至8秒部分的特征集合702g。由(图4中所示的)高功率处理器402执行比较704,包括针对每个歌曲将当前歌曲特征的每个集合与参考歌曲特征的每个集合进行比较。例如,针对每个歌曲,将当前歌曲特征的序列集合702a-g与在所有可能的参考偏移下具有相同数量的集合(例如,七个)的参考歌曲特征的序列集合进行比较。在本示例中,将当前歌曲特征702a-g的七个序列集合与参考歌曲#1的参考歌曲特征的七个序列集合进行比较,从参考偏移集合712a(例如,0至2秒的歌曲特征)开始,然后从参考偏移集合712b(例如,1至3秒的歌曲特征)开始,然后从参考偏移712c(例如,2至4秒的歌曲特征)开始,然后从参考偏移712d(例如,3至5秒的歌曲特征)开始,依此类推,直到将针对缓冲器的6至8秒部分的当前歌曲特征702g的集合与针对参考歌曲的最厚两秒的参考歌曲特征712n的集合进行比较为止。
在一些示例中,将当前歌曲特征的每个集合与参考歌曲特征的每个集合进行比较包括:在所有可能的参考偏移下,计算当前歌曲特征的序列集合与参考歌曲特征的相同数量的集合顺序的汉明距离。例如,可以通过对汉明距离求和来计算在特定偏移位置处的特定参考歌曲的分数。如果在特定偏移位置处的特定参考歌曲具有满足阈值的分数(例如,分数低于阈值),那么可以将该歌曲识别为可能的匹配歌曲,并且可以将其添加到歌曲候选列表。关于参考歌曲及其相关偏移位置的信息可以保持(例如,在存储器中)以促进进一步处理。
在一些示例中,候选识别过程420涉及对分析树的执行,其中根据参考歌曲的特征的值,将(二进制格式的)当前歌曲特征作为输入提供给树,并且候选歌曲位于树的分支中。同样,高功率处理器110可以不将当前歌曲特征与设备上的歌曲数据库116中的所有参考歌曲的参考歌曲特征的每个集合进行比较。相反,高功率处理器110可以仅浏览树以识别当前歌曲特征的零或更多个候选歌曲。
在框620中,将数字音频数据的表征值类集与多个参考歌曲的至少候选子集中的每个的多个表征值进行比较。再次参照图4,例如,高功率处理器402可执行歌曲识别过程422以从候选歌曲列表(例如,一百个歌曲)中识别单个匹配歌曲(或无匹配歌曲)。在一些示例中,对在框618中识别出的候选歌曲子集执行框620的操作。在一些示例中,可以在不事先识别候选歌曲子集的情况下执行框620的操作。
在框622中,将数字音频数据的表征值与多个参考歌曲的至少子集中的每个的多个表征值进行比较包括比较,其中(a)数字音频数据的表征值是实数,且(b)多个歌曲的至少子集中的每个的表征值被限制到二进制零和二进制一。例如,歌曲识别过程422可以接收一些或所有当前歌曲特征418,并且可以接收设备上的歌曲数据库404中引用的被包括在歌曲候选列表中的歌曲的一些或所有音频特征(例如,特征向量)。例如,当前歌曲特征418的每个表征值可以是浮点值,而设备上的歌曲数据库404中引用的歌曲的每个表征值可以是二进制值。
在一些示例中,将数字音频数据的表征值与参考歌曲的表征值进行比较可以包括对少于所有歌曲特征的比较。例如,为了过滤歌曲候选列表中的歌曲候选,歌曲识别过程422可以包括在其先前识别的偏移位置处重新计算每个候选参考歌曲的分数。例如,重新计算分数可以包括计算非对称二进制距离(例如,当前歌曲特征的二进制值与对应参考歌曲特征的浮点值之间的余弦距离,其中,假=-1,而真=1)。在本示例中,过滤过程可以使用九十六个特征中的四十八个。如果在特定偏移位置处的特定参考歌曲的分数不满足阈值(例如,分数大于或等于阈值),那么可以从歌曲候选列表中移除该歌曲。
在一些示例中,将数字音频数据的表征值与参考歌曲的表征值进行比较可以包括对所有歌曲特征的比较。例如,为了识别歌曲候选列表中的单个匹配歌曲(或为了确定无歌曲匹配),歌曲识别过程422可以包括在其先前识别的偏移位置处重新计算每个候选参考歌曲的分数。例如,重新计算分数可以包括在所有的九十六个特征上计算非对称二进制距离(例如,当前歌曲特征的二进制值与对应参考歌曲特征的浮点值之间的余弦距离,其中,假=-1,而真=1),并且可以包括各种自适应评分技术。作为另一示例,歌曲识别过程422可以通过针对每个候选参考歌曲应用相似度图424并且沿着对角线计算分数来重新计算分数。作为另一示例,歌曲识别过程422可以通过使用比较树来重新计算分数。
在框624中,将数字音频数据的表征值与多个参考歌曲的至少子集中的每个的多个表征值进行比较通过以下步骤来执行:在不向远程计算设备发送对相关数据的请求的情况下访问计算设备上的多个歌曲的至少子集中的每个的多个表征值。例如,设备上的歌曲数据库404可以包括用于数万个歌曲的紧凑指纹,从而在不需要将音频数据从移动设备发送到服务器进行识别的情况下促使在移动设备本身上进行歌曲识别。通过在移动设备本身上执行歌曲识别,可以快速执行歌曲识别,并且可以在网络连接不可用的情况下执行歌曲识别。此外,通过在不需要将音频数据从移动设备发送到服务器的情况下执行歌曲识别,可以维护用户隐私。
在一些示例中,计算候选歌曲的分数可以说明当前歌曲的整个数据缓冲器与候选参考歌曲的整个对应数据缓冲器相匹配的程度。在当前歌曲的缓冲器为八秒并且包括七个两秒的数据窗口的示例中,这七个数据窗口按顺序与候选歌曲的七个数据窗口相匹配的程度可能影响为候选参考歌曲计算出的分数。在其它示例中,整个缓冲器可能不必彼此匹配,但是序列匹配的数量可能影响候选歌曲的计算出的分数。
在一些示例中,对参考歌曲进行加权,使得确定为总体上更为流行的歌曲(或同与特定用户相关联的准则(诸如,地理位置、收听趋势等)更为相关)更有可能被识别为匹配歌曲。
在框626中,对特定参考歌曲的多个表征值与数字音频数据的表征值类集最为相关做出确定。例如,歌曲识别过程422可以根据其计算出的分数来对其余歌曲候选中的每个进行排名,并且当特定候选歌曲在所有其余的歌曲候选中具有最高排名时且当特定候选歌曲的分数满足阈值时,可以将该特定候选歌曲识别为具有与当前歌曲特征418相匹配的歌曲特征。例如,如果没有一个候选歌曲具有满足阈值的分数,那么歌曲识别过程不将任何歌曲识别为具有与当前歌曲特征418相匹配的歌曲特征。通过在两个或更多个阶段中执行歌曲识别,其中使用轻量级过程将较大歌曲语料库过滤为相对较小的候选歌曲子集,然后使用在计算上更为密集的过程在候选歌曲的较小子集中识别匹配歌曲,可以节省处理资源,同时快速而准确地识别出匹配歌曲。
在框628中,响应于已经确定了特定参考歌曲的多个表征值与数字音频数据的表征值类集最为相关,计算设备输出正在播放特定参考歌曲的指示。例如,歌曲识别过程422可以输出对识别到的歌曲的指示430。
在框630中,输出正在播放特定参考歌曲的指示包括:在用户输入尚未提示计算设备执行歌曲识别过程的情况下而不是至少提前几个小时(例如,至少提前四个小时、提前数日或至少提前一个月)启用连续的歌曲识别过程,在计算设备的锁定屏幕上呈现特定参考歌曲的名称。参照图8,例如,示出了可以设置在(图1中所示的)计算装置100的锁定屏幕上的示例用户界面800。例如,用户界面800包括当前识别到的歌曲的视觉指示802,其可以包括与歌曲有关的文本信息,诸如,歌曲标题、艺人姓名、专辑名称和其它相关信息。在一些示例中,输出正在播放特定参考歌曲的指示可以包括播放识别特定参考歌曲的音频。例如,音频可以宣布歌曲标题、艺人姓名、专辑名称和其它相关信息。
在框632中,输出正在播放特定参考歌曲的指示包括:在用户输入尚未提示计算设备执行歌曲识别过程的情况下(而不是至少提前几个小时(例如,至少提前四个小时,提前数日或至少提前一个月)启用连续的歌曲识别过程),在计算设备的解锁屏幕的通知面板中呈现特定参考歌曲的名称。计算设备100还可以显示历史歌曲信息,例如,最近播放的前一个或多个歌曲和/或在前一天的同一时间播放的歌曲。再次参照图8,例如,示出了在(图1中所示的)计算设备100的解锁屏幕的通知面板812中呈现特定参考歌曲的名称的示例用户界面810。例如,通知面板812可以包括通知,该通知包括与当前识别到的歌曲有关的文本信息,诸如,歌曲标题、艺人姓名、专辑名称和其它相关信息。计算设备100还可以在弹出对话框(例如,并非下拉菜单)中显示通知,或可以在设备主屏幕的背景显示器中将通知作为更改的文本进行呈现。
在一些示例中,与所呈现的歌曲识别控件的用户交互可以使计算设备相对于识别到的歌曲执行一个或多个动作。例如,响应于与用户界面800的视觉指示802的用户交互804(例如,触摸输入)或响应于与用户界面810的通知面板812的用户交互814(例如,触摸输入),(图1中所示的)计算设备100可以呈现界面820,该界面相对于当前识别到的歌曲和先前识别到的歌曲呈现其它信息(例如,发行年份、歌词、专辑封面图像、相关联的网络内容的链接)和/或可用选项。在本示例中,界面820包括流式传输控件822、观看控件824和先前识别到的歌曲的列表826。例如,响应于用户对流式传输控件822的选择,可以发起当前识别到的歌曲至计算设备100的流式传输。例如,响应于用户对观看控件824的选择,计算设备100可以播放当前识别到的歌曲的视频。例如,响应于对先前识别到的歌曲的列表826上的歌曲的选择,计算设备100可以为所选择的歌曲呈现选项和/或附加信息。
在一些示例中,歌曲识别过程的主要部分或全部在服务器侧而非客户端侧执行。在这些示例中,服务器侧计算系统可以不向客户端设备发送歌曲特征数据,并且相反,可以从客户端设备接收从客户端设备处记录的音频生成的音频数据或歌曲特征数据,并且服务器侧计算系统可以执行歌曲识别。例如,服务器侧计算系统可以执行框602至626的操作,并且如果找到匹配,那么服务器侧计算系统可以发送识别匹配歌曲的信息以供记录音频的客户端设备呈现(例如,如框628至632处所论述)。在这些示例中,服务器侧计算系统可以或可以不执行用于确定是否正在播放音乐的操作(例如,如框308至326所论述)。这种分析可以避免处理确定为不包括歌曲的音频。更进一步地,由于用户已经明确要求了识别歌曲,因此服务器侧计算系统可以分析音频,因而跳过“正在播放音乐吗?”操作并且仅跳到更为相关的“正在播放哪首歌?”操作可以是合理的。简言之,音乐确定过程是可选的,并且音乐确定过程和歌曲识别过程二者都可以在客户端侧、服务器侧执行,或拆分为一者在客户端处执行而另一者在服务器处执行。
现在参照图9,图示了实施本文档中所描述的系统和方法的示例系统的概念图。在系统中,移动计算设备910可以与基站940无线通信,该基站可以通过网络950为计算设备提供对若干托管服务960的无线访问。
在此图示中,将移动计算设备910描绘为手持式移动电话(例如,智能电话或应用电话),该手持式移动电话包括用于向移动计算设备910的用户呈现内容并且接收基于触摸的用户输入的触摸屏显示设备912。还可以提供其它视觉、触觉和听觉输出组件(例如,LED光、用于触觉输出的振动机制或用于提供音调、语音生成输出或记录的输出的扬声器),可以各种不同输入组件(例如,键盘914、物理按钮、轨迹球、加速度计、陀螺仪和磁力计)。
显示设备912形式的示例视觉输出机制可以采用具有电阻或电容触摸能力的显示器的形式。显示设备可以用于显示视频、图形、图形和文本,并且用于将用户触摸输入位置与所显示的信息的位置进行协调,使得设备910可以将所显示的项目的位置处的用户接触与项目相关联。移动计算设备910还可以采用替代形式,包括作为膝上型计算机、平板或板式计算机、个人数字助理、嵌入式系统(例如,汽车导航系统)、桌面型个人计算机或计算机化工作站。
用于接收用户输入的示例机制包括键盘914,该键盘可以是包括数字‘0至9’、‘*’和‘#’的完整qwerty键盘或传统键盘。键盘914在用户物理接触或按下键盘按键时接收输入。用户对轨迹球916的操作或与轨迹板的交互使得用户能够向移动计算设备910提供方向信息和移动速率信息(例如,以操纵光标在显示设备912上的位置)。
移动计算设备910可能能够确定与触摸屏显示设备912的物理接触的位置(例如,手指或触控笔的接触位置)。使用触摸屏912,可以产生各种“虚拟”输入机制,其中,用户通过接触图形用户界面元素来与触摸屏912上所描绘的图形用户界面元素进行交互。“虚拟”输入机制的示例是“软件键盘”,其中,键盘显示在触摸屏上,并且用户通过按下触摸屏912的与每个按键对应的区域来选择按键。
移动计算设备910可以包括机制或触摸敏感按钮918a-d。此外,移动计算设备可以包括用于调整由一个或多个扬声器920输出的音量的按钮和用于打开或关闭移动计算设备的按钮。麦克风922允许移动计算设备910将可听见的声音转换成电信号,可以对该电信号进行数字编码并且将其存储在计算机可读存储器中,或传输到另一计算设备。移动计算设备910还可以包括数字罗盘、加速度计、近距离传感器和环境光传感器。
操作系统可以在移动计算设备的硬件(例如,输入/输出机制和执行从计算机可读介质接收的指令的处理器)与软件之间提供接口。示例操作系统包括ANDROID、CHROME、IOS、MAC OS X、WINDOWS 7、WINDOWS PHONE 7、SYMBIAN、BLACKBERRY、WEBOS、各种UNIX操作系统或计算机化设备的专有操作系统。操作系统可以提供用于执行应用程序的平台,这些应用程序促进计算设备与用户之间的交互。
移动计算设备910可以向触摸屏912呈现图形用户界面。图形用户界面是一个或多个图形界面元素的类集,且可以是静态的(例如,显示在一段时间内保持不变)或可以是动态的(例如,图形用户界面包括可以在不具有用户输入的情况下进行动画处理的图形界面元素)。
图形界面元素可以是文本、线、形状、图像或它们的组合。例如,图形界面元素可以是桌面上显示的图标和此图标的关联文本。在一些示例中,图形界面元素可以通过用户输入来选择。例如,用户可以通过按下触摸屏的与图形界面元素的显示对应的区域来选择图形界面元素。在一些示例中,用户可以操纵轨迹球以将单个图形界面元素突出显示为具有焦点。对图形界面元素的用户选择可以调用移动计算设备的预定义动作。在一些示例中,另外或可替代地,可选图形界面元素与键盘904上的按钮对应。对按钮的用户选择可以调用预定义动作。
在一些示例中,操作系统提供“桌面”图形用户界面,该在打开移动计算设备910之后、在从休眠状态启动移动计算设备910之后、在将移动计算设备910“解锁”之后或在接收到对“主页”按钮918c的用户选择之后显示图形用户界面。桌面图形用户界面可以显示若干图形界面元素,该图形界面元素在被选择时调用对应应用程序。所调用的应用程序可以呈现代替桌面图形用户界面的图形界面,直到应用程序终止或从视图中隐藏为止。
用户输入可以影响移动计算设备910操作的执行顺序。例如,单动作用户输入(例如,单次轻击触摸屏、在触摸屏上滑动、与按钮接触或同时发生这些动作的组合)可以调用改变用户界面的显示的操作。在不具有用户输入的情况下,用户界面可能尚未在特定时间处改变。例如,即使可能在若干秒之后默认放大地图应用,使用触摸屏912的多点触摸用户输入也可以调用地图应用来“放大”位置。
桌面图形界面还可以显示“小部件(widget)”。小部件是与正在执行的应用程序相关联并且在桌面上显示由执行应用程序控制的内容的一个或多个图形界面元素。小部件的应用程序可以在移动设备打开时启动。此外,小部件可能不会占据整个显示器的焦点。相反,小部件可以仅“拥有”桌面中的小部分,在桌面中的此部分内显示内容并且接收触摸屏用户输入。
移动计算设备910可以包括一个或多个位置识别机制。位置识别机制可以包括向操作系统和应用程序提供对移动设备的地理位置的估计的硬件与软件的类集。位置识别机制可以采用基于卫星的定位技术、基站发射天线识别、多基站三角测量、互联网接入点IP位置确定、基于搜索引擎查询的用户位置的推断识别以及用户提供的对位置的识别(例如,通过接收用户的位置“登记”)。
移动计算设备910可以包括其它应用、计算子系统和硬件。呼叫处理单元可以接收呼入电话呼叫的指示并向用户提供应答呼入电话呼叫的能力。媒体播放器可以允许用户收听音乐或播放存储在移动计算设备910的本地存储器中的电影。移动设备910可以包括数码相机传感器以及对应图像和视频捕获与编辑软件。互联网浏览器可以通过键入与网页对应的地址或选择网页的链接来使得用户能够查看网页中的内容。
移动计算设备910可以包括用于与基站940无线地通信信息的天线。基站940可以是使得在移动计算设备在地理上移动时基站移动计算设备910能够维持与网络950的通信的基站类集(例如,移动电话蜂窝网络)中的许多基站中的一者。可替代地或另外,计算设备910可以通过Wi-Fi路由器或有线连接(例如,ETHERNET、USB或FIREWIRE)来与网络950进行通信。计算设备910还可以使用BLUETOOTH协议与其它计算设备进行无线通信,或者可以采用ad-hoc无线网络。
操作基站网络的服务器提供商可以将移动计算设备910连接至网络950,以使能够在移动计算设备910与提供服务960的其它计算系统之间进行通信。尽管可以通过不同网络(例如,服务提供商的内部网络、公共交换电话网络和互联网)提供服务960,但将网络950图示为单个网络。服务提供商可以操作服务器系统952,该服务器系统在移动计算设备910与同服务960相关联的计算系统之间路由信息分组和语音数据。
网络950可以将移动计算设备910连接到公共交换电话网络(PSTN)962,以便在移动计算设备910与另一计算设备之间建立语音或传真通信。例如,服务提供商服务器系统952可以从PSTN 962接收对移动计算设备910的呼入呼叫的指示。相反,移动计算设备910可以向服务提供商服务器系统952发送通信,该通信使用与可通过PSTN 962访问的设备相关联的电话号码发起电话呼叫。
网络950可以将移动计算设备910与互联网协议语音(VoIP)服务964连接,该互联网协议语音服务通过IP网络而非PSTN路由语音通信。例如,移动计算设备910的用户可以调用VoIP应用并且使用程序发起呼叫。服务提供商服务器系统952可以将语音数据从呼叫转发到VoIP服务,该服务可以通过互联网将呼叫路由到对应计算设备,从而潜在地使用PSTN进行连接的最后支路。
应用商店966可以向移动计算设备910的用户提供浏览用户可以通过网络950下载并且将其安装在移动计算设备910上的远程存储的应用程序的列表的能力。应用商店966可以用作由第三方应用开发者开发的应用存储库。安装在移动计算设备910上的应用程序可能能够通过网络950与为应用程序指定的服务器系统进行通信。例如,可以从应用商店966中下载VoIP应用程序,从而使得用户能够与VoIP服务964进行通信。
移动计算设备910可以通过网络950访问互联网968上的内容。例如,移动计算设备910的用户可以调用web浏览器应用,该web浏览器应用向可在指定的通用资源位置处访问的远程计算设备请求数据。在各种示例中,一些服务960可通过互联网访问。
移动计算设备可以与个人计算机970进行通信。例如,个人计算机970可以是用于移动计算设备910的用户的家用计算机。因此,用户可能能够从其个人计算机970流式传输媒体。用户还可以查看其个人计算机970的文件结构,并且在计算机化设备之间传输所选择的文档。
语音识别服务972可以接收用移动计算设备的麦克风922记录的语音通信数据,并且将语音通信转译为对应文本数据。在一些示例中,将转译后的文本作为网络查询提供给搜索引擎,并且将响应性搜索引擎搜索结果传输至移动计算设备910。
移动计算设备910可以与社交网络974进行通信。社交网络可以包括若干成员,这些成员中的一些已经同意被关联为熟人。移动计算设备910上的应用程序可以访问社交网络974,以基于移动计算设备的用户的熟人来检索信息。例如,“地址簿”应用程序可以检索用户的熟人的电话号码。在各种示例中,可以基于用户与社交网络成员图中的其它成员的社交网络距离和连接关系来将内容传递至移动计算设备910。例如,可以基于与用户较为“亲密”的成员(例如,作为“朋友”或“朋友的朋友”的成员)的广告和新闻文章内容的交互程度来为用户选择这种内容。
移动计算设备910可以通过网络950来访问私人联系人集合976。每个联系人可以识别个体并且包括关于个体的信息(例如,电话号码、邮箱地址和生日)。因为该联系人集合远程托管在移动计算设备910上,所以用户可以跨若干设备访问和维护联系人976作为公共联系人集合。
移动计算设备910可以访问基于云的应用程序978。云计算提供了从移动计算设备910远程托管并且可以使用web浏览器或专用程序由设备910访问的应用程序(例如,文字处理器或电子邮件程序)。示例的基于云的应用程序包括GOOGLE DOC文字处理器和电子表格服务、GOOGLE GMAIL网络邮件服务和PICASA图片管理器。
地图服务980可以为移动计算设备910提供街道地图、路径规划信息和卫星图像。示例地图服务是GOOGLE MAPS。地图服务980还可以接收查询并且返回位置特定的结果。例如,移动计算设备910可以将移动计算设备的估计位置和用户输入的对“披萨地点”的查询发送到地图服务980。地图服务980可以返回在地图上叠加有“标记”的街道地图,该标记识别附近“披萨地点”的地理位置。
逐向导航服务982可以为移动计算设备910提供对用户提供的目的地的逐向导航。例如,逐向导航服务982可以将设备的估计位置的街道级视图以及用于提供音频命令的数据和将设备910的用户导向目的地的叠加箭头一起流式传输到设备910。
各种形式的流媒体984可以由移动计算设备910请求。例如,计算设备910可以请求用于预先记录的视频文件、直播电视节目或直播无线电节目的流式传输。提供流媒体的示例服务包括YOUTUBE和PANDORA。
微博客服务986可以从移动计算设备910接收未识别帖子的接收者的用户输入的帖子。微博客服务986可以向微博客服务986的同意订阅到该用户的其它成员分发帖子。
搜索引擎988可以从移动计算设备910接收用户输入的文本或口头查询,确定对此查询做出响应的互联网可访问文档集合,并且向设备910提供用于显示响应性文档的搜索结果列表的信息。在接收口头查询的示例中,语音识别服务972可以将接收到的音频转译为向搜索引擎发送的文本查询。
可以在服务器系统990中实现这些和其它服务。服务器系统可以是提供服务或服务集合的硬件与软件的组合。例如,物理上分开且联网的计算化设备的集合可以同时作为逻辑服务器系统单元而操作,以处理向数以百计的计算设备提供服务所需的操作。服务器系统在本文中也被称为计算系统。
在各种实施方式中,如果先前的操作不成功(例如,如果没有执行确定),那么不执行“响应于”另一操作或“由于”另一操作(例如,确定或识别)而执行的操作。“自动”执行的操作是在没有用户干预(例如,干预用户输入)的情况下执行的操作。本文档中用条件语言描述的特征可以描述可选的实施方式。在一些示例中,从第一设备到第二设备的“发送”包括第一设备将数据置于网络中以供第二设备接收,但是可以不包括第二设备接收数据。相反,从第一设备“接收”可以包括:从网络接收数据,但可以不包括第一设备发送数据。
由计算系统“确定”可以包括计算系统请求另一设备执行确定并且将结果提供给计算系统。此外,由计算系统“显示”或“呈现”可以包括计算系统发送用于使另一设备显示或呈现参考信息的数据。
图10是可用于将本文档中所描述的系统和方法实施为客户端或一个或多个服务器的计算设备1000、1050。计算设备1000旨在表示各种形式的数字计算机,诸如,膝上型计算机、桌面型计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机和其它适合的计算机。计算设备1050旨在表示各种形式的移动设备,诸如,个人数字处理、蜂窝电话、智能电话和其它类似的计算设备。本文所示的组件、它们的连接和关系以及它们的功能仅仅旨在作为示例,并且不旨在限制本文档中所描述的和/或要求的实施方式。
计算设备1000包括处理器1002、存储器1004、存储设备1006、连接至存储器1004和高速扩展接口1010的高速接口1008和连接至低速总线1014和存储设备1006的低速接口1012。组件1002、1004、1006、1008、1010和1012中的每一个使用各种总线进行互连,并且可以安装在公共主板上或根据需要以其它的方式安装。处理器1002可以对在计算设备1000内执行的指令进行处理,包括存储在存储器1004中或存储设备1006上以在外部输入/输出设备(诸如,耦合至高速接口1008的显示器1016)上显示GUI的图形信息的指令。在其它示例中,若需要,可以将多个处理器和/或多条总线与多个存储器和多种存储器一起使用。同样,可以连接多个计算设备1000,各个设备提供部分必要的操作(例如,作为服务器阵列、一组刀片式服务器或多处理器系统)。
存储器1004存储在计算设备1000内的信息。在一种实施方式中,存储器1004是一个或者多个易失性存储器单元。在另一实施方式中,存储器1004是一个或者多个非易失性存储器单元。存储器1004还可以是另一种形式的计算机可读介质,诸如,磁盘或光盘。
存储设备1006能够为计算设备1000提供海量存储设备。在一种实施方式中,存储设备1006可以是或可以包含计算机可读介质,诸如,软盘设备、硬盘设备、光盘设备或磁带设备、闪速存储器或其它类似的固态存储器设备或设备的阵列(包括存储区域网络或其它配置的设备)。计算机程序产品可以有形地体现为信息载体。计算机程序产品还可以包含指令,该指令在被执行时执行一种或多种方法,诸如上文所描述的那些方法。信息载体是计算机可读介质或机器可读介质,诸如,存储器1004、存储设备1006或在处理器1002上的存储器。
高速控制器1008管理计算设备1000的带宽密集型操作,而低速控制器1012管理较低的带宽密集型操作。这种功能分配仅仅是示例。在一种实施方式中,高速控制器1008耦合至存储器1004、显示器1016(例如,通过图形处理器或者加速器)和高速扩展端口1010,该高速扩展端口可以接受各种扩展卡(未示出)。在实施方式中,低速控制器1012耦合至存储设备1006和低速扩展端口1014。该低速扩展端口可以包括各种通信端口(例如,USB、蓝牙、以太网、无线以太网),可以例如通过网络适配器耦合至一个或者多个输入/输出设备,诸如,键盘、指向设备、扫描器或网络设备诸如交换机或路由器。
如图所示,可以利用多种形式来实施计算设备1000。例如,可以将计算设备1000实施为准则服务器1020或者多次实施在一组这种服务器中。还可以将计算设备1000实施为机架式服务器系统1024的一部分。另外,计算设备1000可以实施在个人计算机(诸如,膝上型计算机1022)中。可替代地,来自计算设备1000的组件可以与移动设备(未示出)诸如设备1050中的其它组件结合。这些设备中的每一个可以包含计算设备1000、1050中的一个或多个,并且整个系统可以由彼此通信的多个计算设备1000、1050组成。
除了其它组件之外,计算设备1050包括处理器1052、存储器1064、输入/输出设备(诸如,显示器1054)、通信接口1066和收发器1068。设备1050还可以设置有用于提供额外的存储的存储设备,诸如,微型硬盘或者其它设备。组件1050、1052、1064、1054、1066和1068中的每一个使用各种总线进行互连,并且一些组件可以安装在公共主板上或者根据需要以其它方式安装。
处理器1052可以执行在计算设备1050内的指令,包括存储在存储器1064中的指令。可以将处理器1052实施为包括单独的和多个模拟和数字处理器的芯片的芯片集。此外,可以使用若干架构中的任一者来实施处理器。例如,处理器可以是CISC(复杂指令集计算机处理器)、RISC(精简指令集计算机)处理器或MISC(最小指令集计算机)处理器。处理器可以提供例如对设备1050的其它组件的协调,诸如,用户界面、由设备1050操作的应用和通过设备1050进行的无线通信的控制。
处理器1052可以通过耦合至显示器1054的控制接口1058和显示器接口1056来与用户进行通信。显示器1054可以是例如TFT(薄膜晶体管液晶显示屏)显示器或OLED(有机发光二极管)显示器或其它适合的显示技术。显示接口1056可以包括用于驱动显示器1054向用户呈现图形和其它信息的适合的电路系统。控制接口1058可以接收来自用户的命令并且对这些命令进行转换以提交至处理器1052。此外,外部接口1062可以提供与处理器1052的通信,以便使设备1050能够与其它设备进行邻近区域通信。在一些示例中,外部接口1062可以提供例如有线通信,或在其它示例中可以提供无线通信,并且还可以使用多个接口。
存储器1064存储在计算设备1050内的信息。可以将存储器1064实施为一种或多种计算机可读介质、一个或者多个易失性存储器单元或一个或者多个非易失性存储器单元中的一者或多者。还可以提供扩展存储器1074并且通过扩展接口1072将扩展存储器1074连接至设备1050,该扩展接口1072可以包括例如SIMM(单线存储器模块)卡接口。这种扩展存储器1074可以为设备1050提供附加存储空间,或者还可以存储设备1050的应用或者其它信息。具体地,扩展存储器1074可以包括用于执行或者补充上文所描述的过程的指令,并且还可以包括安全信息。因此,例如,可以将扩展存储器1074提供为设备1050的安全模块,并且可以用允许安全使用设备1050的指令来对其进行编程。另外,可以经由SIMM卡与附加信息一起诸如将识别信息通过不可侵入的方式放在SIMM卡上来提供安全应用。
如下文所描述的,存储器可以包括例如闪速存储器和/或NVRAM存储器。在一种实施方式中,计算机程序产品有形地体现为信息载体。计算机程序产品包含指令,该指令在被执行时执行一种或者多种方法,诸如,上文所描述的那些方法。信息载体是可以通过例如收发器1068或外部接口1062来接收的计算机可读介质或机器可读介质,诸如存储器1064、扩展存储器1074或在处理器1052上的存储器。
设备1050可以通过通信接口1066无线地通信,若需要,该通信接口1066可以包括数字信号处理电路系统。通信接口1066可以提供在各种模式或者协议下的通信,诸如GSM语音呼叫、SMS、EMS或MMS消息传送、CDMA、TDMA、PDC、WCDMA、CDMA2000或GPRS等。这种通信可以例如通过射频收发器1068发生。此外,短程通信可以使用诸如蓝牙、WiFi或其它这种收发器(未示出)发生。此外,GPS(全球定位系统)接收器模块1070可以将附加的与导航或位置有关的无线数据提供给设备1050,若合适,该无线数据可以供在设备1050上操作的应用使用。
设备1050还可以使用音频编解码器1060来可听通信,该音频编解码器1060可以接收来自用户的口头信息,并且将口头信息转换为可用的数字信息。音频编解码器1060还可以为用户生成可听的声音,诸如,通过扬声器,例如在设备1050的听筒中的扬声器。这种声音可以包括来自语音电话呼叫的声音,可以包括记录的声音(例如,语音消息、音乐文件等),并且还可以包括通过在设备1050上操作的应用生成的声音。
如图所示,可以利用多种形式来实施计算设备1050。例如,可以将计算设备1050实施为蜂窝电话1080。还可以将计算设备1050实施为智能电话1082、个人数字助理或其它类似的移动设备的一部分。
此外,计算设备1000或1050可以包括通用串行总线(USB)闪速驱动器。USB闪速驱动器可以存储操作系统和其它应用。USB闪速驱动器可以包括输入/输出组件,诸如,可以插入到另一计算设备的USB端口中的无线发射机或USB连接器。
此处所描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、专用集成电路(专用ASIC)、计算机硬件、固件、软件和/或它们的组合中实现。这些各种实施方式可以包括实施在一个或多个计算机程序中,该一个或多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或通用可编程处理器,可以从存储系统、至少一个输入设备和至少一个输出设备接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入设备和该至少一个输出设备。
这些计算机程序(也称作程序、软件、软件应用或代码)包括可编程处理器的机器指令,并且可以利用高级过程和/或面向对象的编程语言和/或利用汇编/机器语言来实施这些计算机程序。如本文中所使用的,术语“机器可读介质”和“计算机可读介质”指的是用于将机器指令和/或数据提供给可编程处理器的任何计算机程序产品、装置和/或设备(例如,磁盘、光盘、存储器、可编程逻辑设备(PLD)),包括接收作为机器可读信号的机器指令的机器可读介质。术语“机器可读信号”指的是用于将机器指令和/或数据提供给可编程处理器的任何信号。
为了提供与用户的交互,可以在计算机上实施此处所描述的系统和技术,该计算机具有:用于向用户显示信息的显示设备(例如,CRT(阴极射线管)或者LCD(液晶显示器)监视器);以及键盘和指向设备(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向设备来将输入提供给计算机。其它种类的设备还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈或触觉反馈);并且可以用任何形式包括声输入、语音输入或者、触觉输入来接收来自用户的输入。
可以将此处所描述的系统和技术实施在包括后台组件的计算系统(例如,作为数据服务器)、或包括中间件组件的计算系统(例如,应用服务器)或包括前端组件的计算系统(例如,具有图形用户界面或web浏览器的客户端计算机,用户可以通过该图形用户界面或该web浏览器来与此处所描述的系统和技术的实施方式交互)、或包括这种后台组件、中间件组件或前端组件的任何组合的计算系统中。可以通过任何形式或介质的数字数据通信(例如,通信网络)来将系统的组件相互连接。通信网络的示例包括局域网(“LAN”)、广域网(“WAN”)、点对点网络(具有ad hoc或静态构件)、网格计算基础设施和互联网。
计算系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上操作并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。
虽然上文已经详细描述了一些示例,但是其它修改也是可能的。此外,可以使用用于执行本文档中所描述的系统和方法的其它机制。此外,在示意图中所描绘的逻辑流程不需要所示的特定顺序或相继顺序,以实现期望的结果。可以提供其它步骤或者可以从所描述的流程中删除步骤,并且可以将其它组件添加至所描述的系统或者从所描述的系统移除其它组件。因此,其它示例在以下权利要求书的范围内。

Claims (57)

1.一种计算机实现的方法,包括:
由计算设备存储参考歌曲表征数据,所述参考歌曲表征数据识别多个参考歌曲中的每个参考歌曲的多个音频特征;
由所述计算设备接收表示由麦克风记录的音频的数字音频数据;
由所述计算设备使用音乐确定过程来确定所述数字音频数据是否表示音乐;
由所述计算设备在确定所述数字音频数据表示音乐之后辨识所述数字音频数据表示所述多个参考歌曲中的特定参考歌曲;以及
由所述计算设备响应于确定所述数字音频数据表示所述多个参考歌曲中的特定参考歌曲,输出所述特定参考歌曲的指示。
2.根据权利要求1所述的计算机实现的方法,其中,所述多个参考歌曲包括至少一万个参考歌曲,使得所述参考歌曲表征数据识别所述至少一万个参考歌曲的音频特征。
3.根据权利要求1或2所述的计算机实现的方法,其中,所述多个参考歌曲中的所述参考歌曲的参考歌曲表征值被限制到二进制一或二进制零,使得每个表征值被限制到二进制一或二进制零。
4.根据权利要求1至3中任一项所述的计算机实现的方法,其中,确定所述数字音频数据是否表示音乐包括:
将所述数字音频数据从时域格式转换成频域格式,
将所述频域格式的所述数字音频数据用于所述音乐确定过程,以及
输出所述数字音频数据表示音乐的指示。
5.根据权利要求4所述的计算机实现的方法,其中,所述音乐确定过程包括:执行已经训练成确定音频是否表示音乐的机器学习系统。
6.根据权利要求1至5中任一项所述的计算机实现的方法,其中,所述计算设备在不访问识别所述多个参考歌曲中的每个参考歌曲的所述多个音频特征的所述参考歌曲表征数据的情况下,确定所述数字音频数据是否表示音乐。
7.根据权利要求1至6中任一项所述的计算机实现的方法,其中,确定所述数字音频数据是否表示音乐包括:所述计算设备在确定所述数字音频数据表示音乐之前,在没有接收到发起所述音乐确定过程的用户输入的情况下多次确定所述数字音频数据不表示音乐。
8.根据权利要求4至7中任一项所述的计算机实现的方法,其中,所述频域格式是第一频域格式,并且所述频域转换过程是第一频域转换过程,并且辨识所述数字音频数据表示所述特定参考歌曲包括:
(i)在第二频域转换过程期间将所述数字音频数据从时域格式转换成第二频域格式,
(ii)在音乐表征过程中使用所述第二频域格式的所述数字音频数据,所述音乐表征过程接收所述第二频域格式的所述数字音频数据并且输出所述数字音频数据的表征值类集,以及
(iii)将所述数字音频数据的所述表征值类集与所述多个参考歌曲的至少子集中的每个的多个表征值进行比较,以确定所述特定参考歌曲的所述多个表征值与所述数字音频数据的所述表征值类集最为相关。
9.根据权利要求8所述的计算机实现的方法,其中,所述第二频域格式和所述第一频域格式分析不同数量的频率区间。
10.根据权利要求8或9所述的计算机实现的方法,其中,所述音乐表征过程由已经训练成表征音乐的机器学习系统执行。
11.根据权利要求8至10中任一项所述的计算机实现的方法,其中,将所述数字音频数据的所述表征值类集与所述多个参考歌曲的至少子集中的每个的所述多个表征值进行比较通过以下方式来执行:在不向另一个计算设备发送对歌曲表征数据的请求的情况下,访问由所述计算设备针对所述多个歌曲的所述至少子集中的每个所存储的所述多个表征值。
12.根据权利要求8至11中任一项所述的计算机实现的方法,其中,所述计算设备将所述数字音频数据的所述表征值类集与所述多个参考歌曲的仅所述子集中的每个的所述多个表征值进行比较,并且所述方法还包括:
将所述数字音频数据的所述表征值类集中的所述表征值与多个候选歌曲中的每个候选歌曲的所述多个表征值进行比较,以选择所述多个参考歌曲的所述子集。
13.根据权利要求8至12中任一项所述的计算机实现的方法,所述方法还包括:将所述数字音频数据的所述表征值类集中的所述表征值从并非全部限制于二进制零和二进制一的值转换为限制于二进制零和二进制一的值;其中,将所述数字音频的所述表征值类集中的所述表征值与所述多个候选歌曲中的每个候选歌曲的所述多个表征值进行比较包括下述比较,在该比较中:
(a)所述数字音频数据的所述表征值被限制到二进制零和二进制一,以及
(b)所述多个歌曲中的每个歌曲的所述表征值被限制到二进制零和二进制一。
14.根据权利要求8至13中任一项所述的计算机实现的方法,其中,将所述数字音频数据的所述表征值类集与所述多个参考歌曲的至少子集中的每个的所述多个表征值进行比较包括下述比较,在该比较中:
(a)所述数字音频数据的所述表征值包括表示除了二进制零和二进制一之外的值的实数,以及
(b)所述多个歌曲的所述至少子集中的每个的所述表征值被限制到二进制零和二进制一。
15.根据权利要求1至13中任一项所述的计算机实现的方法,其中:
确定所述数字音频数据是否表示音乐是由所述计算设备的第一处理器执行的;以及
辨识所述数字音频数据表示所述多个参考歌曲中的特定参考歌曲是由所述计算设备的第二处理器执行的。
16.根据权利要求15所述的计算机实现的方法,其中,所述第一处理器以所述第二处理器低的电压操作。
17.根据权利要求15所述的计算机实现的方法,其中,所述第二处理器根据比所述第一处理器操作所根据的时钟信号至少快一个数量级的时钟信号操作。
18.根据权利要求1至17中任一项所述的计算机实现的方法,其中,输出正在播放所述特定参考歌曲的所述指示包括:除了启用连续的歌曲识别过程之外,在用户输入尚未提示所述计算设备执行歌曲识别过程的情况下,在所述计算设备的锁定屏幕上、在所述计算设备的始终开启屏幕中或在所述计算设备的解锁屏幕上方呈现的通知中呈现所述特定参考歌曲的名称。
19.根据权利要求1至17中任一项所述的计算机实现的方法,其中,所述计算设备包括所述麦克风。
20.一种计算机化系统,包括:
一个或者多个处理器;以及
一个或多个计算机可读设备,所述一个或多个计算机可读设备包括指令,所述指令在被所述一个或多个处理器执行时促使执行包括操作,所述操作包括:
由计算设备存储参考歌曲表征数据,所述参考歌曲表征数据识别多个参考歌曲中的每个参考歌曲的多个音频特征;
由所述计算设备接收表示由麦克风记录的音频的数字音频数据;
由所述计算设备使用音乐确定过程来确定所述数字音频数据是否表示音乐;
由所述计算设备在确定所述数字音频数据表示音乐之后辨识所述数字音频数据表示所述多个参考歌曲中的特定参考歌曲;以及
由所述计算设备响应于确定所述数字音频数据表示所述多个参考歌曲中的特定参考歌曲来输出对所述特定参考歌曲的指示。
21.一种计算系统,包括:
麦克风,所述麦克风被配置成记录音频信号;
模数转换器,所述模数转换器被配置成从记录的音频信号生成数字音频数据;
一个或多个计算机可读存储器设备,所述一个或多个计算机可读存储器设备存储:
(i)参考歌曲表征数据,所述参考歌曲表征数据识别多个参考歌曲中的每个参考歌曲的多个音频特征,以及
(ii)可由处理器执行并且配置所述处理器的操作的指令;
第一处理器,所述第一处理器被配置成在确定所述数字音频数据表示音乐后输出所述数字音频数据表示音乐的指示;
第二处理器,所述第二处理器被配置成从所述第一处理器接收所述数字音频数据表示音乐的所述指示,并且辨识所述数字音频数据表示所述多个参考歌曲中的特定参考歌曲;以及
显示设备,所述显示设备被配置成响应于所述第二处理器辨识所述数字音频数据表示所述多个参考歌曲中的所述特定参考歌曲来呈现对所述特定参考歌曲的识别。
22.根据权利要求21所述的计算系统,其中,所述计算系统包括移动计算设备,所述移动计算设备包括所述麦克风、所述模数转换器、所述一个或多个计算机可读存储器设备、所述第一处理器和所述第二处理器。
23.根据权利要求21或22所述的计算系统,其中,所述第一处理器以所述第二处理器低的电压操作。
24.根据权利要求21至23中任一项所述的计算系统,其中,所述第二处理器根据比所述第一处理器操作所根据的时钟信号至少快一个数量级的时钟信号操作。
25.根据权利要求22至24中任一项所述的计算系统,其中,在所述计算设备没有向除了所述计算设备之外的计算系统发送所述数字音频数据的情况下,所述第一处理器被配置成输出所述数字音频数据表示音乐的所述指示,并且所述第二处理器被配置成辨识所述数字音频数据表示所述特定参考歌曲。
26.根据权利要求22至25中任一项所述的计算系统,其中,在所述计算设备不具有与任何外部设备的网络连接时,所述第一处理器被配置成输出所述数字音频数据表示音乐的所述指示,并且所述第二处理器被配置成辨识所述数字音频数据表示所述特定参考歌曲。
27.根据权利要求22至26中任一项所述的计算系统,其中,确定所述数字音频数据表示音乐包括:在所述第一处理器确定所述数字音频数据表示音乐之前,所述第一处理器在没有接收到发起音乐确定过程的用户输入的情况下多次确定所述数字音频数据不表示音乐。
28.根据权利要求21至27中任一项所述的计算系统,其中,由所述一个或多个计算机可读存储器设备存储的所述多个参考歌曲中的所述参考歌曲的参考歌曲表征值被限制到二进制一或二进制零,使得每个表征值被限制到二进制一或二进制零。
29.根据权利要求21至28中任一项所述的计算系统,其中,所述多个参考歌曲包括至少一万个参考歌曲,使得由所述一个或多个计算机可读存储器设备存储的所述参考歌曲表征数据识别所述至少一万个参考歌曲的音频特征。
30.根据权利要求21至29中任一项所述的计算系统,其中,所述第一处理器被配置成通过以下方式来确定所述数字音频数据表示音乐:
在频域转换过程期间将所述数字音频数据从时域格式转换成频域格式,以及
在音乐确定过程中使用所述频域格式的所述数字音频数据,所述音乐确定过程接收所述频域格式的所述数字音频数据并且输出所述数字音频数据表示音乐的所述指示。
31.根据权利要求30所述的计算系统,其中,所述音乐确定过程包括执行已经训练成确定音频是否表示音乐的机器学习系统。
32.根据权利要求30所述的计算系统,其中,所述音乐确定过程包括:在低功率处理器上执行卷积神经网络。
33.根据权利要求21至32中任一项所述的计算系统,其中,所述频域格式是第一频域格式,并且所述频域转换过程是第一频域转换过程,并且所述第二处理器被配置成通过以下步骤来辨识所述数字音频数据表示所述多个参考歌曲中的特定参考歌曲:
(i)在第二频域转换过程期间将所述数字音频数据从时域格式转换成第二频域格式,
(ii)在音乐表征过程中使用所述第二频域格式的所述数字音频数据,所述音乐表征过程接收所述第二频域格式的所述数字音频数据并且输出所述数字音频数据的表征值类集,以及
(iii)所述数字音频数据的所述表征值类集与所述多个参考歌曲的子集中的每个的多个表征值进行比较,以确定所述特定参考歌曲的所述多个表征值与所述数字音频数据的所述表征值类集最为相关。
34.根据权利要求33所述的计算系统,其中,所述第二频域格式和所述第一频域格式分析不同数量的频率区间。
35.根据权利要求33或34所述的计算系统,其中,所述音乐表征过程由已经训练成表征音乐的机器学习系统执行。
36.根据权利要求33至35中任一项所述的计算系统,其中,将所述数字音频数据的所述表征值类集与所述多个参考歌曲的所述子集中的每个的所述多个表征值进行比较通过以下方式来执行:在不向另一个计算设备发送对歌曲表征数据的请求的情况下,访问由所述计算设备针对所述多个歌曲的所述子集中的每个所存储的所述多个表征值。
37.根据权利要求33至36中任一项所述的计算系统,所述计算系统还包括:
将所述数字音频数据的所述表征值类集中的所述表征值与多个候选歌曲中的每个候选歌曲的所述多个表征值进行比较,以选择所述多个参考歌曲的所述子集。
38.根据权利要求33至37中任一项所述的计算系统,所述计算系统还包括:
将所述数字音频数据的所述表征值类集中的所述表征值从并非全部被限制到二进制零和二进制一的值转换为被限制到二进制零和二进制一的值;以及
将所述数字音频数据的所述表征值类集中的所述表征值与所述多个参考歌曲中的每个参考歌曲的所述多个表征值进行比较包括下述比较,在该比较中:
(a)所述数字音频数据的所述表征值被限制到二进制零和二进制一,以及
(b)所述多个歌曲中的每个歌曲的所述表征值被限制到二进制零和二进制一。
39.根据权利要求33至39中任一项所述的计算系统,其中,将所述数字音频数据的所述表征值类集与所述多个参考歌曲的所述子集中的每个的所述多个表征值进行比较包括下述比较,在该比较中:
(a)所述数字音频数据的所述表征值包括表示除了二进制零和二进制一之外的值的实数,以及
(b)所述多个歌曲的所述至少子集中的每个的所述表征值被限制到二进制零和二进制一。
40.一种计算机实现的方法,包括:
由计算设备存储参考歌曲表征数据,所述参考歌曲表征数据识别多个参考歌曲中的每个参考歌曲的多个音频特征;
由所述计算设备接收表示由麦克风记录的音频的数字音频数据;
由所述计算设备将所述数字音频数据从时域格式转换成频域格式;
由所述计算设备在音乐表征过程中使用所述频域格式的所述数字音频数据,所述音乐表征过程输出所述数字音频数据的表征值类集,所述表征值中的至少一些表示除了二进制零和二进制一之外的值;
由所述计算设备将所述数字音频数据的所述表征值类集与所述多个参考歌曲中的每个参考歌曲的所述多个表征值进行比较,以从所述多个参考歌曲中选择多个候选歌曲的子集作为与所述数字音频数据的所述表征值对应的那些参考歌曲;
由所述计算设备将所述数字音频数据的所述表征值类集与所述多个候选歌曲的子集中的每个参考歌曲的多个表征值进行比较,以确定所述数字音频数据的所述表征值类集与所述特定参考歌曲的所述多个表征值最为相关;以及
由所述计算设备响应于确定所述数字音频数据的所述表征值类集与所述特定参考歌曲的所述多个表征值最为相关,输出所述特定参考歌曲的指示。
41.根据权利要求40所述的计算机实现的方法,其中,所述音乐表征过程由已经训练成表征音乐的机器学习系统执行。
42.根据权利要求40至41中任一项所述的计算机实现的方法,其中,将所述数字音频数据的所述表征值类集与所述多个候选歌曲的子集中的每个参考歌曲的所述多个表征值进行比较通过以下方式来执行:在不向另一个计算设备发送对歌曲表征数据的请求的情况下访问由所述计算设备针对所述多个候选歌曲的子集中的每个参考歌曲所存储的所述多个表征值。
43.根据权利要求40至42中任一项所述的计算机实现的方法,还包括:将所述数字音频数据的所述表征值类集从并非全部被限制到二进制零和二进制一的值转换为被限制到二进制零和二进制一的值;以及
其中,将所述数字音频数据的所述表征值类集与所述多个参考歌曲中的每个参考歌曲的所述多个表征值进行比较包括下述比较,在该比较中:
(a)所述数字音频数据的所述表征值类集被限制到二进制零和二进制一,以及
(b)所述多个歌曲中的每个歌曲的所述表征值被限制到二进制零和二进制一。
44.根据权利要求40至43中任一项所述的计算机实现的方法,其中,将所述数字音频数据的所述表征值类集与所述候选歌曲子集中的每个参考歌曲的所述多个表征值进行比较包括包括下述比较,在该比较中:
(a)所述数字音频数据的所述表征值类集包括表示除了二进制零和二进制一之外的值的实数,以及
(b)所述候选歌曲的子集中的每个参考歌曲的所述表征值被限制到二进制零和二进制一。
45.根据权利要求40至44中任一项所述的计算机实现的方法,其中,所述多个参考歌曲中的所述参考歌曲的所述参考歌曲表征值被限制到二进制零和二进制一,使得每个表征值被限制到二进制一或二进制零。
46.根据权利要求40至45中任一项所述的计算机实现的方法,其中,所述多个参考歌曲包括至少一万个参考歌曲,使得所述参考歌曲表征数据识别所述至少一万个参考歌曲的音频特征。
47.根据权利要求40至46中任一项所述的计算机实现的方法,所述方法还包括:由所述计算设备利用音乐确定过程来确定所述数字音频数据是否表示音乐,
其中,在所述计算设备已经利用所述音乐确定过程确定了所述数字音频数据表示音乐之后,所述计算设备将所述数字音频数据的所述表征值类集与所述多个参考歌曲中的每个参考歌曲的所述多个表征值进行比较。
48.根据权利要求40至47中任一项所述的计算机实现的方法,其中,所述频域格式是第一频域格式,并且所述频域转换过程是第一频域转换过程,并且确定所述数字音频数据是否表示音乐包括:
在第二频域转换过程期间,将所述数字音频数据从时域格式转换成第二频域格式,以及
在所述音乐确定过程中使用所述第二频域格式的所述数字音频数据,所述音乐确定过程接收所述第二频域格式的所述数字音频数据并且输出所述数字音频数据是否表示音乐的指示。
49.根据权利要求47或48所述的计算机实现的方法,其中,所述音乐确定过程包括:执行已经训练成确定音频是否表示音乐的机器学习系统。
50.根据权利要求47至49中任一项所述的计算机实现的方法,其中,所述计算设备在没有访问识别所述多个参考歌曲中的每个参考歌曲的所述多个音频特征的所述参考歌曲表征数据的情况下确定所述数字音频数据是否表示音乐。
51.根据权利要求47至50中任一项所述的计算机实现的方法,其中,所述计算设备利用所述音乐确定过程来确定所述数字音频数据是否表示音乐包括:所述计算设备在确定所述数字音频数据表示音乐之前,在没有接收到发起所述音乐确定过程的用户输入的情况下多次确定所述数字音频数据不表示音乐。
52.根据权利要求47至51中任一项所述的计算机实现的方法,其中,所述第二频域格式和所述第一频域格式分析不同数量的频率区间。
53.根据权利要求47至52中任一项所述的计算机实现的方法,其中:
确定所述数字音频数据是否表示音乐是由所述计算设备的第一处理器执行的;
将所述数字音频数据的所述表征值类集与所述多个参考歌曲中的每个参考歌曲的所述多个表征值进行比较是由所述计算设备的第二处理器执行的;以及
将所述数字音频数据的所述表征值类集与所述多个候选歌曲的子集中的每个参考歌曲的所述多个表征值进行比较是由所述计算设备的所述第二处理器执行的。
54.根据权利要求53所述的计算机实现的方法,其中,所述第一处理器以比所述第二处理器低的电压或瓦数操作。
55.根据权利要求53或54所述的计算机实现的方法,其中,所述第二处理器根据比所述第一处理器操作所根据的时钟信号至少快一个数量级的时钟信号操作。
56.根据权利要求40至55中任一项所述的计算机实现的方法,其中,输出所述特定参考歌曲的所述指示包括:除了启用连续的歌曲识别过程之外,在用户输入尚未提示所述计算设备执行歌曲识别过程的情况下,在所述计算设备的锁定屏幕上、在所述计算设备的始终开启屏幕中或在所述计算设备的解锁屏幕上方呈现的通知中呈现所述特定参考歌曲的名称。
57.一种计算机化系统,所述计算机化系统包括:
一个或者多个处理器;以及
一个或多个计算机可读设备,所述一个或多个计算机可读设备包括指令,所述指令在被所述一个或多个处理器执行时促使执行包括操作,所述操作包括:
由计算设备存储参考歌曲表征数据,所述参考歌曲表征数据识别多个参考歌曲中的每个参考歌曲的多个音频特征;
由所述计算设备接收表示由麦克风记录的音频的数字音频数据;
由所述计算设备将所述数字音频数据从时域格式转换成频域格式;
由所述计算设备在音乐表征过程中使用所述频域格式的所述数字音频数据,所述音乐表征过程输出所述数字音频数据的表征值类集,所述表征值中的至少一些表示除了二进制零和二进制一之外的值;
由所述计算设备将所述数字音频数据的所述表征值类集与所述多个参考歌曲中的每个参考歌曲的所述多个表征值进行比较,以从所述多个参考歌曲中选择多个候选歌曲的子集作为与所述数字音频数据的所述表征值对应的那些参考歌曲;
由所述计算设备将所述数字音频数据的所述表征值类集与所述多个候选歌曲的子集中的每个参考歌曲的多个表征值进行比较,以确定所述数字音频数据的所述表征值类集与所述特定参考歌曲的所述多个表征值最为相关;以及
由所述计算设备响应于确定所述数字音频数据的所述表征值类集与所述特定参考歌曲的所述多个表征值最为相关来输出所述特定参考歌曲的指示。
CN201880031926.3A 2017-10-03 2018-10-01 将音乐识别为特定歌曲 Pending CN110622155A (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201762567755P 2017-10-03 2017-10-03
US62/567,755 2017-10-03
PCT/US2018/053766 WO2019070588A1 (en) 2017-10-03 2018-10-01 IDENTIFICATION OF MUSIC AS A PARTICULAR SONG

Publications (1)

Publication Number Publication Date
CN110622155A true CN110622155A (zh) 2019-12-27

Family

ID=64024071

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201880031926.3A Pending CN110622155A (zh) 2017-10-03 2018-10-01 将音乐识别为特定歌曲

Country Status (5)

Country Link
US (3) US10761802B2 (zh)
EP (1) EP3679484A1 (zh)
JP (1) JP7143327B2 (zh)
CN (1) CN110622155A (zh)
WO (1) WO2019070588A1 (zh)

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10962623B1 (en) 2017-05-17 2021-03-30 Heathkit Company, Inc. Accurate and model-based measurement and management systems and methods
CN110622155A (zh) 2017-10-03 2019-12-27 谷歌有限责任公司 将音乐识别为特定歌曲
US11151464B2 (en) * 2018-01-03 2021-10-19 International Business Machines Corporation Forecasting data based on hidden cycle evidence
US10595083B2 (en) * 2018-04-20 2020-03-17 The Nielsen Company (Us), Llc Methods and apparatus to determine audio source impact on an audience of media
US11922006B2 (en) * 2018-06-03 2024-03-05 Apple Inc. Media control for screensavers on an electronic device
USD988349S1 (en) 2019-08-22 2023-06-06 Meta Platforms, Inc. Display screen or portion thereof with a graphical user interface
US11282509B1 (en) * 2019-08-22 2022-03-22 Facebook, Inc. Classifiers for media content
US11354900B1 (en) 2019-08-22 2022-06-07 Meta Platforms, Inc. Classifiers for media content
TWI727432B (zh) * 2019-09-24 2021-05-11 驊訊電子企業股份有限公司 以串流媒體為基礎的歌唱評分方法和歌唱評分系統
US11935520B1 (en) * 2019-12-17 2024-03-19 Auddia Inc. Identifying shifts in audio content via machine learning
US20220027407A1 (en) * 2020-07-27 2022-01-27 Audible Magic Corporation Dynamic identification of unknown media
SE544738C2 (en) * 2020-12-22 2022-11-01 Algoriffix Ab Method and system for recognising patterns in sound
GB2612994A (en) * 2021-11-18 2023-05-24 Audoo Ltd Media identification system

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1522429A (zh) * 2001-06-29 2004-08-18 ��ķɭ��ɹ�˾ 用于提供声学接口的方法和系统
US20150193199A1 (en) * 2014-01-07 2015-07-09 Qualcomm Incorporated Tracking music in audio stream
US20150332667A1 (en) * 2014-05-15 2015-11-19 Apple Inc. Analyzing audio input for efficient speech and music recognition
CN106782591A (zh) * 2016-12-26 2017-05-31 惠州Tcl移动通信有限公司 一种在背景噪音下提高语音识别率的装置及其方法
US20170178681A1 (en) * 2015-12-21 2017-06-22 Invensense, Inc. Music detection and identification
CN107111642A (zh) * 2014-12-31 2017-08-29 Pcms控股公司 用于创建收听日志和音乐库的系统和方法

Family Cites Families (34)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6816468B1 (en) 1999-12-16 2004-11-09 Nortel Networks Limited Captioning for tele-conferences
WO2002065339A1 (fr) * 2001-01-09 2002-08-22 Fujitsu Limited Dispositif de tri/reorganisation de donnees multimedia et procede de tri/reorganisation
AU2002346116A1 (en) * 2001-07-20 2003-03-03 Gracenote, Inc. Automatic identification of sound recordings
US7091409B2 (en) 2003-02-14 2006-08-15 University Of Rochester Music feature extraction using wavelet coefficient histograms
SG140445A1 (en) 2003-07-28 2008-03-28 Sony Corp Method and apparatus for automatically recognizing audio data
US7860714B2 (en) * 2004-07-01 2010-12-28 Nippon Telegraph And Telephone Corporation Detection system for segment including specific sound signal, method and program for the same
US7130795B2 (en) 2004-07-16 2006-10-31 Mindspeed Technologies, Inc. Music detection with low-complexity pitch correlation algorithm
US7558729B1 (en) 2004-07-16 2009-07-07 Mindspeed Technologies, Inc. Music detection for enhancing echo cancellation and speech coding
US8126706B2 (en) 2005-12-09 2012-02-28 Acoustic Technologies, Inc. Music detector for echo cancellation and noise reduction
JP2008192102A (ja) * 2007-02-08 2008-08-21 Sony Computer Entertainment Inc メタデータ生成装置およびメタデータ生成方法
KR20100014821A (ko) 2007-04-23 2010-02-11 엘에스아이 코포레이션 음악 인식 시스템들 및 방법들
CN101681619B (zh) 2007-05-22 2012-07-04 Lm爱立信电话有限公司 改进的话音活动性检测器
US20100086107A1 (en) 2008-09-26 2010-04-08 Tzruya Yoav M Voice-Recognition Based Advertising
JP5282548B2 (ja) 2008-12-05 2013-09-04 ソニー株式会社 情報処理装置、音素材の切り出し方法、及びプログラム
US9405752B2 (en) 2009-02-13 2016-08-02 T-Mobile Usa, Inc. System and method for automatically presenting a media file on a mobile device based on relevance to a user
JP5193130B2 (ja) * 2009-06-01 2013-05-08 日本放送協会 電話音声区間検出装置およびそのプログラム
US8886531B2 (en) 2010-01-13 2014-11-11 Rovi Technologies Corporation Apparatus and method for generating an audio fingerprint and using a two-stage query
US8805683B1 (en) 2012-02-24 2014-08-12 Google Inc. Real-time audio recognition protocol
JP2012185195A (ja) * 2011-03-03 2012-09-27 Jvc Kenwood Corp オーディオデータ特徴抽出方法、オーディオデータ照合方法、オーディオデータ特徴抽出プログラム、オーディオデータ照合プログラム、オーディオデータ特徴抽出装置、オーディオデータ照合装置及びオーディオデータ照合システム
US9280599B1 (en) 2012-02-24 2016-03-08 Google Inc. Interface for real-time audio recognition
US8681950B2 (en) * 2012-03-28 2014-03-25 Interactive Intelligence, Inc. System and method for fingerprinting datasets
US20130318114A1 (en) * 2012-05-13 2013-11-28 Harry E. Emerson, III Discovery of music artist and title by broadcast radio receivers
US10424321B1 (en) 2013-02-12 2019-09-24 Google Llc Audio data classification
US20140337021A1 (en) 2013-05-10 2014-11-13 Qualcomm Incorporated Systems and methods for noise characteristic dependent speech enhancement
US9224385B1 (en) 2013-06-17 2015-12-29 Google Inc. Unified recognition of speech and music
US9002835B2 (en) 2013-08-15 2015-04-07 Google Inc. Query response using media consumption history
US9275427B1 (en) 2013-09-05 2016-03-01 Google Inc. Multi-channel audio video fingerprinting
JP6237230B2 (ja) 2013-12-27 2017-11-29 富士通株式会社 メモリ管理プログラム、メモリ管理方法、及びメモリ管理装置
US20150186509A1 (en) 2013-12-30 2015-07-02 Google Inc. Power-efficient music playlist identification
JP6245650B2 (ja) * 2014-08-26 2017-12-13 株式会社エクシング 楽曲検索用プログラム
US10747498B2 (en) * 2015-09-08 2020-08-18 Apple Inc. Zero latency digital assistant
US10902043B2 (en) * 2016-01-03 2021-01-26 Gracenote, Inc. Responding to remote media classification queries using classifier models and context parameters
US20170039190A1 (en) 2016-08-05 2017-02-09 Joseph Ricardo Two Way (+) Language Translation Communication Technology
CN110622155A (zh) 2017-10-03 2019-12-27 谷歌有限责任公司 将音乐识别为特定歌曲

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1522429A (zh) * 2001-06-29 2004-08-18 ��ķɭ��ɹ�˾ 用于提供声学接口的方法和系统
US20150193199A1 (en) * 2014-01-07 2015-07-09 Qualcomm Incorporated Tracking music in audio stream
US20150332667A1 (en) * 2014-05-15 2015-11-19 Apple Inc. Analyzing audio input for efficient speech and music recognition
CN107111642A (zh) * 2014-12-31 2017-08-29 Pcms控股公司 用于创建收听日志和音乐库的系统和方法
US20170178681A1 (en) * 2015-12-21 2017-06-22 Invensense, Inc. Music detection and identification
CN106782591A (zh) * 2016-12-26 2017-05-31 惠州Tcl移动通信有限公司 一种在背景噪音下提高语音识别率的装置及其方法

Also Published As

Publication number Publication date
US20200401367A1 (en) 2020-12-24
WO2019070588A1 (en) 2019-04-11
JP2020537198A (ja) 2020-12-17
JP7143327B2 (ja) 2022-09-28
US10809968B2 (en) 2020-10-20
US20190102144A1 (en) 2019-04-04
US20190102458A1 (en) 2019-04-04
US11256472B2 (en) 2022-02-22
US10761802B2 (en) 2020-09-01
EP3679484A1 (en) 2020-07-15

Similar Documents

Publication Publication Date Title
US11256472B2 (en) Determining that audio includes music and then identifying the music as a particular song
JP6916352B2 (ja) 分類器モデル及びコンテキストパラメータを使用した遠隔メディア分類クエリに対する応答
US10819811B2 (en) Accumulation of real-time crowd sourced data for inferring metadata about entities
CN110140168B (zh) 上下文热词
US9966071B2 (en) Disambiguating input based on context
CN107112008B (zh) 基于预测的序列识别
US20160093298A1 (en) Caching apparatus for serving phonetic pronunciations
US20150193199A1 (en) Tracking music in audio stream
WO2017117234A1 (en) Responding to remote media classification queries using classifier models and context parameters

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