(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2022-09-16
(45)【発行日】2022-09-28
(54)【発明の名称】コンピューティング装置によって実施される方法、コンピュータシステム、コンピューティングシステム、およびプログラム
(51)【国際特許分類】
G06F 16/683 20190101AFI20220920BHJP
G06F 16/635 20190101ALI20220920BHJP
G10G 3/04 20060101ALI20220920BHJP
G10L 25/81 20130101ALI20220920BHJP
G10L 25/51 20130101ALI20220920BHJP
【FI】
G06F16/683
G06F16/635
G10G3/04
G10L25/81
G10L25/51 300
(21)【出願番号】P 2019563257
(86)(22)【出願日】2018-10-01
(86)【国際出願番号】 US2018053766
(87)【国際公開番号】W WO2019070588
(87)【国際公開日】2019-04-11
【審査請求日】2020-06-09
(32)【優先日】2017-10-03
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】502208397
【氏名又は名称】グーグル エルエルシー
【氏名又は名称原語表記】Google LLC
【住所又は居所原語表記】1600 Amphitheatre Parkway 94043 Mountain View, CA U.S.A.
(74)【代理人】
【識別番号】110001195
【氏名又は名称】弁理士法人深見特許事務所
(72)【発明者】
【氏名】ロブレク,ドミニク
(72)【発明者】
【氏名】アグエラ-アーカス,ブレイズ・ヒラリー
(72)【発明者】
【氏名】ヒューム,トーマス・ダブリュ
(72)【発明者】
【氏名】リッター,マルビン・カール
(72)【発明者】
【氏名】バーベッロ,ブランドン・チャールズ
(72)【発明者】
【氏名】キルグーア,ケビン・アイ
(72)【発明者】
【氏名】ベリミロビチ,ミハイロ
(72)【発明者】
【氏名】ソーントン,クリストファー
(72)【発明者】
【氏名】トーブマン,ガブリエル・オーク
(72)【発明者】
【氏名】リオン,ジェームス・ダービト
(72)【発明者】
【氏名】アルタウス,ジャン・ハインリヒ
(72)【発明者】
【氏名】ナリウカ,カチャリーナ
(72)【発明者】
【氏名】オデール,ジュリアン・ジェームズ
(72)【発明者】
【氏名】シャリフィ,マシュー
(72)【発明者】
【氏名】グフェラー,ビート
【審査官】北村 学
(56)【参考文献】
【文献】特表2017-509009(JP,A)
【文献】特開2016-045859(JP,A)
【文献】特開2012-185195(JP,A)
【文献】特開2010-277023(JP,A)
【文献】特開2008-192102(JP,A)
【文献】米国特許出願公開第2017/0178681(US,A1)
【文献】国際公開第2002/065339(WO,A1)
【文献】国際公開第2006/004050(WO,A1)
【文献】柏野 邦夫 ほか,同じ音や映像を高速に探す技術―学習アクティブ探索法,NTT R&D,社団法人電気通信協会,2003年02月10日,第52巻第2号,p. 115-121
【文献】柏野 邦夫 ほか,時系列アクティブ探索法に基づく音や映像の高速AND/OR探索,NTT R&D,社団法人電気通信協会,2001年11月10日,第50巻第11号,p. 895-901
【文献】井上 晋輔 ほか,聴覚障害者のための認知レベルに基づく効果音の視覚表現手法,電子情報通信学会技術研究報告,日本,社団法人電子情報通信学会,2006年03月15日,第105巻第681号,p. 13-17
(58)【調査した分野】(Int.Cl.,DB名)
IPC G06F 16/00 - 16/958
G10G 3/04
G10L 25/51
G10L 25/81
(57)【特許請求の範囲】
【請求項1】
コンピューティング装置によって実施される方法であって、
前記コンピューティング装置を用いて、複数の参照歌曲の中の各参照歌曲の複数の音声特徴を識別する参照歌曲特徴データを格納することと、
前記コンピューティング装置を用いて、マイクロフォンによって記録された音声を表すデジタル音声データを受信することと、
前記コンピューティング装置の第1プロセッサを用いて、音楽判断プロセスに従って、前記デジタル音声データが音楽を表すか否かを判断することと、
前記デジタル音声データが音楽を表すことを判断した後、前記コンピューティング装置の第2プロセッサを用いて、前記デジタル音声データが前記複数の参照歌曲の中の特定の参照歌曲を表すことを認識することと、
前記デジタル音声データが前記複数の参照歌曲の中の特定の参照歌曲を表すという認識に応答して、前記コンピューティング装置を用いて、前記特定の参照歌曲を示す表記を出力することとを含み、
前記デジタル音声データが音楽を表すか否かを判断することは、前記デジタル音声データを時間領域形式から第1周波数領域形式に変換することを含み、
前記デジタル音声データが前記複数の参照歌曲の中の特定の参照歌曲を表すことを認識することは、前記デジタル音声データを前記時間領域形式から第2周波数領域形式に変換することを含み、
前記第1プロセッサは、前記第2プロセッサよりも低い電圧で動作する、コンピュータによって実施される方法。
【請求項2】
前記デジタル音声データが音楽を表すか否かを判断することは、
前記音楽判断プロセスにおいて、前記第1周波数領域形式の前記デジタル音声データを使用することと、
前記デジタル音声データが音楽を表すという表記を出力することとを含む、請求項1に記載の方法。
【請求項3】
前記デジタル音声データを前記時間領域形式から前記第1周波数領域形式に変換することは、第1周波数領域変換プロセスであり、
前記デジタル音声データが前記特定の参照歌曲を表すことを認識することは、
(i)第2周波数領域変換プロセスにおいて、前記デジタル音声データを前記時間領域形式から前記第2周波数領域形式に変換することと、
(ii)前記第2周波数領域形式の前記デジタル音声データを受信し、前記デジタル音声データの複数の特徴値を出力する音楽特徴決定プロセスにおいて、前記第2周波数領域形式の前記デジタル音声データを使用することと、
(iii)前記デジタル音声データの前記複数の特徴値を前記複数の参照歌曲の少なくとも一部の歌曲の中の各歌曲の複数の特徴値と比較することによって、前記特定の参照歌曲の前記複数の特徴値が前記デジタル音声データの前記複数の特徴値に最も関連していると判断することとを含む、請求項2に記載のコンピュータによって実施される方法。
【請求項4】
前記音楽特徴決定プロセスは、音楽の特徴を決定するように訓練された機械学習システムによって実行される、請求項3に記載の方法。
【請求項5】
前記デジタル音声データの前記複数の特徴値を前記複数の参照歌曲の少なくとも一部の歌曲の中の各歌曲の複数の特徴値と比較することは、別のコンピューティング装置に歌曲特徴データを要求するためのリクエストを送信することなく、前記コンピューティング装置によって格納された前記複数の参照歌曲の前記少なくとも一部の歌曲の中の各歌曲の前記複数の特徴値にアクセスすることによって実行される、請求項3または4に記載の方法。
【請求項6】
前記コンピューティング装置は、前記デジタル音声データの前記複数の特徴値を、前記複数の参照歌曲の前記一部の歌曲の中の各歌曲の前記複数の特徴値のみと比較し、
前記方法は、
前記デジタル音声データの前記複数の特徴値の中の特徴値を、前記複数の
参照歌曲の中の各歌曲の前記複数の特徴値と比較することによって、前記複数の参照歌曲の前記一部の歌曲を選択することをさらに含む、請求項3から5のいずれか一項に記載の方法。
【請求項7】
前記デジタル音声データの前記複数の特徴値の中の特徴値を、二進値0および1に限定されない値から二進値0および1に限定された値に変換することをさらに含み、
前記デジタル音声データの前記複数の特徴値の中の特徴値を、前記複数の
参照歌曲の中の各歌曲の前記複数の特徴値と比較することは、(a)二進値0および二進値1に限定された前記デジタル音声データの前記特徴値と、(b)二進値0および二進値1に限定された前記複数の
参照歌曲の中の各歌曲の前記特徴値との比較を含む、請求項3から6のいずれか一項に記載の方法。
【請求項8】
前記デジタル音声データの前記複数の特徴値を、前記複数の参照歌曲の少なくとも一部の歌曲の中の各歌曲の前記複数の特徴値と比較することは、(a)二進値0および二進値1以外の値を表す実数を含む前記デジタル音声データの前記特徴値と、(b)二進値0および二進値1に限定された前記複数の
参照歌曲の前記少なくとも一部の歌曲の中の各歌曲の前記特徴値との比較を含む、請求項3から7のいずれか一項に記載の方法。
【請求項9】
前記特定の参照歌曲が再生されていることを示す表記を出力することは、ユーザ入力によって歌曲識別プロセスを実行するように前記コンピューティング装置を促すことなく、連続した歌曲識別プロセスを有効にすることによって、前記コンピューティング装置のロック画面、前記コンピューティング装置の常時オン画面、または前記コンピューティング装置のロック解除画面に表示された通知に、前記特定の参照歌曲の名前を提示することを含む、請求項1から8のいずれか一項に記載の方法。
【請求項10】
前記コンピューティング装置は、前記マイクロフォンを含む、請求項1から8のいずれか一項に記載の方法。
【請求項11】
コンピュータシステムであって、
1つ以上のプロセッサと、
前記1つ以上のプロセッサによって実行されると、以下の動作を実行させる命令を含む1つ以上のコンピュータ可読メモリ装置とを含み、
前記動作は、
前記コンピュータシステムを用いて、複数の参照歌曲の中の各参照歌曲の複数の音声特徴を識別する参照歌曲特徴データを格納することと、
前記コンピュータシステムを用いて、マイクロフォンによって記録された音声を表すデジタル音声データを受信することと、
前記1つ以上のプロセッサのうちの第1プロセッサを用いて、音楽判断プロセスに従って、前記デジタル音声データが音楽を表すか否かを判断することと、
前記デジタル音声データが音楽を表すことを判断した後、前記1つ以上のプロセッサのうちの第2プロセッサを用いて、前記デジタル音声データが前記複数の参照歌曲の中の特定の参照歌曲を表すことを認識することと、
前記デジタル音声データが前記複数の参照歌曲の中の特定の参照歌曲を表すという認識に応答して、前記コンピュータシステムを用いて、前記特定の参照歌曲を示す表記を出力することとを含み、
前記デジタル音声データが音楽を表すか否かを判断することは、前記デジタル音声データを時間領域形式から第1周波数領域形式に変換することを含み、
前記デジタル音声データが前記複数の参照歌曲の中の特定の参照歌曲を表すことを認識することは、前記デジタル音声データを前記時間領域形式から第2周波数領域形式に変換することを含み、
前記第1プロセッサは、前記第2プロセッサよりも低い電圧で動作する、コンピュータシステム。
【請求項12】
コンピューティングシステムであって、
音声信号を記録するように構成されたマイクロフォンと、
記録された音声信号からデジタル音声データを生成するように構成されたアナログ-デジタルコンバータと、
(i)複数の参照歌曲の中の各参照歌曲の複数の音声特徴を識別する参照歌曲特徴データと、(ii)プロセッサによって実行可能であり、前記プロセッサの動作を設定するための命令とを格納する1つ以上のコンピュータ可読メモリ装置と、
前記デジタル音声データが音楽を表すと判断した場合、前記デジタル音声データが音楽を表すことを示す表記を出力するように構成された第1プロセッサと、
前記第1プロセッサから前記デジタル音声データが音楽を表すことを示す前記表記を受信し、前記デジタル音声データが前記複数の参照歌曲の中の特定の参照歌曲を表すことを認識するように構成された第2プロセッサと、
前記第2プロセッサによって、前記デジタル音声データが前記複数の参照歌曲の中の前記特定の参照歌曲を表すことを認識したことに応答して、前記特定の参照歌曲の識別子を提示するように構成された表示装置とを含み、
前記デジタル音声データが音楽を表すと判断することは、前記デジタル音声データを時間領域形式から第1周波数領域形式に変換することを含み、
前記デジタル音声データが前記複数の参照歌曲の中の特定の参照歌曲を表すことを認識することは、前記デジタル音声データを前記時間領域形式から第2周波数領域形式に変換することを含み、
前記第1プロセッサは、前記第2プロセッサよりも低い電圧で動作する、コンピューティングシステム。
【請求項13】
前記コンピューティングシステムは、モバイルコンピューティング装置を含み、
前記モバイルコンピューティング装置は、前記マイクロフォンと、前記アナログ-デジタルコンバータと、前記1つ以上のコンピュータ可読メモリ装置と、前記第1プロセッサと、前記第2プロセッサとを備える、請求項12に記載のコンピューティングシステム。
【請求項14】
前記第2プロセッサは、前記第1プロセッサが動作するクロック信号より少なくとも一桁速いクロック信号で動作する、請求項12または13のいずれか一項に記載のコンピューティングシステム。
【請求項15】
前記第1プロセッサは、前記デジタル音声データが音楽を表すことを示す表記を出力するように構成され、
前記第2プロセッサは、前記モバイルコンピューティング装置が前記デジタル音声データを前記モバイルコンピューティング装置以外のコンピューティングシステムに送信することなく、前記デジタル音声データが前記特定の参照歌曲を表すことを認識するように構成される、請求項13に記載のコンピューティングシステム。
【請求項16】
前記第1プロセッサは、前記デジタル音声データが音楽を表すことを示す表記を出力するように構成され、
前記第2プロセッサは、前記モバイルコンピューティング装置がネットワークを介して外部装置に接続することなく、前記デジタル音声データが前記特定の参照歌曲を表すことを認識するように構成される、請求項13に記載のコンピューティングシステム。
【請求項17】
前記デジタル音声データが音楽を表すことを判断することは、
前記第1プロセッサを用いて、前記デジタル音声データが音楽を表すことを判断する前に
、音楽判断プロセスを開始するためのユーザ入力を受信することなく、前記デジタル音声データが音楽を表さないことを複数回判断することを含む、請求項13から16のいずれか一項に記載のコンピューティングシステム。
【請求項18】
前記参照歌曲特徴データは参照歌曲特徴値を含み、前記1つ以上のコンピュータ可読メモリ装置によって格納された、前記複数の参照歌曲の中の前記参照歌曲の前記参照歌曲特徴値は、各参照歌曲特徴値が二進値1または二進値0に限定されるように、二進値1または二進値0に限定される、請求項12から17のいずれか一項に記載のコンピューティングシステム。
【請求項19】
前記複数の参照歌曲は、少なくとも1万曲の参照歌曲を含み、
前記1つ以上のコンピュータ可読メモリ装置によって格納された前記参照歌曲特徴データは、前記少なくとも1万曲の参照歌曲の音声特徴を識別する、請求項12から18のいずれか一項に記載のコンピューティングシステム。
【請求項20】
前記第1プロセッサは、
前記第1周波数領域形式の前記デジタル音声データを受信し、前記デジタル音声データが音楽を表すことを示す表記を出力する音楽判断プロセスにおいて、前記第1周波数領域形式の前記デジタル音声データを使用すること
を行うことによって、前記デジタル音声データが音楽を表すことを判断するように構成される、請求項12から19のいずれか一項に記載のコンピューティングシステム。
【請求項21】
前記音楽判断プロセスは、音声が音楽を表すか否かを判断するように訓練された機械学習システムを実行することを含む、請求項20に記載のコンピューティングシステム。
【請求項22】
前記音楽判断プロセスは、低電力プロセッサ上で重畳型ニューラルネットワークを実行することを含む、請求項20に記載のコンピューティングシステム。
【請求項23】
前記デジタル音声データを前記時間領域形式から前記第1周波数領域形式に変換することは、第1周波数領域変換プロセスであり、
前記第2プロセッサは、
(i)第2周波数領域変換プロセスにおいて、前記デジタル音声データを前記時間領域形式から前記第2周波数領域形式に変換することと、
(ii)前記第2周波数領域形式の前記デジタル音声データを受信し、前記デジタル音声データの複数の特徴値を出力する音楽特徴決定プロセスにおいて、前記第2周波数領域形式の前記デジタル音声データを使用することと、
(iii)前記デジタル音声データの前記複数の特徴値を前記複数の参照歌曲の一部の歌曲の中の各歌曲の複数の特徴値と比較することによって、前記特定の参照歌曲の前記複数の特徴値が前記デジタル音声データの前記複数の特徴値に最も関連していると判断することと
を行うことによって、前記デジタル音声データが前記複数の参照歌曲の中の特定の参照歌曲を表すことを認識するように構成される、請求項12から22のいずれか一項に記載のコンピューティングシステム。
【請求項24】
前記第2周波数領域形式および前記第1周波数領域形式は、異なる数の周波数ビンを解析する、請求項23に記載のコンピューティングシステム。
【請求項25】
前記音楽特徴決定プロセスは、音楽の特徴を決定するように訓練された機械学習システムによって実行される、請求項23または24に記載のコンピューティングシステム。
【請求項26】
前記デジタル音声データの前記複数の特徴値を前記複数の参照歌曲の前記一部の歌曲の中の各歌曲の前記複数の特徴値と比較することは、別のコンピューティング装置に歌曲特徴データを要求するためのリクエストを送信することなく、前記1つ以上のコンピュータ可読メモリ装置によって格納された前記複数の参照歌曲の前記一部の歌曲の中の各歌曲の前記複数の特徴値にアクセスすることによって実行される、請求項23から25のいずれか一項に記載のコンピューティングシステム。
【請求項27】
前記デジタル音声データの前記複数の特徴値の中の特徴値を、前記複数の
参照歌曲の中の各歌曲の前記複数の特徴値と比較することによって、前記複数の参照歌曲の前記一部の歌曲を選択することをさらに含む、請求項23から26のいずれか一項に記載のコンピューティングシステム。
【請求項28】
前記デジタル音声データの前記複数の特徴値の中の特徴値を、二進値0および1に限定されない値から二進値0および1に限定された値に変換することをさらに含み、
前記デジタル音声データの前記複数の特徴値の中の特徴値を前記複数の
参照歌曲の中の各歌曲の前記複数の特徴値と比較することは、(a)二進値0および二進値1に限定された前記デジタル音声データの前記特徴値と、(b)二進値0および二進値1に限定された前記複数の
参照歌曲の中の各歌曲の前記特徴値との比較を含む、請求項23から27のいずれか一項に記載のコンピューティングシステム。
【請求項29】
前記デジタル音声データの前記複数の特徴値を前記複数の参照歌曲の前記一部の歌曲の中の各歌曲の前記複数の特徴値と比較することは、(a)二進値0および二進値1以外の値を表す実数を含む前記デジタル音声データの前記特徴値と、(b)二進値0および二進値1に限定された前記複数の
参照歌曲の前
記一部の歌曲の中の各歌曲の前記特徴値との比較を含む、請求項23から28のいずれか一項に記載のコンピューティングシステム。
【請求項30】
コンピューティング装置によって実施される方法であって、
前記コンピューティング装置を用いて、複数の参照歌曲の中の各参照歌曲の複数の音声特徴を識別する参照歌曲特徴データを格納することと、
前記コンピューティング装置を用いて、マイクロフォンによって記録された音声を表すデジタル音声データを受信することと、
前記コンピューティング装置を用いて、前記デジタル音声データを時間領域形式から周波数領域形式に変換することと、
前記コンピューティング装置を用いて、前記周波数領域形式の前記デジタル音声データを前記デジタル音声データの複数の特徴値を出力する音楽特徴決定プロセスに使用することとを含み、前記特徴値の少なくとも一部は、二進値0および二進値1以外の値を表し、前記方法は、
前記コンピューティング装置を用いて、前記デジタル音声データの前記複数の特徴値の少なくとも一部を、二進値0および1に限定されない値から二進値0および1に限定された値に変換することと、
前記コンピューティング装置を用いて、前記デジタル音声データの前記複数の特徴値の変換された前記少なくとも一部を前記複数の参照歌曲の中の各参照歌曲の複数の特徴値と比較することによって、前記複数の参照歌曲から、前記デジタル音声データの前記複数の特徴値に対応する一部の参照歌曲を複数の候補歌曲として選択することと、を含み、前記デジタル音声データの前記複数の特徴値の変換された前記少なくとも一部は二進値0および1に限定され、前記複数の参照歌曲の中の各参照歌曲の前記複数の特徴値は二進値0および1に限定され、前記方法は、
前記コンピューティング装置を用いて、前記デジタル音声データの前記複数の特徴値を前記複数の候補歌曲の中の各参照歌曲の前記複数の特徴値と比較することによって、前記デジタル音声データの前記複数の特徴値が前記
複数の候補歌曲の中の特定の参照歌曲の前記複数の特徴値に最も関連していると判断することと、
前記デジタル音声データの前記複数の特徴値が前記特定の参照歌曲の前記複数の特徴値に最も関連しているという判断に応答して、前記コンピューティング装置を用いて、前記特定の参照歌曲を示す表記を出力することとを含
み、
前記デジタル音声データの前記複数の特徴値を、前記複数の候補歌曲の中の各参照歌曲の前記複数の特徴値と比較することは、(a)二進値0および二進値1以外の値を表す実数を含む前記デジタル音声データの前記特徴値と、(b)二進値0および二進値1に限定された前記複数の候補歌曲の中の各参照歌曲の前記特徴値との比較を含む、方法。
【請求項31】
前記音楽特徴決定プロセスは、音楽の特徴を決定するように訓練された機械学習システムによって実行される、請求項30に記載の方法。
【請求項32】
前記デジタル音声データの前記複数の特徴値を前記複数の参照歌曲の中の各参照歌曲の複数の特徴値と比較することは、別のコンピューティング装置に歌曲特徴データを要求するためのリクエストを送信することなく、前記コンピューティング装置によって格納された前記複数の参照歌曲の中の各参照歌曲の前記複数の特徴値にアクセスすることによって実行される、請求項30または31に記載の方法。
【請求項33】
前記複数の参照歌曲の中の前記参照歌曲の参照歌曲特徴値は、各特徴値が二進値1または二進値0に限定されるように、二進値1または二進値0に限定される、請求項1、2
、30から
32のいずれか一項に記載の方法。
【請求項34】
前記複数の参照歌曲は、少なくとも1万曲の参照歌曲を含み、
前記参照歌曲特徴データは、前記少なくとも1万曲の参照歌曲の音声特徴を識別する、請求項1および30から
33のいずれか一項に記載の方法。
【請求項35】
前記コンピューティング装置を用いて、音楽判断プロセスに従って、前記デジタル音声データが音楽を表すか否かを判断することをさらに含み、
前記コンピューティング装置は、前記音楽判断プロセスに従って、前記デジタル音声データが音楽を表すことを判断した後、前記デジタル音声データの前記複数の特徴値を、前記複数の参照歌曲の中の各参照歌曲の前記複数の特徴値と比較する、請求項30から
32のいずれか一項に記載の方法。
【請求項36】
前記周波数領域形式は、第1周波数領域形式であり、
前記デジタル音声データを前記時間領域形式から前記周波数領域形式に変換することは、第1周波数領域変換プロセスであり、
前記デジタル音声データが音楽を表すか否かを判断することは、
第2周波数領域変換プロセスにおいて、前記デジタル音声データを時間領域形式から第2周波数領域形式に変換することと、
前記第2周波数領域形式の前記デジタル音声データを受信し、前記デジタル音声データが音楽を表すか否かを示す表記を出力する音楽特徴決定プロセスにおいて、前記第2周波数領域形式の前記デジタル音声データを使用することとを含む、請求項30から
32のいずれか一項に記載の方法。
【請求項37】
前記音楽判断プロセスは、音声が音楽を表すか否かを判断するように訓練された機械学習システムを実行することを含む、請求項2
または35に記載の方法。
【請求項38】
前記コンピューティング装置は、前記複数の参照歌曲の中の各参照歌曲の前記複数の音声特徴を識別するための前記参照歌曲特徴データにアクセスすることなく、前記デジタル音声データが音楽を表すか否かを判断する、請求項1、2、
35および37のいずれか一項に記載の方法。
【請求項39】
前記コンピューティング装置を用いて、前記音楽判断プロセスに従って前記デジタル音声データが音楽を表すか否かを判断することは、前記デジタル音声データが音楽を表すことを判断する前に、前記音楽判断プロセスを開始するためのユーザ入力を受信することなく、前記コンピューティング装置を用いて、前記デジタル音声データが音楽を表さないことを複数回判断することを含む、請求項1、2、
35、37および38のいずれか一項に記載の方法。
【請求項40】
前記第2周波数領域形式および前記第1周波数領域形式は、異なる数の周波数ビンを解析する、請求項3
または36に記載の方法。
【請求項41】
前記デジタル音声データが音楽を表すか否かを判断することは、前記コンピューティング装置の第1プロセッサによって実行され、
前記デジタル音声データの前記複数の特徴値の変換された前記少なくとも一部を、前記複数の参照歌曲の中の各参照歌曲の前記複数の特徴値と比較することは、前記コンピューティング装置の第2プロセッサによって実行され、
前記デジタル音声データの前記複数の特徴値を、前記複数の候補歌曲の中の各参照歌曲の前記複数の特徴値と比較することは、前記コンピューティング装置の前記第2プロセッサによって実行される、請求項
35に記載の方法。
【請求項42】
前記第1プロセッサは、前記第2プロセッサよりも低い電圧またはワット数で動作する、請求項
41に記載の方法。
【請求項43】
前記第2プロセッサは、前記第1プロセッサが動作するクロック信号より少なくとも一桁速いクロック信号で動作する、請求項1、
41および
42のいずれか一項に記載の方法。
【請求項44】
前記特定の参照歌曲を示す表記を出力することは、ユーザ入力によって歌曲識別プロセスを実行するように前記コンピューティング装置を促すことなく、連続した歌曲識別プロセスを有効にすることによって、前記コンピューティング装置のロック画面、前記コンピューティング装置の常時オン画面、または前記コンピューティング装置のロック解除画面に表示された通知に、前記特定の参照歌曲の名前を提示することを含む、請求項30から
43のいずれか一項に記載の方法。
【請求項45】
コンピュータシステムであって、
1つ以上のプロセッサと、
前記1つ以上のプロセッサによって実行されると、以下の動作を実行させる命令を含む1つ以上のコンピュータ可読メモリ装置とを含み、
前記動作は、
前記コンピュータシステムを用いて、複数の参照歌曲の中の各参照歌曲の複数の音声特徴を識別する参照歌曲特徴データを格納することと、
前記コンピュータシステムを用いて、マイクロフォンによって記録された音声を表すデジタル音声データを受信することと、
前記コンピュータシステムを用いて、前記デジタル音声データを時間領域形式から周波数領域形式に変換することと、
前記コンピュータシステムを用いて、前記周波数領域形式の前記デジタル音声データを前記デジタル音声データの複数の特徴値を出力する音楽特徴決定プロセスに使用することとを含み、前記特徴値の少なくとも一部は、二進値0および二進値1以外の値を表し、前記動作は、
前記コンピュータシステムを用いて、前記デジタル音声データの前記複数の特徴値の少なくとも一部を、二進値0および1に限定されない値から二進値0および1に限定された値に変換することと、
前記コンピュータシステムを用いて、前記デジタル音声データの前記複数の特徴値の変換された前記少なくとも一部を前記複数の参照歌曲の中の各参照歌曲の複数の特徴値と比較することによって、前記複数の参照歌曲から、前記デジタル音声データの前記複数の特徴値に対応する一部の参照歌曲を複数の候補歌曲として選択することと、を含み、前記デジタル音声データの前記複数の特徴値の変換された前記少なくとも一部は二進値0および1に限定され、前記複数の参照歌曲の中の各参照歌曲の前記複数の特徴値は二進値0および1に限定され、前記動作は、
前記コンピュータシステムを用いて、前記デジタル音声データの前記複数の特徴値を前記複数の候補歌曲の中の各参照歌曲の前記複数の特徴値と比較することによって、前記デジタル音声データの前記複数の特徴値が前記
複数の候補歌曲の中の特定の参照歌曲の前記複数の特徴値に最も関連していると判断すること
と、
前記デジタル音声データの前記複数の特徴値が前記特定の参照歌曲の前記複数の特徴値に最も関連しているという判断に応答して、前記コンピュータシステムを用いて、前記特定の参照歌曲を示す表記を出力することとを含
み、
前記デジタル音声データの前記複数の特徴値を、前記複数の候補歌曲の中の各参照歌曲の前記複数の特徴値と比較することは、(a)二進値0および二進値1以外の値を表す実数を含む前記デジタル音声データの前記特徴値と、(b)二進値0および二進値1に限定された前記複数の候補歌曲の中の各参照歌曲の前記特徴値との比較を含む、コンピュータシステム。
【請求項46】
請求項1から
10および30から
44のいずれか一項に記載の方法をコンピュータに実行させるプログラム。
【発明の詳細な説明】
【背景技術】
【0001】
背景
最新のコンピューティング装置の多くは、電話音声の録音、ノイズキャンセルのための外部ノイズの特定、音声入力の受信などの様々な目的に使用されるマイクロフォンを含む。マイクロフォンのもう1つの用途は、音声を録音して、コンピューティング装置がその音声をリモートサーバシステムに送信して解析することによって、歌曲として認識することである。音声をリモートサーバシステムに送信して解析することは、計算コストが高く、時間がかかる。
【発明の概要】
【0002】
概要
本明細書は、検出された音声が音楽を表すまたは含むか否かを判断し、その音楽を特定の歌曲として識別するための技術、方法、システムおよび他のメカニズムを説明する。本明細書に記載されたメカニズムを実現する装置は、上記のプロセスを継続的に実行することができる。したがって、ユーザが現在環境内のスピーカから再生している歌曲の名前を知りたいと思うときに、装置は、既にこの歌曲を特定し、歌曲の曲名を表示装置に出力している。いくつかの例において、本明細書に記載の音楽検出メカニズムおよび歌曲識別メカニズムが全てポータブルコンピューティング装置上で実行され、ポータブルコンピューティング装置が周囲音声の録音から生成されたデータを解析のためにリモート電子システムに送信しないため、ネットワーク接続が利用できない場合でも、ポータブルコンピューティング装置が音楽を認識および識別することができる。この機能によって、ローカルに記録された音声データをリモート電子システムに送信して、歌曲を認識および識別する必要がない。
【0003】
いくつかの例において、音楽判断プロセスおよび歌曲識別プロセスは、2つの段階で実行されてもよい。第1段階は、(例えば、継続的な監視プロセスに基づいて)コンピューティング装置によって検出された音声が音楽を表すかまたは含むか否かを認識することを含む。第1段階を連続的にまたは少なくとも一定の期間に連続的に作動する必要があるため、第1段階は、コンピューティング装置に動作可能に結合されまたは含まれ、コンピューティング装置のメインプロセッサとは異なる低電力プロセッサによって実行される。この低電力プロセッサは、メインプロセッサよりも低い電圧およびクロック速度で動作するため、音楽検出プロセスによるバッテリの消費を最小限に抑えることができる。低電力プロセッサは、メインプロセッサから物理的に分離されてもよい。したがって、低電力プロセッサは、メインプロセッサとは異なるコンピューティング装置の部分(例えば、別個の回路基板、モジュール、またはハウジング)に収容されてもよい。
【0004】
低電力プロセッサによって周囲音声が音楽を表すまたは含むと判断した後、メインプロセッサは、歌曲識別プロセスにおいて記録された音声を解析することを含む第2段階を実行する。歌曲識別プロセスは、2つのステップを含むことができる。第1ステップにおいて、記録された音声の特徴を、数千曲の参照歌曲の特徴を識別するための数千曲の参照歌曲の装置上データセットと比較することによって、1組の候補歌曲を識別する。第1ステップにおいて、比較的低い解像度の特徴を使用することによって、候補歌曲を識別するための速度を上げることができる。1組の候補歌曲を識別すると、歌曲識別プロセスは、記録された音声とマッチングする候補歌曲(存在する場合)を識別するための第2ステップを実行する。第2ステップにおいて、比較的高い解像度の特徴を使用することによって、歌曲マッチング精度を最大化することができる。
【0005】
歌曲を識別すると、コンピューティング装置は、再生されている歌曲を示す表記を提示することができる。例えば、コンピューティング装置がスマートフォンであり且つ「ロック」されている(すなわち、殆どアクセスされていないまたは完全にアクセスされていないセキュリティ状態にある)場合、コンピューティング装置は、装置の「ロック画面」または「常時表示画面」に歌曲の名前を表示することができる。コンピューティング装置がロックされていない場合、コンピューティング装置は、装置の画面(例えば、スマートフォンの通知画面)に歌曲の名前を表示することができる。このように連続的な方法で歌曲を識別することによって、ユーザは、専用の歌曲識別アプリケーションを起動して音声を録音するボタンを選択する必要がなく、歌曲の名前を確認することができる。そのため、ユーザは、歌曲識別アプリケーションを起動するためにコンピューティング装置上で行われている動作を停止する必要がなく、環境内のスピーカから再生されている歌曲を識別することができる。また、歌曲識別アプリケーションの起動および実行には時間がかかるため、ユーザが歌曲識別アプリケーションを起動して実行する前に、歌曲の再生が終了してしまう場合がある。さらに、装置は、歌曲を識別できない場合があり、ユーザが歌曲識別アプリケーションを起動および実行しても、歌曲を識別できないという失望感を体験するため、自動歌曲識別プロセスは、ユーザが歌曲識別アプリケーションを起動および実行する回数を制限する。
【0006】
以下に記載される実施形態の追加の説明として、本開示は、以下の実施形態を記載する。
【0007】
実施形態1は、コンピュータによって実施される方法である。この方法は、コンピューティング装置を用いて、複数の参照歌曲の中の各参照歌曲の複数の音声特徴を識別する参照歌曲特徴データを格納することを含む。この方法は、コンピューティング装置を用いて、マイクロフォンによって記録された音声を表すデジタル音声データを受信することを含む。この方法は、コンピューティング装置を用いて、音楽判断プロセスに従って、デジタル音声データが音楽を表すか否かを判断することを含む。この方法は、デジタル音声データが音楽を表すことを判断した後、コンピューティング装置を用いて、デジタル音声データが複数の参照歌曲の中の特定の参照歌曲を表すことを認識することを含む。この方法は、デジタル音声データが複数の参照歌曲の中の特定の参照歌曲を表すという判断に応答して、コンピューティング装置を用いて、特定の参照歌曲を示す表記を出力することを含む。
【0008】
実施形態2は、実施形態1に記載のコンピュータによって実施される方法である。この場合、複数の参照歌曲は、少なくとも1万曲の参照歌曲を含み、参照歌曲特徴データは、少なくとも1万曲の参照歌曲の音声特徴を識別する。
【0009】
実施形態3は、実施形態1または2のいずれか1つに記載のコンピュータによって実施される方法である。この場合、複数の参照歌曲の中の参照歌曲の参照歌曲特徴値は、各特徴値が二進値1または二進値0に限定されるように、二進値1または二進値0に限定される。
【0010】
実施形態4は、実施形態1から3のいずれか1つに記載のコンピュータによって実施される方法である。この場合、デジタル音声データが音楽を表すか否かを判断することは、デジタル音声データを時間領域形式から周波数領域形式に変換することと、周波数領域形式のデジタル音声データを音楽判断プロセスに使用することと、デジタル音声データが音楽を表すという表記を出力することとを含む。
【0011】
実施形態5は、実施形態4に記載のコンピュータによって実施される方法である。この場合、音楽判断プロセスは、音声が音楽を表すか否かを判断するように訓練された機械学習システムを実行することを含む。
【0012】
実施形態6は、実施形態1から5のいずれか1つに記載のコンピュータによって実施される方法である。この場合、コンピューティング装置は、複数の参照歌曲の中の各参照歌曲の複数の音声特徴を識別する参照歌曲特徴データにアクセスすることなく、デジタル音声データが音楽を表すか否かを判断する。
【0013】
実施形態7は、実施形態1から6のいずれか1つに記載のコンピュータによって実施される方法である。この場合、デジタル音声データが音楽を表すか否かを判断することは、デジタル音声データが音楽を表すことを判断する前に、音楽判断プロセスを開始するためのユーザ入力を受信することなく、コンピューティング装置を用いてデジタル音声データが音楽を表さないことを複数回判断することを含む。
【0014】
実施形態8は、実施形態4から7のいずれか1つに記載のコンピュータによって実施される方法である。この場合、周波数領域形式は、第1周波数領域形式であり、周波数領域変換プロセスは、第1周波数領域変換プロセスであり、デジタル音声データが特定の参照歌曲を表すことを認識することは、(i)第2周波数領域変換プロセスにおいて、デジタル音声データを時間領域形式から第2周波数領域形式に変換することと、(ii)第2周波数領域形式のデジタル音声データを受信し、デジタル音声データの複数の特徴値を出力する音楽特徴決定プロセスにおいて、第2周波数領域形式のデジタル音声データを使用することと、(iii)デジタル音声データの複数の特徴値を複数の参照歌曲の少なくとも一部の歌曲の中の各歌曲の複数の特徴値と比較することによって、特定の参照歌曲の複数の特徴値がデジタル音声データの複数の特徴値に最も関連していると判断することとを含む。
【0015】
実施形態9は、実施形態8に記載のコンピュータによって実施される方法である。この場合、第2周波数領域形式および第1周波数領域形式は、異なる数の周波数ビンを解析する。
【0016】
実施形態10は、実施形態8または9のいずれか1つに記載のコンピュータによって実施される方法である。この場合、音楽特徴決定プロセスは、音楽の特徴を決定するように訓練された機械学習システムによって実行される。
【0017】
実施形態11は、実施形態8から10のいずれか1つに記載のコンピュータによって実施される方法である。この場合、デジタル音声データの複数の特徴値を複数の参照歌曲の少なくとも一部の歌曲の中の各歌曲の複数の特徴値と比較することは、別のコンピューティング装置に歌曲特徴データを要求するためのリクエストを送信することなく、コンピューティング装置によって格納された複数の参照歌曲の少なくとも一部の歌曲の中の各歌曲の複数の特徴値にアクセスすることによって実行される。
【0018】
実施形態12は、実施形態8から11のいずれか1つに記載のコンピュータによって実施される方法である。この場合、コンピューティング装置は、デジタル音声データの複数の特徴値を、複数の候補歌曲の一部の歌曲の中の各歌曲の複数の特徴値のみと比較し、方法は、デジタル音声データの複数の特徴値の中の特徴値を、複数の候補歌曲の中の各歌曲の複数の特徴値と比較することによって、複数の参照歌曲から一部の歌曲を選択することをさらに含む。
【0019】
実施形態13は、実施形態8から12のいずれか1つに記載のコンピュータによって実施される方法である。この場合、デジタル音声データの複数の特徴値の中の特徴値を、二進値0および1に限定されない値から二進値0および1に限定された値に変換することをさらに含み、デジタル音声の複数の特徴値の中の特徴値を、複数の候補歌曲の中の各歌曲の複数の特徴値と比較することは、(a)二進値0および二進値1に限定されたデジタル音声データの特徴値と、(b)二進値0および二進値1に限定された複数の歌曲の中の各歌曲の特徴値との比較を含む。
【0020】
実施形態14は、実施形態8から13のいずれかに記載のコンピュータによって実施される方法である。この場合、デジタル音声データの複数の特徴値を、複数の参照歌曲の少なくとも一部の歌曲の中の各歌曲の複数の特徴値と比較することは、(a)二進値0および二進値1以外の値を表す実数を含むデジタル音声データの特徴値と、(b)二進値0および二進値1に限定された複数の歌曲の少なくとも一部の歌曲の中の各歌曲の特徴値との比較を含む。
【0021】
実施形態15は、実施形態1から13のいずれか1つに記載のコンピュータによって実施される方法である。この場合、デジタル音声データが音楽を表すか否かを判断することは、コンピューティング装置の第1プロセッサによって実行され、デジタル音声データが複数の参照歌曲の中の特定の参照歌曲を表すことを認識することは、コンピューティング装置の第2プロセッサによって実行される。
【0022】
実施形態16は、実施形態15に記載のコンピュータによって実施される方法である。この場合、第1プロセッサは、第2プロセッサよりも低い電圧で動作する。
【0023】
実施形態17は、実施形態15に記載のコンピュータによって実施される方法である。この場合、第2プロセッサは、第1プロセッサが動作するクロック信号よりも少なくとも一桁速いクロック信号で動作する。
【0024】
実施形態18は、実施形態1から17のいずれか1つに記載のコンピュータによって実施される方法である。この場合、特定の参照歌曲が再生されていることを示す表記を出力することは、ユーザ入力によって歌曲識別プロセスを実行するようにコンピューティング装置を促すことなく、連続した歌曲識別プロセスを有効にすることによって、コンピューティング装置のロック画面、コンピューティング装置の常時オン画面、またはコンピューティング装置のロック解除画面に表示された通知に、特定の参照歌曲の名前を提示することを含む。
【0025】
実施形態19は、実施形態1から17のいずれか1つに記載のコンピュータによって実施される方法である。この場合、コンピューティング装置は、マイクロフォンを含む。
【0026】
実施形態20は、コンピュータシステムに関する。このコンピュータシステムは、1つ以上のプロセッサと、1つ以上のプロセッサによって実行されると、実施形態1から19のいずれか1つに記載の方法を実行させる命令を含む1つ以上のコンピュータ可読装置とを含む。
【0027】
実施形態21は、コンピューティングシステムに関する。コンピューティングシステムは、音声信号を記録するように構成されたマイクロフォンを備えている。コンピューティングシステムは、記録された音声信号からデジタル音声データを生成するように構成されたアナログ-デジタルコンバータを備えている。コンピューティングシステムは、(i)複数の参照歌曲の中の各参照歌曲の複数の音声特徴を識別する参照歌曲特徴データと、(ii)プロセッサによって実行可能であり、プロセッサの動作を構成するための命令とを格納する1つ以上のコンピュータ可読メモリ装置を備えている。コンピューティングシステムは、デジタル音声データが音楽を表すと判断した場合、デジタル音声データが音楽を表すことを示す表記を出力するように構成された第1プロセッサを備えている。コンピューティングシステムは、第1プロセッサからデジタル音声データが音楽を表すことを示す表記を受信し、デジタル音声データが複数の参照歌曲の中の特定の参照歌曲を表すことを認識するように構成された第2プロセッサを備えている。コンピューティングシステムは、第2プロセッサによって、デジタル音声データが複数の参照歌曲の中の特定の参照歌曲を表すことを認識したことに応答して、特定の参照歌曲の識別子を提示するように構成された表示装置を備えている。
【0028】
実施形態22は、実施形態21に記載のコンピューティングシステムである。この場合、コンピューティングシステムは、モバイルコンピューティング装置を含み、このモバイルコンピューティング装置は、マイクロフォンと、アナログデジタルコンバータと、1つ以上のコンピュータ可読メモリ装置と、第1プロセッサと、第2プロセッサとを備える。
【0029】
実施形態23は、実施形態21または22のいずれか1つに記載のコンピューティングシステムである。この場合、第1プロセッサは、第2プロセッサよりも低い電圧またはワット数で動作する。
【0030】
実施形態24は、実施形態21から23のいずれか1つに記載のコンピューティングシステムである。この場合、第2プロセッサは、第1プロセッサが動作するクロック信号より少なくとも一桁速いクロック信号で動作する。
【0031】
実施形態25は、実施形態22から24のいずれか1つに記載のコンピューティングシステムである。この場合、第1プロセッサは、デジタル音声データが音楽を表すことを示す表記を出力するように構成され、第2プロセッサは、コンピューティング装置がデジタル音声データをコンピューティング装置以外のコンピューティングシステムに送信することなく、デジタル音声データが特定の参照歌曲を表すことを認識するように構成される。
【0032】
実施形態26は、実施形態22から25のいずれか1つに記載のコンピューティングシステムである。この場合、第1プロセッサは、デジタル音声データが音楽を表すことを示す表記を出力するように構成され、第2プロセッサは、コンピューティング装置がネットワークを介して外部装置に接続することなく、デジタル音声データが特定の参照歌曲を表すことを認識するように構成される。
【0033】
実施形態27は、実施形態22から26のいずれか1つに記載のコンピューティングシステムである。この場合、デジタル音声データが音楽を表すことを判断することは、第1プロセッサを用いてデジタル音声データが音楽を表すことを判断する前に、音楽判断プロセスを開始するためのユーザ入力を受信することなく、コンピューティング装置を用いてデジタル音声データが音楽を表さないことを複数回判断することを含む。
【0034】
実施形態28は、実施形態21から27のいずれか1つに記載のコンピューティングシステムである。この場合、複数の参照歌曲の中の参照歌曲の参照歌曲特徴値は、各特徴値が二進値1または二進値0に限定されるように、二進値1または二進値0に限定される。
【0035】
実施形態29は、実施形態21から28のいずれか1つに記載のコンピューティングシステムである。この場合、複数の参照歌曲は、少なくとも1万曲の参照歌曲を含み、1つ以上のコンピュータ可読メモリ装置によって格納された参照歌曲特徴データは、少なくとも1万曲の参照歌曲の音声特徴を識別する。
【0036】
実施形態30は、実施形態21から29のいずれか1つに記載のコンピューティングシステムである。この場合、第1プロセッサは、周波数領域変換プロセスにおいて、デジタル音声データを時間領域形式から周波数領域形式に変換することと、周波数領域形式のデジタル音声データを受信し、デジタル音声データが音楽を表すことを示す表記を出力する音楽判断プロセスにおいて、周波数領域形式のデジタル音声データを使用することとを行うことによって、デジタル音声データが音楽を表すことを判断するように構成される。
【0037】
実施形態31は、実施形態30に記載のコンピューティングシステムである。この場合、音楽判断プロセスは、音声が音楽を表すか否かを判断するように訓練された機械学習システムを実行することを含む。
【0038】
実施形態32は、実施形態30に記載のコンピューティングシステムである。この場合、音楽判断プロセスは、低電力プロセッサ上で重畳型ニューラルネットワークを実行することを含む。
【0039】
実施形態33は、実施形態21から32のいずれか1つに記載のコンピューティングシステムである。この場合、周波数領域形式は、第1周波数領域形式であり、周波数領域変換プロセスは、第1周波数領域変換プロセスであり、第2プロセッサは、(i)第2周波数領域変換プロセスにおいて、デジタル音声データを時間領域形式から第2周波数領域形式に変換することと、(ii)第2周波数領域形式のデジタル音声データを受信し、デジタル音声データの複数の特徴値を出力する音楽特徴決定プロセスにおいて、第2周波数領域形式のデジタル音声データを使用することと、(iii)デジタル音声データの複数の特徴値を複数の参照歌曲の一部の歌曲の中の各歌曲の複数の特徴値と比較することによって、特定の参照歌曲の複数の特徴値がデジタル音声データの複数の特徴値に最も関連していると判断することとを行うことによって、デジタル音声データが複数の参照歌曲の中の特定の参照歌曲を表すことを認識するように構成される。
【0040】
実施形態34は、実施形態33に記載のコンピューティングシステムである。この場合、第2周波数領域形式および第1周波数領域形式は、異なる数の周波数ビンを解析する。
【0041】
実施形態35は、実施形態33または34のいずれか1つに記載のコンピューティングシステムである。この場合、音楽特徴決定プロセスは、音楽の特徴を決定するように訓練された機械学習システムによって実行される。
【0042】
実施形態36は、実施形態33から35のいずれか1つに記載のコンピューティングシステムである。この場合、記デジタル音声データの複数の特徴値を複数の参照歌曲の一部の歌曲の中の各歌曲の複数の特徴値と比較することは、別のコンピューティング装置に歌曲特徴データを要求するためのリクエストを送信することなく、コンピューティング装置によって格納された複数の参照歌曲の一部の歌曲の中の各歌曲の複数の特徴値にアクセスすることによって実行される。
【0043】
実施形態37は、実施形態33から36のいずれか1つに記載のコンピューティングシステムである。この場合、デジタル音声データの複数の特徴値の中の特徴値を、複数の候補歌曲の中の各歌曲の複数の特徴値と比較することによって、複数の参照歌曲から一部の歌曲を選択することをさらに含む。
【0044】
実施形態38は、実施形態33から37のいずれか1つに記載のコンピューティングシステムである。この場合、デジタル音声データの複数の特徴値を、二進値0および1に限定されない値から二進値0および1に限定された値に変換することをさらに含み、デジタル音声データの複数の特徴値を複数の候補歌曲の中の各歌曲の複数の特徴値と比較することは、(a)二進値0および二進値1に限定されたデジタル音声データの特徴値と、(b)二進値0および二進値1に限定された複数の歌曲の中の各歌曲の特徴値との比較を含む。
【0045】
実施形態39は、実施形態33から38のいずれか1つに記載のコンピューティングシステムである。この場合、デジタル音声データの複数の特徴値を複数の参照歌曲の少なくとも一部の歌曲の中の各歌曲の複数の特徴値と比較することは、(a)二進値0および二進値1以外の値を表す実数を含むデジタル音声データの特徴値と、(b)二進値0および二進値1に限定された複数の歌曲の少なくとも一部の歌曲の中の各歌曲の特徴値との比較を含む。
【0046】
実施形態40は、コンピュータによって実施される方法である。この方法は、コンピューティング装置を用いて、複数の参照歌曲の中の各参照歌曲の複数の音声特徴を識別する参照歌曲特徴データを格納することを含む。この方法は、コンピューティング装置を用いて、マイクロフォンによって記録された音声を表すデジタル音声データを受信することを含む。この方法は、コンピューティング装置を用いて、デジタル音声データを時間領域形式から周波数領域形式に変換することを含む。この方法は、コンピューティング装置を用いて、周波数領域形式のデジタル音声データをデジタル音声データの複数の特徴値を出力する音楽特徴決定プロセスに使用することとを含み、特徴値の少なくとも一部は、二進値0および二進値1以外の値を表す。この方法は、コンピューティング装置を用いて、デジタル音声データの複数の特徴値を複数の参照歌曲の中の各参照歌曲の複数の特徴値と比較することによって、複数の参照歌曲から、デジタル音声データの複数の特徴値に対応する一部の参照歌曲を複数の候補歌曲として選択することを含む。この方法は、コンピューティング装置を用いて、デジタル音声データの複数の特徴値を複数の候補歌曲の中の各参照歌曲の複数の特徴値と比較することによって、デジタル音声データの複数の特徴値が特定の参照歌曲の複数の特徴値に最も関連していると判断することを含む。この方法は、デジタル音声データの複数の特徴値が特定の参照歌曲の複数の特徴値に最も関連しているという判断に応答して、コンピューティング装置を用いて、特定の参照歌曲を示す表記を出力することを含む。
【0047】
実施形態41は、実施形態40に記載のコンピュータによって実施される方法である。この場合、音楽特徴決定プロセスは、音楽の特徴を決定するように訓練された機械学習システムによって実行される。
【0048】
実施形態42は、実施形態40または41のいずれか1つに記載のコンピュータによって実施される方法である。この場合、デジタル音声データの複数の特徴値を複数の参照歌曲の中の各参照歌曲の複数の特徴値と比較することは、別のコンピューティング装置に歌曲特徴データを要求するためのリクエストを送信することなく、コンピューティング装置によって格納された複数の参照歌曲の中の各参照歌曲の複数の特徴値にアクセスすることによって実行される。
【0049】
実施形態43は、実施形態40から42のいずれか1つに記載のコンピュータによって実施される方法である。この場合、デデジタル音声データの複数の特徴値を、二進値0および1に限定されない値から二進値0および1に限定された値に変換することをさらに含み、デジタル音声データの複数の特徴値を、複数の参照歌曲の中の各歌曲の複数の特徴値と比較することは、(a)二進値0および二進値1に限定されたデジタル音声データの特徴値と、(b)二進値0および二進値1に限定された複数の歌曲の中の各歌曲の特徴値との比較を含む。
【0050】
実施形態44は、実施形態40から43のいずれか1つに記載のコンピュータによって実施される方法である。この場合、デジタル音声データの複数の特徴値を、複数の候補歌曲の中の各参照歌曲の複数の特徴値と比較することは、(a)二進値0および二進値1以外の値を表す実数を含むデジタル音声データの特徴値と、(b)二進値0および二進値1に限定された複数の候補歌曲の中の各参照歌曲の特徴値との比較を含む。
【0051】
実施形態45は、実施形態40から44のいずれか1つに記載のコンピュータによって実施される方法である。この場合、複数の参照歌曲の中の参照歌曲の参照歌曲特徴値は、各特徴値が二進値1または二進値0に限定されるように、二進値1または二進値0に限定される。
【0052】
実施形態46は、実施形態40から45のいずれか1つに記載のコンピュータによって実施される方法である。この場合、複数の参照歌曲は、少なくとも1万曲の参照歌曲を含み、参照歌曲特徴データは、少なくとも1万曲の参照歌曲の音声特徴を識別する。
【0053】
実施形態47は、実施形態40から46のいずれか1つに記載のコンピュータによって実施される方法である。この場合、コンピューティング装置を用いて、音楽判断プロセスに従って、デジタル音声データが音楽を表すか否かを判断することをさらに含み、コンピューティング装置は、音楽判断プロセスに従って、デジタル音声データが音楽を表すことを判断した後、デジタル音声データの複数の特徴値を、複数の参照歌曲の中の各参照歌曲の複数の特徴値と比較する。
【0054】
実施形態48は、実施形態40から47のいずれか1つに記載のコンピュータによって実施される方法である。この場合、周波数領域形式は、第1周波数領域形式であり、周波数領域変換プロセスは、第1周波数領域変換プロセスであり、デジタル音声データが音楽を表すか否かを判断することは、第2周波数領域変換プロセスにおいて、デジタル音声データを時間領域形式から第2周波数領域形式に変換することと、第2周波数領域形式のデジタル音声データを受信し、デジタル音声データが音楽を表すか否かを示す表記を出力する音楽特徴決定プロセスにおいて、第2周波数領域形式のデジタル音声データを使用することとを含む。
【0055】
実施形態49は、実施形態47または48のいずれか1つに記載のコンピュータによって実施される方法である。この場合、音楽判断プロセスは、音声が音楽を表すか否かを判断するように訓練された機械学習システムを実行することを含む。
【0056】
実施形態50は、実施形態47から49のいずれか1つに記載のコンピュータによって実施される方法である。この場合、コンピューティング装置は、複数の参照歌曲の中の各参照歌曲の複数の音声特徴を識別する参照歌曲特徴データにアクセスすることなく、デジタル音声データが音楽を表すか否かを判断する。
【0057】
実施形態51は、実施形態47から50のいずれか1つに記載のコンピュータによって実施される方法である。この場合、コンピューティング装置を用いて、音楽判断プロセスに従ってデジタル音声データが音楽を表すか否かを判断することは、デジタル音声データが音楽を表すことを判断する前に、音楽判断プロセスを開始するためのユーザ入力を受信することなく、コンピューティング装置を用いて、デジタル音声データが音楽を表さないことを複数回判断することを含む。
【0058】
実施形態52は、実施形態47から51のいずれか1つに記載のコンピュータによって実施される方法である。この場合、第2周波数領域形式と第1周波数領域形式は、異なる数の周波数ビンを解析する、
実施形態53は、実施形態47から52のいずれか1つに記載のコンピュータによって実施される方法である。この場合、デジタル音声データが音楽を表すか否かを判断することは、コンピューティング装置の第1プロセッサによって実行され、デジタル音声データの複数の特徴値を、複数の参照歌曲の中の各参照歌曲の複数の特徴値と比較することは、コンピューティング装置の第2プロセッサによって実行され、デジタル音声データの複数の特徴値を、複数の候補歌曲の中の各参照歌曲の複数の特徴値と比較することは、コンピューティング装置の第2プロセッサによって実行される。
【0059】
実施形態54は、実施形態53に記載のコンピュータによって実施される方法である。この場合、第1プロセッサは、第2プロセッサよりも低い電圧またはワット数で動作する。
【0060】
実施形態55は、実施形態53または54のいずれか1つに記載のコンピュータによって実施される方法である。この場合、第2プロセッサは、第1プロセッサが動作するクロック信号より少なくとも一桁速いクロック信号で動作する。
【0061】
実施形態56は、実施形態40から55のいずれか1つに記載のコンピュータによって実施される方法である。この場合、特定の参照歌曲を示す表記を出力することは、ユーザ入力によって歌曲識別プロセスを実行するようにコンピューティング装置を促すことなく、連続した歌曲識別プロセスを有効にすることによって、コンピューティング装置のロック画面、コンピューティング装置の常時オン画面、またはコンピューティング装置のロック解除画面に表示された通知に、特定の参照歌曲の名前を提示することを含む。
【0062】
実施形態57は、コンピュータシステムに関する。このコンピュータシステムは、1つ以上のプロセッサと、1つ以上のプロセッサによって実行されると、実施形態40から56のいずれか1つに記載の方法を実行させる命令を含む1つ以上のコンピュータ可読装置とを含む。
【0063】
1つ以上の実施例の詳細は、添付の図面および以下の説明に記載されている。他の特徴、目的および利点は、説明および図面ならびに特許請求の範囲から明らかになるであろう。
【図面の簡単な説明】
【0064】
【
図1】自動音楽判断および歌曲識別を実行するためのコンピューティング装置と、コンピューティング装置に参照歌曲データを提供するためのリモートサーバシステムとを示す図である。
【
図2】例示的なコンピューティング装置の現在環境に音楽が再生されていることを検出および判断するために使用された例示的なコンピューティング装置の構成要素、動作およびデータ構造を示す概念図である。
【
図3A】例示的なコンピューティング装置の現在環境に音楽が再生されていることを判断するための例示的なプロセスを示す図である。
【
図3B】例示的なコンピューティング装置の現在環境に音楽が再生されていることを判断するための例示的なプロセスを示す図である。
【
図4】参照歌曲データを受信および格納し、例示的なコンピューティング装置の現在環境に再生されている歌曲を識別するために使用される例示的なコンピューティング装置の構成要素、動作およびデータ構造を示す概念図である。
【
図5】参照歌曲データを受信および格納するための例示的なプロセスを示す図である。
【
図6A】例示的なコンピューティング装置の現在環境に再生されている歌曲を識別するための例示的なプロセスを示す図である。
【
図6B】例示的なコンピューティング装置の現在環境に再生されている歌曲を識別するための例示的なプロセスを示す図である。
【
図7】例示的なコンピューティング装置によって実行された例示的な候補歌曲識別プロセスを示す概念図である。
【
図8】コンピューティング装置によって提示され、識別された歌曲が周囲環境に再生されていることを示す例示的なユーザインターフェイスを示す図である。
【
図9】本明細書に記載されたシステムおよび方法を実施するシステム例を示す概念図である。
【
図10】本明細書に記載されたシステムおよび方法をクライアントまたは1つ以上のサーバとして実装するための例示的なコンピューティング装置を示すブロック図である。
【発明を実施するための形態】
【0065】
詳細な説明
様々な図面において、同様の参照記号は、同様の要素を示す。
【0066】
本明細書は、一般的に、検出された周囲音声が音楽を表すまたは含むことを判断した後、周囲音声に含まれた歌曲を識別するためのメカニズムを説明する。この開示は、まず、
図1を参照してこのプロセスの要点を説明し、次に
図2~10を参照して当該プロセスの追加の詳細を提供する。
【0067】
図1は、自動音楽判断および歌曲識別を実行するためのコンピューティング装置100と、コンピューティング装置100に参照歌曲データを提供するためのリモートサーバシステム150とを示している。コンピューティング装置100は、
図1においてタッチスクリーンスマートフォンとして示されているが、コンピューティング装置100は、他の種類のモバイルコンピューティング装置または非モバイルコンピューティング装置、例えば、タブレット、スマートウォッチ、デスクトップコンピュータおよびスマート家電であってもよい。
【0068】
コンピューティング装置100は、音声データ102を連続的に記録し、音声データ102を解析することによって、検出された周囲音声に音楽が含まれているか否かを判断するように構成されている。音声データ102は、マイクロフォンを用いてアナログ形式に記録され、その後、低電力プロセッサ104に提供される。低電力プロセッサ104は、音声データ102をアナログ形式からデジタル形式に変換する。
【0069】
低電力プロセッサ104は、デジタル形式の音声データ102をバッファに格納し、音声データ102を容易に解析するように、(例えば、音声データ102に対して高速フーリエ変換を実行することによって)音声データ102を時間領域形式から周波数領域形式に変換する。低電力プロセッサ104は、一定の間隔(例えば、10ミリ秒ごと、20ミリ秒ごと、40ミリ秒ごと、または別の適切な値)で、この変換プロセスを定期的に実行することができる。高速フーリエ変換は、上記の間隔よりも長い時間窓上で動作することができる(例えば、10ミリ秒の間隔で25ミリ秒の時間窓上で動作することができる)。
【0070】
低電力プロセッサ104は、一定の秒数(例えば、5秒、10秒、20秒、または別の値)の配列をバッファに保存し、最後の秒数(例えば、5秒)よりも長い各間隔(例えば、10ミリ秒の間隔、20ミリ秒の間隔、40ミリ秒の間隔)に対して、コンピューティング装置は、異なる周波数範囲の複数の「ビン」(例えば、32ビン、64ビン、128ビン)の各々の周波数コンテンツのパワーを特定する。バッファは、一定の秒数(例えば、5秒)よりも古い配列が新たに生成された配列によって置換されるような循環型バッファであってもよい。低電力プロセッサ104は、このプロセスを連続的に(すなわち、プロセスを開始するためのユーザの反復入力を必要せず、定期的に繰り返して)実行することができる。
【0071】
低電力プロセッサ104は、一定の間隔(例えば、1秒ごと、2秒ごと、5秒ごと)で、5秒間のバッファを解析することによって、最近取得した音声データ102がコンピューティング装置100の周囲環境で再生されている音楽を表すか否かを判断する。いくつかの例において、この解析は、低電力プロセッサ104上で動作する機械学習システム、例えば重畳型ニューラルネットワークによって実行される。機械学習システムは、数万個の音声録音および各音声録音が音楽を表すか否かを示す表記を機械学習システムに入力することによって、別個のコンピューティングシステム上で訓練される。これらの入力は、最終的に機械学習システムを訓練し、訓練された機械学習システムは、(例えば、機械学習システムの構成データを転送することによって)コンピューティング装置100および類似する他の装置に転送することができる。コンピューティング装置100は、機械学習システムの随時更新を受信することができる。
【0072】
低電力プロセッサ104は、各間隔(例えば、1秒ごと、2秒ごと、または5秒ごと)で、音楽推定結果(例えば、信頼値および/または「はい」または「いいえ」という判断)のバッファを生成することによって、音声データ102が音楽を表すか否かを識別することができる。低電力プロセッサ104は、これらの音楽推定結果を別のバッファに格納することができ、音楽推定結果の最近の履歴を解析することによって、これらの音楽推定結果が、音楽がコンピューティング装置100を配置している周囲環境に実際に再生されていることを示す表記を出力するための所定の基準を満たしているか否かを判断することができる。いくつかの例において、低電力プロセッサ104は、過去の判断の少なくとも特定の部分(例えば、最後の7つの1秒判断のうち5つ)が「はい」(すなわち、検出された周囲音声が音楽を含むこと)を示す場合、音楽が再生されていることを示す結果を出力することができる。7つの個別の判断に対するこの「表決」(voting)は、例えば、低電力プロセッサ104によって出力された音楽判断結果の信頼性を高め、(例えば、テレビ広告において)2秒または3秒のみの音楽クリップが再生されている場合に、低電力プロセッサ104が、音楽が再生されていることを示さないことを保証する。表決は、いくつかの偽陽性分類が存在する場合にも有用である。
【0073】
低電力プロセッサ104は、検出された周囲音声に音楽が含まれていることを判断した後、高電力プロセッサ110に命令108を送信して、高出力プロセッサ110に再生されている歌曲を識別させる。また、低電力プロセッサ104は、音楽が再生されていることを判断したときに基づいた基礎音声データ106を高電力プロセッサ110に送信する。低電力プロセッサ104は、時間領域形式の基礎音声データ106を送信し、高電力プロセッサは、低電力プロセッサ104によって生成された音声データ102の表現よりも高い解像度の周波数領域表現を生成することができる。低電力プロセッサ104が高電力プロセッサ110に送信したバッファは、分類窓とは異なるサイズであってもよい(例えば、分類が最後の5秒間に実行されても、バッファは、最後の8秒間であってもよい)。
【0074】
高電力プロセッサ110は、音声データ106を受信し、音声データ106の解析を行うために、音声データ106を周波数領域形式に変換する。高速フーリエ変換プロセスを用いて周波数領域変換を実行することによって、音声データ106の比較的高解像度の周波数領域表現を生成することができる。この高解像度の周波数領域表現は、(例えば、ビンの数に対応する長さを有する配列を生成するために)各変換に対応する特定の数のビン(例えば、256ビン、512ビン、1024ビン)を含む。高電力プロセッサ110は、低電力プロセッサ104から受信した音声データ106に対して、一定の間隔(例えば、46ミリ秒の間隔、92ミリ秒の間隔、184ミリ秒の間隔)で周波数領域変換プロセスを実行することができる。高電力プロセッサ110は、生成された配列をバッファに格納することができる。したがって、高電力プロセッサ110は、低電力プロセッサ104から時間領域形式の音声データ106を取得し、周波数領域形式の音声データ106を表す値の配列をバッファに格納する。
【0075】
次に、高電力プロセッサ110は、バッファに格納された周波数領域形式の音声データ106を解析することによって、音声データ106の特徴を決定する。例えば、高電力プロセッサ110は、周波数領域形式の音声データ106を、特徴値セットを生成するように訓練された機械学習システム(例えば、ニューラルネットワーク)に提供することができる。各特徴値セットは、音声の特徴を決定するための一定数の値(例えば、48個の値、96個の値、192個の値、または別の適切な数の値)を有する。本実施例において、高電力プロセッサ110は、単一セットの値を生成してバッファ内の音声データ106の全ての特徴を決定するのではなく、バッファの全体に対して1秒の間隔で特徴決定プロセスを実行し、一回に音声データ102の2秒間の特徴を決定することができる。よって、バッファの長さが8秒である場合、高電力プロセッサ110は、7セットの特徴値(1つのセット:0~2秒、次のセット:1~3秒、別のセット:2~4秒、以下同様)を生成する。各特徴値は、「浮動」値(float value)に含まれている実数(例えば、小数部分が「783」である実数0.783)であってもよい。機械学習システムを用いてバッファ内の音声データ106を解析する前に、高電力プロセッサ110は、例えば、周波数ビンの重み付けまたは特徴スケーリング/正規化(例えば、0の平均、1の標準偏差)を行うことによって、バッファ内の値を処理することができる。
【0076】
高電力プロセッサ110は、このような特徴データを作成し、コンピューティング装置100が記録した音声データ106を、同様に作成され、コンピューティング装置100によって装置上歌曲データベース116に保存されている数千曲の歌曲の参照歌曲特徴データ118と比較する。コンピューティング装置100は、リモートサーバシステム150から参照歌曲特徴データ118を受信し、装置上歌曲データベース116に保存することができる。リモートサーバシステム150は、数十万または数百万曲の歌曲の特徴データを格納するグローバル歌曲データベース120を含むことができ、歌曲選別プロセス122を用いてコンピューティング装置100に送信する歌曲特徴データを選択することができる。
【0077】
例えば、グローバル歌曲データベース120は、世界中で人気のある歌曲の特徴データを含むが、一部の歌曲の参照歌曲特徴データ118のみをコンピューティング装置100に送信してもよい。例えば、リモートサーバシステム150によってコンピューティング装置100が北米に位置していると判断された場合、コンピューティング装置100に送信される参照歌曲特徴データ118は、北米で人気のある歌曲のみを含むことができる。コンピューティング装置100が位置する地理区域に異なる歌曲が人気になるため、リモートサーバシステム150は、参照歌曲データ118の更新リストをコンピューティング装置100に定期的に送信することができる。グローバル歌曲データベース120の全ての歌曲から参照歌曲特徴データ118を選択するための基準は、地理位置以外の要素、例えば、ユーザの年齢(例えば、若い人にポップミュージック、年寄の人にクラシック歌曲を提供する)、装置の記憶容量(例えば、より大きい容量を有する装置またはユーザがより多くの歌曲特徴データの記憶を許可した装置により多くの歌曲データを提供する)、日中時間(例えば、ユーザの好みに基づいて、夜にディスコ音楽、朝にトレーニング歌曲を提供する)、年間時間(例えば、12月により多くの祝日音楽を提供する)、ユーザの趣味(例えば、ソーシャルネットワークのプロファイルまたはメッセージから収集された情報に基づいて音楽を提供する)の組み合わせに基づくことができる。このような個人データの収集および使用は、ユーザのオプトインリクエスト(opt-in request)に応じて実行される。したがって、ユーザが個人データを参照歌曲特徴データ118のカスタマイズに使用することを明確に認めない限り、個人データが利用または使用されない。参照歌曲特徴データ118は、上記で説明したように、コンピューティング装置100上で記録された音声データ106に対して実行されたプロセスと類似または同様の特徴決定プロセスを用いて生成されてもよい。換言すれば、リモートサーバシステム150は、全ての参照歌曲に対して、参照歌曲の1秒の間隔で一定数の特徴値(例えば、48個の値、96個の値、192個の値、または別の適切な値)を生成することができる。参照歌曲特徴データ118は、二進値で保存され、各特徴値は、公称値から切り捨てまたは切り上げることによって「0」または「1」にする。これによって、記憶スペースを節約し、迅速な比較を容易にする。一方、コンピューティング装置100によって生成された特徴データは、実数(「浮動」値、例えば、0.783に含まれた実数)として格納される。
【0078】
高電力プロセッサ110は、(例えば、機械学習システムを用いて)音声データ106の特徴を決定することによって、音声データ106を歌曲特徴データに変換すると、その歌曲特徴データを参照歌曲特徴化データ114と比較して、記録された音声データ106が装置上歌曲データベース116内の歌曲と一致するか否かを判断することができる。この比較プロセスは、2つのステップで実行されてもよい。第1ステップにおいて、高電力プロセッサ110は、装置上歌曲データベース116内の全ての歌曲に対して軽量比較を実行することによって、コンピューティング装置によって記録された音声データ106に類似する1組の候補歌曲を特定する。これらの候補歌曲は、第2ステップに実行されるより詳細な解析の対象である。
【0079】
いくつかの例において、候補歌曲を特定するための軽量比較は、音声データ106から生成された特徴値の一部(例えば、64個の値、48個の値、32個の値、または別の適切な数の値)を選択することと、(端数処理プロセスを用いて)各々の特徴値を二進値「0」または二進値「1」に変換することとを含む。次に、高電力プロセッサ110は、数千個曲の参照歌曲の各歌曲の1秒間隔ごとに、記録された音声データ106から生成された二進値特徴値の一部を、装置上歌曲データベース116に格納された対応する64個の二進値特徴値と比較する。この比較プロセスは、数十万回の比較を含む。例えば、記録された音声106から生成された特徴値セットが7つであり、各々の特徴値セットは、装置上歌曲データベース116に保存されている各歌曲の1秒間隔の特徴値セットと比較される。例えば、各歌曲の長さが約200秒であると仮定する場合、この比較プロセスは、装置上歌曲データベース116内の各歌曲に対して1400回の比較を実行する。比較される値の両方が二進値であり、プロセッサ比較命令を使用できるため、高電力プロセッサ110は、これらの比較を比較的迅速に実行することができる。
【0080】
高電力プロセッサ110は、候補歌曲(例えば、記録された音声データ106と一致する歌曲または類似度比較プロセスによって生成された高い類似度スコアを有する歌曲)のリストを生成した後、記録された音声データ106と候補歌曲とのより詳細な比較を含む第2ステップを実行することができる。このより詳細な比較は、(候補識別プロセスと同様に、二進表現ではなく)実数値形式の全ての特徴値(例えば、48個の値、96個の値、192個の値、または別の適切な数の値)を、装置上歌曲データベース内の対応する特徴値と比較することを含む。
【0081】
比較プロセスに実数値(例えば、小数点を有する値)を使用することによって、単に「一致」または「不一致」という結果ではなく、記録された音声データ106の特徴値と参照歌曲特徴データ118の対応する参照歌曲の特徴値との間の類似度を示す値の配列を含む結果を出力することができる。数十万回の比較を実行した後、高電力プロセッサ110は、記録された音声データ106と最も高い類似度を有する候補歌曲(少なくとも候補歌曲の特徴値と記録された音声データ106の特徴値との間の類似度が所定の閾値を超えるべきである)を、周囲環境に再生されている歌曲として特定する。
【0082】
いくつかの例において、コンピューティング装置100は、周囲環境に再生されている歌曲を特定したことを視覚的または聴覚的に表示する。例えば、コンピューティング装置100は、歌曲情報112(例えば、歌曲の曲名および歌手の名前)をコンピューティング装置100のディスプレイ上に表示することができる。例えば、コンピューティング装置100は、歌曲情報112を通知画面またはバックグラウンドディスプレイの一部に表示することができる。
【0083】
以下、本開示は、残りの図面を参照して、このプロセスをさらに詳細に説明する。
図2は、例示的なコンピューティング装置の現在環境に音楽が再生されていることを検出および判断するために使用された例示的なコンピューティング装置の構成要素、動作およびデータ構造を示す概念図である。
図2に示すように、例えば、(
図1に示された低電力プロセッサ104と同様の)低電力プロセッサ202を用いて、デジタル音声データを連続的に処理し、デジタル音声データが音楽を表すか否かを判断することができる。例えば、低電力プロセッサ202は、装置のマイクロフォンからの信号を処理するように構成された専用オーディオコーデックチップに含まれた専用デジタル信号プロセッサ(DSP)である。低電力プロセッサ202は、メインプロセッサ(例えば、中央処理装置(CPU))よりも低い電圧またはワット数で動作し、メインプロセッサのクロック信号よりも少なくとも5倍、10倍、20倍、または30倍遅いクロック信号で動作する。したがって、低電力プロセッサ202は、低い量の装置バッテリ電力(例えば、バッテリ容量の1%未満)を消費しながら、装置のマイクロフォンによって検出された周囲音声を継続的に監視することができる。検出された周囲音声に音楽が含まれていることを判断するために使用された低電力プロセッサ202の構成要素、動作およびデータ構造は、
図3Aおよび3Bを参照してさらに詳細に説明される。
【0084】
図3Aおよび3Bは、例示的なコンピューティング装置の現在環境に音楽が再生されていることを判断するための例示的なプロセスを示す図である。一般的に、具体的なユーザ入力がなくても、このプロセスを継続的に実行することができる。例えば、ユーザは、プロセスを開始する前の適切な時点で、装置の構成設定を変更することによって、装置の電源がオンになったときにプロセスを継続的に実行する指示を装置に提供することができる。その後、装置は、さらなるユーザ入力がなくても、装置がオンになるたびにこのプロセスを実行することができる。検出された周囲音声に音楽が含まれていることを判断するための動作は、例えば、(
図2に示された)低電力プロセッサ202によって実行することができる。
【0085】
ボックス302において、マイクロフォンによって捕捉された音声入力を受信する。例えば、(
図1に示された)コンピューティング装置100は、マイクロフォンによって検出された周囲音声を継続的に監視および記録することができる。
【0086】
ボックス304において、音声入力をアナログ形式からデジタル形式に変換する。
図2を参照して、周囲音声信号(例えば、装置のマイクロフォンによって生成されたアナログ音声信号)は、アナログ-デジタル(A/D)コンバータ204によって受信される。アナログ-デジタルコンバータ204は、アナログ音声信号を時間領域形式のデジタル音声データに変換することができる。いくつかの例において、アナログ-デジタルコンバータ204は、低電力プロセッサ202とは別個の集積回路として実装されてもよい。いくつかの例において、アナログ-デジタルコンバータ204は、低電力プロセッサ202上に実装されてもよい。
【0087】
ボックス306において、デジタル音声データをデジタル音声バッファに保存する。例えば、アナログ-デジタルコンバータ204は、デジタル音声データの連続ストリームを出力することができ、このデジタル音声データの連続ストリームは、低電力プロセッサ202のデジタル音声バッファ206に保存される。いくつかの例において、デジタル音声バッファ206は、特定の秒数(例えば、4秒、8秒、16秒)より古いデジタル音声が新たに受信されたデジタル音声データによって上書きされるような循環型バッファであってもよい。
【0088】
ボックス308において、デジタル音声データが音楽を表すか否かを判断する。例えば、低電力プロセッサ202は、デジタル音声バッファ206からのデジタル音声データストリームを連続的に処理することができ、この処理に基づいて、デジタル音声データの特定の断片が音楽を表すか否かを定期的に判断することができる。
【0089】
ボックス310において、デジタル音声データが音楽を表すか否かを判断することは、第1周波数領域変換プロセスにおいて、デジタル音声データを時間領域形式から第1周波数領域形式に変換することを含む。例えば、低電力プロセッサ202は、周期的に(例えば、10ミリ秒、20ミリ秒、40ミリ秒または別の適切な時間間隔で)周波数変換プロセス208を実行することができる。これによって、デジタル音声バッファ206からの特定の時間窓(例えば、25ミリ秒、50ミリ秒、100ミリ秒または別の適切な時間窓)のデジタル音声データは、時間領域形式から第1周波数領域形式に変換される。本実施例において、低電力プロセッサ202は、20ミリ秒ごとに1回に、デジタル音声バッファ206からの最近の50ミリ秒のデジタル音声をサンプリングおよび処理するように、周波数変換プロセス208を実行する。例えば、周波数変換プロセス208は、特定数のビン(例えば、16個のビン、32個のビン、64個のビン、または別の適切な数のビン)を含むデータフレーム210を出力する。各ビンは、周波数範囲に関連付けられ、サンプリング期間中に周波数範囲内の音声の強度を表す関連値を有する。本実施例において、データフレーム210は、16個のビンを含み、各ビンは、音声範囲(例えば、可聴音声範囲)の異なる部分に関連付けられ、音声範囲の一部の音声の強度を表す浮動値を有する。いくつかの例において、周波数変換プロセス208は、高速フーリエ変換(FFT)アルゴリズムを用いて、サンプリングされたデジタル音声データを時間領域形式から第1周波数領域形式のデータフレームに変換することができる。
【0090】
ボックス312において、デジタル音声データが音楽を表すか否かを判断することは、第1周波数領域形式のデジタル音声データをバッファに格納することを含む。例えば、低電力プロセッサ202は、(例えば、デジタル音声バッファ206の最近の50ミリ秒のデジタル音声を表す)データフレーム210を周波数変換バッファ212に追加することができる。周波数変換バッファ212は、過去のサンプリング期間中に周波数変換プロセス208によって生成された一連のデータフレームを含む。本実施例において、周波数変換バッファ212は、過去の5秒間に亘って生成されたデータフレームを含む。いくつかの例において、周波数変換バッファ212は、特定の秒数(例えば、5秒)よりも古いデータフレームが新たに生成されたデータフレームによって上書きされるような循環型バッファであってもよい。
【0091】
ボックス314において、デジタル音声データが音楽を表すか否かを判断することは、第1周波数領域形式のデジタル音声データを、第1周波数領域形式のデジタル音声データを受信する音楽判断プロセスに提供することを含む。例えば、音楽判断プロセスの一部として、低電力プロセッサ202は、周波数変換バッファ212に保存されている過去に生成されたデータフレームの一部または全体に対して、音楽推定プロセス214を定期的に(例えば、毎秒1回に)実行することができる。本実施例において、音楽推定プロセス214は、第1周波数領域形式で格納された音声データからサンプリングされた最後の5秒の音声データを含む周波数変換バッファ212の全体を入力として受信する。
【0092】
ボックス316において、音楽判断プロセスは、音声データが音楽を表すか否かを判断するように訓練された機械学習システムを含む。例えば、周波数変換バッファ212が音楽を表すか否かを判断するために、音楽推定プロセス214は、オフラインで(例えば、予めサーバシステム150で)訓練され、低電力プロセッサ202に提供された機械学習モデルを参照することを含むことができる。機械学習モデルを用いて、第1周波数領域形式のデジタル音声データ(例えば、周波数変換バッファ212内の一連のデータフレーム)が音楽を表すまたは音楽を表さないか否かに関して二項分類を実行することができる。いくつかの例において、機械学習モデルは、低電力プロセッサ202上で連続的に動作する小さな量子化重畳型ニューラルネットワークであってもよい。
【0093】
ボックス320において、デジタル音声データが音楽を表すか否かを判断することは、デジタル音声データが音楽を表すか否かを示す値を音楽推定結果バッファ216に保存することを含む。例えば、音楽推定プロセス214を実行した後、低電力プロセッサ202は、第1周波数領域形式のデジタル音声データが音楽を表すか否かを示す二進値218(例えば、音楽を示す場合「1」、音楽を示ない場合「0」)を音楽推定結果バッファ216に追加することができる。いくつかの例において、音楽推定結果バッファ216は、特定数(例えば、7つ)の最新の音楽推定結果値が保存され、より古い決定値が新しい決定値によって上書きされるような循環型バッファであってもよい。
【0094】
ボックス322において、デジタル音声データが音楽を表すか否かを判断することは、過去の音楽推定結果がデジタル音声が音楽を表すことを示す表記を出力するための所定の基準を満たすか否かを判断することを含む。例えば、二進値218を音楽推定結果バッファ216に追加した後、低電力プロセッサ202は、音楽推定結果バッファ216内の過去の音楽推定結果の一部または全体を入力として受信する音楽判断プロセス220を実行することができる。本実施例において、音楽判断プロセス220は、1秒の間隔で生成された過去の7つの音楽推定結果を含む音楽推定結果バッファ216の全体を入力として受信する。いくつかの例において、デジタル音声が音楽を表すことを示す表記を出力するための所定の基準は、音楽推定結果バッファ216内の過去の音楽推定結果の閾値数(例えば、7つのうち5つ)が第1周波数領域形式のデジタル音声が音楽を表すことを示すか否かを判断することを含む。いくつかの例において、デジタル音声が音楽を表すことを示す表記を出力するための所定の基準は、音楽推定結果バッファ216内の過去の連続した音楽推定結果の閾値数(例えば、4つの連続した結果)が第1周波数領域形式のデジタル音声が音楽を表すことを示すか否かを判断することを含む。
【0095】
ボックス324において、デジタル音声データが音楽を表すか否かを判断することは、デジタル音声データが音楽を表すことを示す表記を出力することを含む。例えば、音楽判断プロセス220によって第1周波数領域形式のデジタル音声データが音楽を表すという判断に応答して、低電力プロセッサ202は、音声を解析するための命令222およびデジタル音声バッファ206からの対応するデジタル音声224を(
図4に示された)高電力プロセッサ402に提供することができる。本実施例において、(例えば、時間領域形式で記録された過去8秒のデジタル音声データを含む)デジタル音声バッファ206の全てのコンテンツは、高電力プロセッサに提供され、さらに処理される。
【0096】
ボックス326において、デジタル音声データが音楽を表すか否かを判断することは、デジタル音声データが音楽を表すか否かを判断する前に、音楽判断プロセスを開始するためのユーザ入力を受信することなく、デジタル音声データが音楽を表さないことを複数回(例えば、数千回)に判断することを含む。例えば、コンピューティング装置100は、音楽の周囲音声を継続的に監視することによって、音楽が存在しないと判断することができる。音楽が存在する場合(例えば、音楽が装置の近くに再生される場合、または装置が音楽のある場所に移動される場合)、コンピューティング装置100は、装置のユーザから音楽を判断するプロセスを開始するための入力なしで、音楽を検出することができる。
【0097】
図4は、参照歌曲データを受信および格納し、例示的なコンピューティング装置の現在環境に再生されている歌曲を識別するために使用される例示的なコンピューティング装置の構成要素、動作およびデータ構造を示す概念図である。
図4に示すように、(例えば、
図1に示された高電力プロセッサ110と同様の)高電力プロセッサ402を用いて、再生中の歌曲を示すデータが(例えば、
図1に示された装置上歌曲データベース116と同様の)装置上歌曲データベース404に格納された歌曲を示すデータと一致するか否かを判断することができる。高電力プロセッサ402は、例えば、装置のメインプロセッサ(例えば、中央処理装置(CPU))であってもよい。高電力プロセッサ402は、(
図2に示された)低電力プロセッサ202よりも高い電圧またはワット数で動作し、低電力プロセッサ202のクロック信号より少なくとも1桁速い(例えば、5倍、10倍、20倍、または30倍速い)クロック信号で動作する。いくつかの例において、高電力プロセッサ402は、2つ以上のCPUコアを含んでもよい。いくつかの例において、装置上歌曲データベース404は、永続的なメモリを使用して実装することができ、装置上歌曲データベース404内のデータの一部または全ては、歌曲識別プロセスを促進するように、装置のランダムアクセスメモリ(RAM)にロードすることができる。参照歌曲データを受信し、装置上歌曲データベース404に格納するための要素、操作およびデータ構造は、
図5を参照してさらに詳細に説明する。高電力プロセッサ402によって使用され、再生中の歌曲を識別するための要素、操作およびデータ構造は、
図6Aおよび6Bを参照してさらに詳細に説明する。
【0098】
図5は、参照歌曲データを受信および格納するための例示的なプロセスを示す図である。一般的に、このプロセスは、定期的に(例えば、毎日、毎週)実行することができ、装置の変更(例えば、装置の場所の変更)に応じて実行することができ、および/またはユーザ入力に応じて実行することができる。
図1を参照して、例えば、新しい歌曲を表すデータをグローバル歌曲データベース120に追加することができる。それに応じて、参照歌曲データ118は、コンピューティング装置100に提供され、装置上参照歌曲データベース116に格納される。別の例として、コンピューティング装置110の位置を変更することができる。それに応じて、コンピューティング装置110の現在位置に関連する参照歌曲データ118は、装置上参照歌曲データベース116に提供され、格納される。別の例として、コンピューティング装置110のユーザは、最新の参照歌曲データ118を装置上参照歌曲データベース116に保存する要求をトリガーするための特定の入力をサーバシステム150に提供することができる。
【0099】
ボックス502において、コンピューティング装置は、リモートコンピューティングシステムから参照歌曲特徴データを受信する。再び
図1を参照して、コンピューティング装置100は、例えば、サーバシステム150から参照歌曲データ118を受信する。サーバシステム150は、グローバル歌曲データベース120から、参照歌曲データ118によって表される歌曲を選択することができる。例えば、サーバシステム150は、歌曲選別プロセス122を用いて、装置の位置、装置ユーザの音楽趣味および他の関連要素に基づいて、コンピューティング装置100に送信する特定の歌曲セットを選択することができる。
【0100】
歌曲の参照歌曲特徴データは、歌曲の特徴を決定するためのデータを含む。このデータは、ニューラルネットワークを用いて、歌曲に含まれる一連の時間窓の各々の特徴ベクトルセットを生成する歌曲特徴プロセスによって生成される。一般的に、歌曲の特徴ベクトルセットを生成するプロセスは、(例えば、高速フーリエ変換(FFT)アルゴリズムを用いて)歌曲のデジタル音声を時間領域形式から周波数領域形式に変換することと、周波数領域形式のデータをニューラルネットワークに提供することによって、歌曲の識別特徴(fingerprint)を生成する。歌曲の識別特徴は、例えば、歌曲に含まれた各々の2秒窓の96個の特徴ベクトルセットを含むことができる。
【0101】
いくつかの例において、各々の特徴ベクトルに対して、平滑化プロセスを実行することができる。これによって、先行および/または後続の時間窓に対応する特徴ベクトル値に基づいて、所定の時間窓の特定の特徴ベクトル値を調整することができる。例えば、
平滑化された値[t]=
1×値[t-2]+
3×値[t-1]+
4×値[t]+
3×値[t+1]+
1×値[t+2]
いくつかの例において、特徴ベクトル値は、浮動値から二進値に変換することができる。例えば、特徴ベクトル値は、ゼロ平均値に分布されている正値および負値を含むことができる。例えば、各特徴ベクトル値を平滑化した後、これらの値を二進値に変換して、正値を真(例えば、1)にマッピングし、ゼロおよび負値を偽(例えば、-1)にマッピングすることができる。いくつかの例において、平滑化された値[t]は、特定の特徴ベクトルの各値に対して生成される。例えば、特徴ベクトル値を二値化および平滑化することによって、各歌曲のコンパクトな識別特徴を生成することができる。
【0102】
ボックス504において、複数の参照歌曲の中の各参照歌曲の複数の音声特徴を識別する参照歌曲特徴データを格納する。
図4を参照して、参照歌曲特徴データ(例えば、
図1に示された参照歌曲データ118)は、装置上歌曲データベース404に格納されてもよい。
【0103】
ボックス506において、格納された複数の参照歌曲の中の各参照歌曲の参照歌曲特徴データは、複数の音声特徴に対応する複数の参照歌曲特徴値を含む。本実施例において、歌曲の各2秒窓は、96個の歌曲特徴値に関連し、各々の歌曲特徴値は、異なる音声特徴に対応する。
【0104】
ボックス508において、格納された複数の参照歌曲の中の全ての参照歌曲の参照歌曲特徴データは、同じ量の音声特徴を有する。本実施例において、各歌曲は、96個の音声特徴を有する。 ボックス510において、複数の参照歌曲の全ての参照歌曲の参照歌曲特徴値は、二進値1または二進値0である(すなわち、各値は、二進値1または二進値0に限定される)。本実施例において、各歌曲および歌曲の各2秒窓の各歌曲特徴には、二進値1または二進値0が割り当てられる。
【0105】
ボックス512において、複数の参照歌曲は、少なくとも1万曲の参照歌曲を含み、参照歌曲特徴データは、少なくとも1万曲の参照歌曲の音声特徴を識別する。各々の歌曲がコンパクトでありながら詳細な識別特徴を有するため、例えば、装置上歌曲データベース404に大量の参照歌曲の識別特徴データを保存することができる。
【0106】
図6Aおよび6Bは、例示的なコンピューティング装置の現在環境に再生されている歌曲を識別するための例示的なプロセスを示す図である。一般的に、このプロセスは、(
図3Aおよび3Bを参照して上述したように)検出された周囲音声に音楽が含まれているという判断に応じて、コンピューティング装置によって自動的に開始されてもよい。例えば、(
図1に示された)コンピューティング装置100は、(
図1に示された)低電力プロセッサ104を用いて、可能な音楽を検出するための環境内の周囲音声を継続的に監視し、音楽が検出された場合のみ、コンピューティング装置100は、(
図1に示された)高電力プロセッサ110を用いて、複数の参照歌曲から、再生されている特定の歌曲を識別することができる。
【0107】
ボックス602において、音声を解析するための命令を受信する。例えば、(
図2に示された、
図1の低電力プロセッサ104と同様の)低電力プロセッサ202は、デジタル音声データが音楽を表すという判断に応じて、音声222を解析するための命令を(
図4に示された、
図1の高電力プロセッサ110と同様の)高電力プロセッサ402に提供することができる。
【0108】
ボックス604において、音声を解析するための命令を受信することは、対応するデジタル音声224を受信することを含むことができる。例えば、対応するデジタル音声224は、(
図2に示された)デジタル音声バッファ206のコンテンツの一部または全てを含むことができる。本実施例において、対応するデジタル音声224は、記録および変換された時間領域形式のデジタル音声データの過去の8秒を含む。このデジタル音声データは、低電力プロセッサ104が音楽が再生されているという判断を行うときに基づいた音声コンテンツと少なくとも同様であってもよい。
【0109】
ボックス606において、コンピューティング装置は、デジタル音声データが複数の参照歌曲の中の特定の参照歌曲を表すことを認識する。例えば、高電力プロセッサ402は、対応するデジタル音声224が、装置上歌曲データベース404内の歌曲のいずれかの参照歌曲特徴データと一致するか否かを判断することができる。
【0110】
ボックス608において、デジタル音声データが特定の参照歌曲を表すことを認識することは、第2周波数領域変換プロセスにおいて、デジタル音声データを時間領域形式から第2周波数領域形式に変換することと、変換されたデジタル音声データをバッファに格納することとを含むことができる。例えば、高電力プロセッサ402は、対応するデジタル音声224を時間領域形式から第2周波数領域形式に変換する周波数変換プロセス408を実行することができる。例えば、高電力プロセッサ402は、特定の間隔(46ミリ秒の間隔、69ミリ秒の間隔、92ミリ秒の間隔)で、特定の長さのサンプリング窓(例えば、92ミリ秒のサンプリング窓、138ミリ秒のサンプリング窓、184ミリ秒のサンプリング窓、または別の適切な長さのサンプリング窓)を用いて、対応するデジタル音声224に対して周波数変換プロセス408を実行することができる。各サンプリング窓において、周波数変換プロセス408は、対応するデータフレーム(例えば、データフレーム410)を出力する。このデータフレームは、特定数の周波数ビン(例えば、256ビン、512ビン、1024ビン、または別の適切な数の周波数ビン)に対応するデータ値を含み、各周波数ビンは、周波数範囲に関連する。各ビンの値は、サンプリング期間中に周波数範囲内の音声強度を表す。いくつかの例において、周波数変換プロセス408は、高速フーリエ変換(FFT)アルゴリズムを用いて、サンプリングされたデジタル音声データの一部を時間領域形式から第2周波数領域形式のデータフレームに変換することができる。生成された各データフレームは、例えば、高電力プロセッサ402によって、一連の周波数サンプルバッファ412に格納されてもよい。
【0111】
ボックス610において、異なる数の周波数ビンを解析するための第2周波数領域形式および第1周波数領域形式を生成するプロセスによって、第2周波数領域形式は、第1周波数領域形式とは異なる。ビンを計算する周波数範囲(例えば、各ビンを得るために、解析された周波数の幅および/または周波数の全幅)は、第2周波数領域形式と第1周波数領域形式との間で異なってもよい。本実施例に示されたように、(
図4に示された)高電力プロセッサ402によって実行され、音声周波数に対して一連の比較的高い解像度のデータフレーム(例えば、256個の周波数ビンを有するデータフレーム)を生成する周波数変換プロセス408に比べて、(
図2に示された)低電力プロセッサ202によって実行された周波数変換プロセス208は、音声周波数に対して一連の比較的低い解像度のデータフレーム(例えば、16個の周波数ビンを有するデータフレーム)を生成する。また、サンプリングレートは、2つの周波数変換プロセスの間に異なる場合がある。本実施例に示されたように、高電力プロセッサ402によって実行され、比較的長い時間窓(例えば、184ミリ秒)を有する一連のデータフレームを生成する周波数変換プロセス408に比べて、低電力プロセッサ202によって実行された周波数変換プロセス208は、比較的短い時間窓(例えば、50ミリ秒)を有する一連のデータフレームを生成する。
【0112】
ボックス612において、第2周波数領域形式のデジタル音声データは、第2周波数領域形式の音声データを受信する音楽特徴決定プロセスに提供される。例えば、高電力プロセッサ402は、周波数サンプルバッファ412を受信し、バッファに対して音楽特徴決定プロセス416を実行することができる。音楽特徴決定プロセス416は、1秒の間隔でサンプリングされた2秒窓上でバッファを処理する。本実施例において、歌曲特徴決定プロセス406は、各々の2秒窓に対して96個の歌曲特徴セット(例えば、特徴ベクトルまたは96個の値)を出力するため、8秒の周波数サンプルバッファ412に対して7セットの96個の歌曲特徴を生成する。いくつかの例において、音楽特徴決定プロセス406は、128個の歌曲特徴セットを出力する。様々な例において、窓間の間隔は、0.5秒または1秒である。
【0113】
ボックス614において、音楽の特徴を決定するように訓練された機械学習システムを用いて、音楽特徴決定プロセスを実行することができる。例えば、歌曲特徴セットを生成するために、音楽特徴決定プロセス416は、オフラインで(例えば、以前にサーバシステム150で)訓練され、高電力プロセッサ402に提供された機械学習モデルを参照することができる。機械学習モデルを用いて、音楽の前後セクションの歌曲特徴セットと共に、歌曲の周波数サンプリング窓(例えば、2秒窓)から将来に使用可能な歌曲特徴セット(例えば、特徴ベクトル)を生成することによって、歌曲を鑑別または識別することができる。いくつかの例において、機械学習モデルは、高電力プロセッサ402上で動作する小さな量子化重畳型ニューラルネットワークであってもよい。
【0114】
ボックス616において、デジタル音声データの複数の特徴値を出力することができる。例えば、歌曲特徴決定プロセス416の出力(例えば、8秒間の周波数サンプルバッファ412の7セットの96個の歌曲特徴)は、現在歌曲特徴418として装置のメモリに記憶および/または保存することができる。各歌曲特徴は、浮動値(例えば、0.443などの実数値)で表される。
【0115】
ボックス618において、デジタル音声データの複数の特徴値の二進表現を参照歌曲の複数の特徴値と比較することによって、複数の候補歌曲を選択する。選択された候補歌曲は、周囲音声の特徴値の二進表現に関連するまたは一致する歌曲である。例えば、高電力プロセッサ402は、候補識別プロセス420を実行することができる。候補識別プロセス420は、現在歌曲特徴418の一部または全てを受信し、装置上歌曲データベース404から参照された歌曲の音声特徴(例えば、特徴ベクトル)の一部または全てを受信し、比較することによって、一致する可能性がある複数の歌曲を識別する。本実施例において、候補識別プロセス420は、現在歌曲特徴418から一部の特徴(例えば、96個の特徴から48個の特徴)を選択し、各々の2秒窓に対応する値(例えば、7組の48個値)を受信し、各値を浮動値から二進値に変換する。また、候補識別プロセス420は、装置上歌曲データベース404に保存された歌曲の各々に対応する48個の音声特徴の各々の二進値を受信する。
【0116】
いくつかの例において、コンピューティング装置は、2秒歌曲特徴の窓が順番上に一致するか否かを考慮せず、各2秒間の現在歌曲特徴セットと各2秒間の参照歌曲特徴セットとを比較する。例えば、この比較は、現在歌曲特徴セットおよび参照歌曲特徴セットの連続性を考慮せず、各セットの現在歌曲特徴と他のセットの参照歌曲特徴との間のハミング距離を特定する。したがって、現在歌曲の8秒間の全てのバッファデータが対応する参照歌曲の8秒間のバッファデータと一致しなくても、現在歌曲の1つ以上の2秒窓のデータが参照歌曲の1つ以上の2秒窓のデータと一致した場合、コンピューティング装置は、参照歌曲をマッチング候補として特定することができる。
【0117】
いくつかの例において、参照歌曲に重みを付ける。これによって、全体としてより人気である(または特定のユーザに関連する基準、例えば、上述した地理位置、傾聴好みにより関連している)と判断された歌曲は、一致する可能性のある歌曲として特定される可能性が高くなる。
【0118】
図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を含む。比較704は、高電力プロセッサ402(
図4に示す)によって実行され、全ての歌曲に対して、現在歌曲の各特徴セットを参照歌曲の各特徴セットと比較することを含む。例えば、全ての歌曲に対して、現在歌曲の連続的な特徴セット702a~702gは、同じセット数(例えば、7)を有する参照歌曲の連続的な特徴セットと各々比較される。本実施例において、現在歌曲の7つの連続的な特徴セット702a~702gは、参照歌曲#1の7つの連続的な特徴セットと比較される。この比較は、参照セット712a(例えば、0~2秒間の歌曲の特徴)から始まり、参照セット712b(例えば、1~3秒の歌曲の特徴)、参照セット712c(例えば、2~4秒の歌曲の特徴)、参照セット712d(例えば、3~5秒の歌曲の特徴)、以下同様、6~8秒のバッファ部分の現在歌曲の特徴セット702gが参照歌曲の最後の2秒間の歌曲の特徴セット712nと比較されるまで実行される。
【0119】
いくつかの例において、現在歌曲の各特徴セットを参照歌曲の各特徴セットと比較することは、現在歌曲の連続的な特徴セットの各特徴セットと同じセット数(例えば、7)を有する参照歌曲の連続的な特徴セットの各特徴セットとの間のハミング距離を計算することを含み得る。例えば、ハミング距離を合計することによって、特定のオフセット位置にある特定の参照歌曲のスコアを計算することができる。特定のオフセット位置にある特定の参照歌曲が閾値を満たすスコアを有する場合(例えば、スコアが閾値よりも低い場合)、その歌曲を一致する可能性のある歌曲として特定し、候補歌曲リストに追加することができる。さらなる処理を容易にするように、参照歌曲と関連するオフセット位置との情報を(例えば、メモリに)保存することができる。
【0120】
いくつかの例において、候補識別プロセス420は、解析木を実行することを含む。解析木において、現在歌曲の特徴(二進値)は、解析木の入力として提供され、候補歌曲は、参照歌曲の特徴値に応じて解析木の枝に位置する。したがって、高電力プロセッサ110は、現在歌曲の特徴を、装置上歌曲データベース116内の全ての参照歌曲の全ての特徴と比較せず、解析木に移動して、現在歌曲の特徴を有するゼロ以上の候補歌曲を特定する。
【0121】
ボックス620において、デジタル音声データの複数の特徴値を、複数の参照歌曲の中の少なくとも一部の候補歌曲の各歌曲の複数の特徴値と比較する。再び
図4を参照して、例えば、高電力プロセッサ402は、歌曲識別プロセス422を実行することによって、候補歌曲のリスト(例えば、百曲の歌曲)から1つの一致する歌曲(または一致しない歌曲)を特定することができる。いくつかの例において、ボックス620の操作は、ボックス618で識別された候補歌曲セットに対して実行される。いくつかの例において、ボックス620の操作は、候補歌曲セットを予め識別することなく実行されてもよい。
【0122】
ボックス622において、デジタル音声データの特徴値を複数の参照歌曲の少なくとも一部の歌曲の中の各歌曲の複数の特徴値と比較することは、(a)実数であるデジタル音声データの特徴値と、(b)二進値0および二進値1に限定された複数の歌曲の少なくとも一部の歌曲の中の各歌曲の特徴値との比較を含む。例えば、歌曲識別プロセス422は、現在歌曲特徴418の一部または全てを受信することができ、装置上歌曲データベース404に保存され且つ候補歌曲リストに含まれた歌曲の音声特徴(例えば、特徴ベクトル)の一部または全てを受信することができる。例えば、現在歌曲特徴418の特徴値の各々は、浮動値であり得るが、装置上歌曲データベース404に保存された歌曲の特徴値の各々は、二進値であってもよい。
【0123】
いくつかの例において、デジタル音声データの特徴値を参照歌曲の特徴値と比較することは、全ての歌曲特徴よりも少ない特徴の比較を含むことができる。例えば、候補歌曲リスト内の候補歌曲を選別するために、歌曲識別プロセス422は、以前に識別されたオフセット位置にある各参照歌曲のスコアを再計算することを含むことができる。例えば、スコアを再計算することは、非対称二進値距離(例えば、現在歌曲の特徴の二進値と対応する参照歌曲の特徴の浮動値との間の余弦距離、偽=-1および真=1)を計算することを含むことができる。本実施例において、選別プロセスは、96個の特徴のうち48個の特徴を使用することができる。特定のオフセット位置にある特定の参照歌曲のスコアが閾値を満たさない場合(例えば、スコアが閾値以上である場合)、その歌曲を候補歌曲リストから削除することができる。
【0124】
いくつかの例において、デジタル音声データの特徴値を参照歌曲の特徴値と比較することは、全ての歌曲特徴の比較を含むことができる。例えば、候補歌曲リストから1つの一致する歌曲を特定するために(または一致する歌曲が存在しないことを判断するために)、歌曲識別プロセス422は、以前に識別されたオフセット位置にある各参照歌曲のスコアを再計算することを含むことができる。例えば、スコアを再計算することは、全ての96個の特徴の非対称二進値距離(例えば、現在歌曲の特徴の二進値と対応する参照歌曲の特徴の浮動値との間の余弦距離、偽=-1および真=1)を計算することを含むことができ、様々な適応スコアリング手法を含むことができる。別の例として、歌曲識別プロセス422は、候補参照歌曲の各々の類似度マップ424を用いて、対角線に沿ってスコアを計算することによって、スコアを再計算することができる。別の例として、歌曲識別プロセス422は、比較解析木を用いて、スコアを再計算することができる。
【0125】
ボックス624において、デジタル音声データの特徴値を複数の参照歌曲の少なくとも一部の歌曲の中の各歌曲の複数の特徴値と比較することは、関連するデータを要求するためのリクエストをリモートコンピューティング装置に送信せず、コンピューティング装置上の複数の歌曲の少なくとも一部の歌曲の中の各歌曲の複数の特徴値にアクセスすることによって実行される。例えば、装置上歌曲データベース404は、数万曲の歌曲のコンパクトな識別特徴を含むことができるため、モバイル装置からサーバに識別するための音声データを送信する必要なく、モバイル装置上で歌曲を識別することができる。モバイル装置上で歌曲を識別することによって、歌曲の識別を迅速に実行することができ、ネットワーク接続が利用できない状況にも実行することができる。また、モバイル装置からサーバに音声データを送信する必要なく、歌曲の識別を実行することによって、ユーザのプライバシーを維持することができる。
【0126】
いくつかの例において、候補歌曲のスコアを計算することは、現在歌曲のデータのバッファの全体が対応する候補歌曲のデータのバッファの全体と一致する程度を説明することができる。現在歌曲のバッファが8秒であり、7つの2秒窓のデータを含む例において、これらの7つの2秒窓のデータと、候補歌曲の7つの2秒窓のデータと順次に一致する程度が、計算された候補歌曲のスコアに影響を与える可能性がある。他の例において、バッファ全体が互いに一致する必要はないが、順次に一致した数は、計算された候補歌曲のスコアに影響を与える可能性がある。
【0127】
いくつかの例において、参照歌曲に重みを付ける。これによって、全体としてより人気である(または特定のユーザに関連する基準、例えば、地理位置、傾聴好みにより関連している)と判断された歌曲は、一致する歌曲として特定される可能性が高くなる。
【0128】
ボックス626において、特定の参照歌曲の複数の特徴値がデジタル音声データの複数の特徴値に最も関連していることを判断する。例えば、歌曲識別プロセス422は、計算されたスコアに従って、残りの候補歌曲の各々にランキングを付けることができ、全ての残りの候補歌曲のうち、特定の候補歌曲が最も高いランキングを有し且つ特定の候補歌曲のスコアが閾値を満たす場合、特定の候補歌曲を、現在歌曲特徴418と一致する歌曲特徴を有する歌曲として識別することができる。例えば、候補歌曲のいずれも閾値を満たすスコアを有しない場合、歌曲識別プロセスは、現在歌曲特徴418と一致する歌曲特徴を有する歌曲として識別しない。軽量化プロセスを用いて大量の歌曲を比較的少量の候補歌曲に選別処理した後、より計算集約的なプロセスを用いて少量の候補歌曲から一致する歌曲を識別する2段階で歌曲の識別を実行することによって、処理リソースを節約しながら、一致する歌曲を迅速且つ正確に識別することができる。
【0129】
ボックス628において、特定の参照歌曲の複数の特徴値がデジタル音声データの複数の特徴値に最も関連しているという判断に応答して、コンピューティング装置は、特定の参照歌曲が再生されていることを示す表記を出力する。例えば、歌曲識別プロセス422は、識別された歌曲を示す表記430を出力することができる。
【0130】
ボックス630において、特定の参照歌曲が再生されていることを示す表記を出力することは、ユーザ入力によって歌曲識別プロセスを実行するようにコンピューティング装置を促すことなく、少なくとも数時間前(例えば、少なくとも4時間前、少なくとも数日前、または少なくとも1か月前)に連続した歌曲識別プロセスを有効にすることによって、コンピューティング装置のロック画面に特定の参照歌曲の名前を提示することを含む。
図8を参照して、例えば、(
図1に示された)コンピューティング装置100のロック画面上に表示される例示的なユーザインターフェイス800を示している。例えば、ユーザインターフェイス800は、現在識別された歌曲の視覚表記802を含む。視覚表記802は、歌曲に関連するテキスト情報、例えば、歌曲の曲名、歌手の名前、アルバム名および他の関連情報を含むことができる。いくつかの例において、特定の参照歌曲が再生されていることを示す表記を出力することは、特定の参照歌曲を特定するための音声を再生することを含むことができる。例えば、音声は、歌曲の曲名、歌手の名前、アルバム名およびその他の関連情報を告知することができる。
【0131】
ボックス632において、特定の参照歌曲が再生されていることを示す表記を出力することは、ユーザ入力によって歌曲識別プロセスを実行するようにコンピューティング装置を促すことなく、少なくとも数時間前(例えば、少なくとも4時間前、少なくとも数日前、または少なくとも1か月前)に連続した歌曲識別プロセスを有効にすることによって、コンピューティング装置のロック解除画面の通知パネルに特定の参照歌曲の名前を提示することを含む。コンピューティング装置100は、例えば、最近再生された過去の1つ以上の歌曲および/または前日の同じ時間に再生された歌曲の履歴情報を表示することもできる。再び
図8を参照して、例えば、例示的なユーザインターフェイス810は、(
図1に示された)コンピューティング装置100のロック解除画面の通知パネル812に特定の参照歌曲の名前を提示する。例えば、通知パネル812は、現在識別された歌曲に関連するテキスト情報、例えば、歌曲の曲名、歌手の名前、アルバム名および他の関連情報を含む通知を提示することができる。コンピューティング装置100は、通知を(例えば、プルダウンメニューではなく)ポップアップダイアログボックスに提示することができ、通知を変化テキストとして装置ホーム画面のバックグラウンドディスプレイに提示することもできる。
【0132】
いくつかの例において、ユーザと提示された歌曲識別制御との相互作用は、コンピューティング装置に、識別された歌曲に関する1つ以上の動作を実行させることができる。例えば、ユーザとユーザインターフェイス800の視覚表記802との相互作用804(例えば、タッチ入力)またはユーザとユーザインターフェイス810の通知パネル812との相互作用814(例えば、タッチ入力)に応じて、(
図1に示された)コンピューティング装置100は、現在識別された歌曲および以前に識別された歌曲のさらなる情報(例えば、発売年、歌詞、アルバムカバーの画像、関連するウェブコンテンツへのリンク)および/または利用可能なオプションを表示させるインターフェイス820を提示することができる。本実施例において、インターフェイス820は、再生制御822、視聴制御824、および以前に識別された歌曲のリスト826を含む。例えば、ユーザによる再生制御822の選択に応じて、現在識別された歌曲をコンピューティング装置100で再生することを開始することができる。例えば、ユーザによる視聴制御824の選択に応答して、コンピューティング装置100は、現在識別された歌曲のビデオを再生することができる。例えば、以前に識別された歌曲のリスト826内の歌曲の選択に応答して、コンピューティング装置100は、選択された歌曲のオプションおよび/または追加情報を提示することができる。
【0133】
いくつかの例において、歌曲識別プロセスの主要部分または全ては、クライアント側ではなくサーバ側で実行される。このような例において、サーバ側のコンピューティングシステムは、歌曲の特徴データをクライアント装置に送信せず、代わりに、クライアント装置で記録された音声から生成された音声データまたは歌曲の特徴データをクライアント装置から受信し、歌曲の識別を実行することができる。例えば、サーバ側のコンピューティングシステムは、ボックス602~626の操作を実行し、一致があった場合、サーバ側のコンピューティングシステムは、(例えば、ボックス628~632で説明したように)一致する歌曲を識別する情報を送信し、音声を録音したクライアント装置によって提示される。このような例において、サーバ側のコンピューティングシステムは、(例えば、ボックス308~326で説明したように)音楽が再生されているか否かを判断するための操作を実行する必要がない。これによって、歌曲を含まないと判断された音声の処理を回避することができる。また、ユーザが歌曲の識別を明確に要求した場合に、サーバ側のコンピューティングシステムは、音声を解析することができる。この場合、「音楽が再生されているか否か」を判断する操作をスキップして、単に「どの歌曲が再生されているか」を判断する操作を実行することは、合理的である。すなわち、音楽判断プロセスは、オプションであり、音楽判断プロセスおよび歌曲識別プロセスの両方をクライアント側またはサーバ側で実行することができ、または、一方をクライアントで実行し、他方をサーバで実行することもできる。
【0134】
図9を参照して、本明細書に記載されたシステムおよび方法を実施する例示的なシステムの概念図を示している。このシステムにおいて、モバイルコンピューティング装置910は、基地局940と無線通信することができる。基地局940は、ネットワーク950を介して、多くのホストサービス960への無線アクセスをモバイルコンピューティング装置に提供することができる。
【0135】
この図において、モバイルコンピューティング装置910は、モバイルコンピューティング装置910のユーザにコンテンツを提示し、ユーザからタッチベース入力を受け取るためのタッチスクリーン式ディスプレイ装置912を含む携帯式モバイル電話(例えば、スマートフォンまたはアプリケーション電話)として示されている。他の視覚的出力要素、触覚的出力要素および聴覚的出力要素(例えば、LEDライト、触覚出力用の振動機構、または音色出力、音声生成または録音出力を提供するためのスピーカ)ならびに様々な異なる入力要素(例えば、キーボード914、物理ボタン、トラックボール、加速度計、ジャイロスコープ、磁力計)を設けることもできる。
【0136】
ディスプレイ装置912の形にした例示的な視覚的出力メカニズムは、抵抗性または容量性タッチ機能を備えたディスプレイであってもよい。表示装置は、ビデオ、グラフィックス、画像およびテキストを表示することができ、ユーザのタッチ入力位置を情報表示位置に合わせて調整することができる。したがって、装置910は、表示されたアイテムの位置に対するユーザのタッチをそのアイテムに関連付けることができる。代替的に、モバイルコンピューティング装置910は、ラップトップコンピュータ、タブレットまたはスレートコンピュータ、携帯情報端末、組込みシステム(例えば、カーナビシステム)、デスクトップパーソナルコンピュータ、またはコンピュータワークステーションであってもよい。
【0137】
ユーザ入力を受信するための例示的なメカニズムは、キーボード914を含む。キーボード914は、標準のQWERTYキーボードであってもよく、数字「0~9」、「*」および「#」キーを含む従来のキーパッドであってもよい。ユーザがキーボードのキーを物理的に接触または押下したときに、キーボード914は、入力を受け取る。ユーザは、トラックボール916を操作するまたはトラックパッドと相互作用することによって、(例えば、ディスプレイ装置912上のカーソルの位置を操作する)動作の方向および速度情報をモバイルコンピューティング装置910に提供することができる。
【0138】
モバイルコンピューティング装置910は、タッチスクリーン式ディスプレイ装置912との物理的接触の位置(例えば、指またはスタイラスによる接触の位置)を判断することができる。タッチスクリーン912を用いて、様々な「仮想」入力メカニズムを生成することができる。この場合、ユーザは、グラフィカルユーザインターフェイス要素に接触することにより、タッチスクリーン912に示されたグラフィカルユーザインターフェイス要素と対話する。「仮想」入力メカニズムの例は、「ソフトウェアキーボード」である。この場合、キーボードは、タッチスクリーンに表示され、ユーザは、各キーに対応するタッチスクリーン912の領域を押すことでキーを選択する。
【0139】
モバイルコンピューティング装置910は、機械式またはタッチ感応式ボタン918a~918dを含むことができる。さらに、モバイルコンピューティング装置は、1つ以上のスピーカ920による出力音量を調整するためのボタン、およびモバイルコンピューティング装置をオンまたはオフにするためのボタンを含むことができる。モバイルコンピューティング装置910は、マイクロフォン922を用いて、可聴音を電気信号に変換することができる。変換後の電気信号は、デジタル信号にエンコードされ、コンピュータ可読メモリに保存されるまたは別のコンピューティング装置に送信される。モバイルコンピューティング装置910は、デジタルコンパス、加速度計、近接センサ、および周囲光センサを含むこともできる。
【0140】
オペレーティングシステムは、モバイルコンピューティング装置のハードウェア(例えば、入出力機構、およびコンピュータ可読媒体から取得された命令を実行するプロセッサ)とソフトウェアとの間のインターフェイスを提供することができる。オペレーティングシステムは、例示として、ANDROID(登録商標)、CHROME、IOS、MAC OS X、WINDOWS(登録商標)7、WINDOWS PHONE 7、SYMBIAN(登録商標)、BLACKBERRY(登録商標)、WEBOS、様々なUNIX(登録商標)オペレーティングシステム、またはコンピュータ化装置用の専用オペレーティングシステムを含む。オペレーティングシステムは、コンピューティング装置とユーザとの間の相互作用を容易にするアプリケーションプログラムを実行するためのプラットフォームを提供することができる。
【0141】
モバイルコンピューティング装置910は、タッチスクリーン912を用いて、グラフィカルユーザインターフェイスを形成することができる。グラフィカルユーザインターフェイスは、1つ以上のグラフィカルインターフェイス要素を含み、静的であってもよく(例えば、ディスプレイは、一定の期間に同様である)または動的であってもよい(例えば、グラフィカルユーザインターフェイスは、ユーザ入力なしで動画化するグラフィカルインターフェイス要素を含む)。
【0142】
グラフィカルインターフェイス要素は、テキスト、線、形状、画像、またはそれらの組み合わせであってもよい。例えば、グラフィカルインターフェイス要素は、デスクトップに表示されるアイコンおよびアイコンに関連するテキストであってもよい。いくつかの例において、グラフィカルインターフェイス要素は、ユーザ入力によって選択可能である。例えば、ユーザは、グラフィカルインターフェイス要素の表示に対応するタッチスクリーンの領域を押すことによって、グラフィカルインターフェイス要素を選択することができる。いくつかの例において、ユーザは、トラックボールを操作することによって、フォーカスを有するように単一のグラフィカルインターフェイス要素を強調表示することができる。ユーザによるグラフィカルインターフェイス要素の選択は、モバイルコンピューティング装置によって事前定義された動作を呼び出すことができる。いくつかの例において、追加的にまたは代替的には、選択可能なグラフィカルインターフェイス要素は、キーボード904上のボタンに対応してもよい。ユーザによるボタンの選択は、事前定義された動作を呼び出すことができる。
【0143】
いくつかの例において、オペレーティングシステムは、モバイルコンピューティング装置910をオンにした後、スリープ状態からモバイルコンピューティング装置910を起動した後、モバイルコンピューティング装置910を「ロック解除」した後、またはユーザによって「ホーム」ボタン918cを選択した後に、「デスクトップ」グラフィカルユーザインターフェイスを形成する。デスクトップグラフィカルユーザインターフェイスは、選択されると対応するアプリケーションプログラムを呼び出すいくつかのグラフィカルインターフェイス要素を表示することができる。呼び出されたアプリケーションプログラムは、終了されるまたは隠されるまで、デスクトップグラフィカルユーザインターフェイスを置換するグラフィカルインターフェイスを形成することができる。
【0144】
ユーザ入力は、モバイルコンピューティング装置910の動作の実行順序に影響を与えることができる。例えば、単一動作のユーザ入力(例えば、タッチスクリーンのシングルタップ、タッチスクリーンのスワイプ、ボタンとの接触、または同時に発生するこれら動作の組み合わせ)は、ユーザインターフェイスの表示を変更する操作を呼び出すことができる。ユーザ入力がない場合、ユーザインターフェイスは、特定の時点で変更されなくてもよい。例えば、マッピングアプリケーションがデフォルトで数秒後にズームインする場合でも、タッチスクリーン912に対するマルチタッチユーザ入力は、マッピングアプリケーションを呼び出して、ある位置で「ズームイン」することができる。
【0145】
デスクトップグラフィカルインターフェイスは、「ウィジェット」を表示することもできる。ウィジェットは、実行中のアプリケーションプログラムに関連し、実行中のアプリケーションプログラムによって制御されるデスクトップコンテンツ上に表示される1つ以上のグラフィカルインターフェイス要素である。モバイル装置の電源をオンにすると、ウィジェットのアプリケーションプログラムが起動する場合がある。さらに、ウィジェットは、全画面を占有しなくてもよい。代わりに、ウィジェットは、デスクトップの小さな一部のみを「占有」し、デスクトップのこの部分にコンテンツを表示し、ユーザのタッチスクリーン入力を受け取ることができる。
【0146】
モバイルコンピューティング装置910は、1つ以上の位置特定機構を含むことができる。位置特定機構は、モバイル装置の地理位置の推定値をオペレーティングシステムおよびアプリケーションプログラムに提供するためのハードウェアおよびソフトウェアを含むことができる。位置特定機構は、衛星測位技術、基地局送信アンテナ特定、複数の基地局三角測量、インターネットアクセスポイントIP位置決定、検索エンジンクエリに基づくユーザ位置の推定、および(例えば、ユーザから場所の「チェックイン」を受信することによって)ユーザによって提供された位置の特定を使用することができる。
【0147】
モバイルコンピューティング装置910は、他のアプリケーション、コンピューティングサブシステム、およびハードウェアを含むことができる。通話処理ユニットは、着信電話の表示を受信し、着信電話に応答する機能をユーザに提供することができる。ユーザは、メディアプレーヤーを用いて、モバイルコンピューティング装置910のローカルメモリに保存されている音楽を聴いたり、映画を再生したりすることができる。モバイルコンピューティング装置910は、デジタルカメラセンサ、および対応する画像および動画を取得または編集するためのソフトウェアを含むことができる。ユーザは、インターネットブラウザを用いて、ウェブページに対応するアドレスを入力するまたはウェブページへのリンクを選択することによってウェブページのコンテンツを閲覧することができる。
【0148】
モバイルコンピューティング装置910は、基地局940と無線で情報を通信するためのアンテナを含むことができる。基地局940は、モバイルコンピューティング装置が地理的に移動しても、モバイルコンピューティング装置910とネットワーク950との通信を維持する複数の基地局(例えば、携帯電話セルラーネットワーク)のうちの1つであってもよい。代替的または追加的に、コンピューティング装置910は、Wi-Fi(登録商標)ルータまたは有線接続(例えば、イーサネット(登録商標)、USBまたはファイアワイヤ)を介して、ネットワーク950と通信することができる。コンピューティング装置910は、ブルートゥース(登録商標)プロトコルを用いて他のコンピューティング装置と無線で通信することができ、またはアドホック無線ネットワークを使用することもできる。
【0149】
基地局のネットワークを運営するサービスプロバイダは、モバイルコンピューティング装置910をネットワーク950に接続することによって、モバイルコンピューティング装置910とサービス960を提供する他のコンピューティングシステムとの間の通信を可能にする。様々なネットワーク(例えば、サービスプロバイダの内部ネットワーク、公衆交換電話網、およびインターネット)を介してサービス960を提供することができるが、ネットワーク950は、単一のネットワークとして示されている。サービスプロバイダは、モバイルコンピューティング装置910とサービス960に関連するコンピューティングシステムとの間に情報パケットおよび音声データをルーティングするサーバシステム952を稼動することができる。
【0150】
ネットワーク950は、モバイルコンピューティング装置910と別のコンピューティング装置との間の音声通信またはファックス通信を確立するために、モバイルコンピューティング装置910をPSTN(Public Switched Telephone Network:公衆交換電話網)962に接続することができる。例えば、サービスプロバイダのサーバシステム952は、PSTN962から、モバイルコンピューティング装置910への着信電話の指示を受信することができる。逆に、モバイルコンピューティング装置910は、PSTN962を介してアクセス可能な装置に関連する電話番号を用いて、通話を開始するための通信をサービスプロバイダのサーバシステム952に送信することができる。
【0151】
ネットワーク950は、PSTNとは対照的に、モバイルコンピューティング装置910を、IPネットワークを介して音声通信をルーティングするVoIP(Voice over Internet Protocol:ボイスオーバーインターネットプロトコル)サービス964に接続することができる。例えば、モバイルコンピューティング装置910のユーザは、VoIPアプリケーションを呼び出し、呼び出したアプリケーションを使用して通話を開始することができる。サービスプロバイダサーバシステム952は、通話の音声データをVoIPサービスに転送することができ、VoIPサービスは、インターネットを介して、場合によって接続の最終部分にPSTNを用いて、通話を対応するコンピューティング装置にルーティングすることができる。
【0152】
アプリケーションストア966は、リモートに格納されたアプリケーションプログラムのリストをモバイルコンピューティング装置910のユーザに提供することができる。よって、ユーザは、ネットワーク950を介してアプリケーションプログラムをダウンロードし、モバイルコンピューティング装置910にインストールすることができる。アプリケーションストア966は、第三者のアプリケーション開発者によって開発されたアプリケーションのリポジトリとして機能する。モバイルコンピューティング装置910にインストールされたアプリケーションプログラムは、ネットワーク950を介して、アプリケーションプログラム用に指定されたサーバシステムと通信することができる。例えば、ユーザは、アプリケーションストア966からダウンロードしたVoIPアプリケーションプログラムを用いて、VoIPサービス964と通信することができる。
【0153】
モバイルコンピューティング装置910は、ネットワーク950を介して、インターネット968上のコンテンツにアクセスすることができる。例えば、モバイルコンピューティング装置910のユーザは、ウェブブラウザアプリケーションを呼び出して、指定のURLでアクセス可能なリモートコンピューティング装置からデータを要求することができる。様々な例において、サービス960の一部は、インターネットを介してアクセスすることができる。
【0154】
モバイルコンピューティング装置は、パーソナルコンピュータ970と通信することができる。例えば、パーソナルコンピュータ970は、モバイルコンピューティング装置910のユーザが使用しているホームコンピュータであってもよい。したがって、ユーザは、自分のパーソナルコンピュータ970からメディアを再生することができる。また、ユーザは、自分のパーソナルコンピュータ970のファイル構造を閲覧し、コンピュータ装置の間に選択した文書を転送することができる。
【0155】
音声認識サービス972は、モバイルコンピューティング装置のマイクロフォン922で記録された音声通信データを受信し、音声通信データを対応するテキストデータに変換することができる。いくつかの例において、変換されたテキストは、ウェブクエリとして検索エンジンに提供され、検索エンジンからの検索結果は、モバイルコンピューティング装置910に送信される。
【0156】
モバイルコンピューティング装置910は、ソーシャルネットワーク974と通信することができる。ソーシャルネットワークは、多数のメンバを含むことができ、そのうちの一部は、知り合いとして帰属される。モバイルコンピューティング装置910上のアプリケーションプログラムは、ソーシャルネットワーク974にアクセスして、モバイルコンピューティング装置のユーザの知り合いに基づいて情報を取得することができる。例えば、「アドレス帳」アプリケーションプログラムは、ユーザの知り合いの電話番号を取得することができる。様々な例において、メンバおよび相互の関連性を示すソーシャルネットワークグラフにおけるユーザと他のメンバとのソーシャルネットワーク上の距離に基づいて、モバイルコンピューティング装置910にコンテンツを配信することができる。例えば、ユーザと「親しい」メンバ(「友達」または「友達の友達」)からの広告およびニュース記事との絡み程度に基づいて、これらのコンテンツを選択してユーザに提供することができる。
【0157】
モバイルコンピューティング装置910は、ネットワーク950を介して個人連絡先976にアクセスすることができる。各連絡先は、個人を特定し、その人に関する情報(例えば、電話番号、電子メールアドレスおよび誕生日)を含むことができる。連絡先は、モバイルコンピューティング装置910に対してリモートでホストされているため、ユーザは、複数の装置から共通の連絡先としての連絡先976にアクセスし、保存することができる。
【0158】
モバイルコンピューティング装置910は、クラウドベースアプリケーションプログラム978にアクセスすることができる。クラウドコンピューティングは、アプリケーションプログラム(例えば、ワードプロセッサまたは電子メールプログラム)を提供することができる。これらのアプリケーションプログラムは、モバイルコンピューティング装置910に対してリモートでホストされ、装置910は、ウェブブラウザまたは専用プログラムを介してアクセス可能である。クラウドベースアプリケーションプログラムの例は、GOOGLE(登録商標)ドキュメントワードプロセッサおよびスプレッドシートサービス、GOOGLE GMAILウェブメールサービス、PICASAピクチャマネージャを含む。
【0159】
マッピングサービス980は、モバイルコンピューティング装置910にストリートマップ、ルート計画情報、および衛星画像を提供することができる。マッピングサービスの例は、GOOGLEマップを含む。また、マッピングサービス980は、クエリを受信し、特定の位置を示す結果を返すことができる。例えば、モバイルコンピューティング装置910は、モバイルコンピューティング装置の推定位置および「ピザ店」を探すユーザクエリをマッピングサービス980に送信することができる。マッピングサービス980は、スーパーインポーズ「マーカ」で近くの「ピザ店」の地理位置を標記したストリートマップを返すことができる。
【0160】
ターンバイターンサービス982は、ユーザが指定した目的地へのターンバイターン方向をモバイルコンピューティング装置910に提供することができる。例えば、ターンバイターンサービス982は、装置910の推定位置のストリートビューを装置910に配信すると共に、音声コマンドおよびスーパーインポーズ矢印を使用して、装置910のユーザを目的地まで誘導することができる。
【0161】
モバイルコンピューティング装置910は、様々なストリーミングメディア984をリクエストすることができる。例えば、コンピューティング装置910は、事前に録画したビデオファイル、ライブテレビ番組またはライブラジオ番組のストリームをリクエストすることができる。ストリーミングメディアを提供するサービスの例は、YouTube(登録商標)およびPandoraを含む。
【0162】
マイクロブログサービス986は、モバイルコンピューティング装置910から、投稿の受信者を指定しないユーザ投稿を受け取ることができる。マイクロブログサービス986は、ユーザの投稿を購読したマイクロブログサービス986の他のメンバに投稿を配布することができる。
【0163】
検索エンジン988は、モバイルコンピューティング装置910からユーザが入力したテキストクエリまたは音声クエリを受信し、クエリに対応するインターネットアクセス可能なドキュメントを決定し、対応するドキュメントの検索結果のリストを示す情報を装置910に提供することができる。音声クエリを受信した場合、音声認識サービス972は、受信した音声をテキストクエリに変換して、検索エンジンに送信する。
【0164】
これらのサービスおよび他のサービスは、サーバシステム990で実施されてもよい。サーバシステムは、サービスまたは複数のサービスを提供するハードウェアとソフトウェアの組み合わせであってもよい。例えば、物理的に独立なコンピュータ装置およびネットワーク接続したコンピュータ装置は、論理サーバシステムユニットとして協働して必要な操作を処理することによって、数百台のコンピューティング装置にサービスを提供することができる。このようなサーバシステムは、本明細書においてコンピューティングシステムとも呼ばれる。
【0165】
様々な実施形態において、別の操作(例えば、判断または識別)「に応答して」または「の結果として」実行される操作は、先行の操作が失敗した場合(例えば、判断が行われていない場合)、実行されない。「自動的に」実行される操作は、ユーザの介入(ユーザ入力)なしで実行される操作である。本明細書において、条件付き言語で記載された特徴は、その実装が選択的であることを意味する。いくつかの例において、第1装置から第2装置に「送信」することは、第1装置が第2装置によって受信されるデータをネットワークに配置することを含むが、第2装置がデータを受信することを含まなくてもよい。逆に、第1装置から「受信」することは、ネットワークからデータを受信することを含むが、第1装置がデータを送信することを含まなくてもよい。
【0166】
コンピューティングシステムによる「判断」することは、別の装置が判断を実行し、その結果を当該コンピューティングシステムに供給することを要求することを含むことができる。また、コンピューティングシステムによる「表示」または「提示」することは、コンピューティングシステムがデータを別の装置に送信して、別の装置に参照情報を表示または提示させることを含むことができる。
【0167】
図10は、クライアントとしてもしくはサーバまたは複数のサーバとして、本明細書に記載のシステムおよび方法を実現するために使用されたコンピューティング装置1000、1050を示すブロック図である。コンピューティング装置1000は、ラップトップ、デスクトップ、ワークステーション、PDA(Personal Digital Assistant)、サーバ、ブレードサーバ、メインフレームおよび他の適切なコンピュータなどの様々な形態のデジタルコンピュータを表すように意図されている。コンピューティング装置1050は、パーソナルデジタルアシスタント、携帯電話、PDA、携帯電話、スマートフォンおよび他の類似するコンピューティング装置などの様々な形態のモバイル装置を表すように意図されている。図示された構成要素、それらの接続および関係並びにそれらの機能は、例示的なものに過ぎず、本明細書に記載および/または請求される発明の実施を限定するものではない。
【0168】
コンピューティング装置1000は、プロセッサ1002と、メモリ1004と、記憶装置1006と、メモリ1004および高速拡張ポート1010を連結する高速インターフェイス1008と、低速バス1014および記憶装置1006を連結する低速インターフェイス1012とを含む。構成要素1002、1004、1006、1008、1010および1012は、様々なバスを使用して相互に接続され、共通のマザーボード上に実装されてもよく、または適切な他の方法で実装されてもよい。プロセッサ1002は、メモリ1004または記憶装置1006に記憶された命令を含むコンピューティング装置1000内に実行される命令を処理することによって、外部入力/出力装置のGUIに、例えば高速インターフェイス1008に接続されたディスプレイ1016にグラフィック情報を表示することができる。他の実施態様において、複数のプロセッサおよび/または複数のバスは、複数のメモリおよび複数種類のメモリと共に、適切に使用されることができる。また、各装置が(例えば、サーババンク、一群のブレードサーバ、またはマルチプロセッサシステムとして)必要な動作の一部を実行するように、複数のコンピューティング装置1000を接続することができる。
【0169】
メモリ1004は、コンピューティング装置1000に情報を格納する。一実現例において、メモリ1004は、揮発性メモリユニットである。別の実現例において、メモリ1004は、不揮発性メモリユニットである。メモリ1004は、別の形態のコンピュータ可読媒体、例えば、磁気ディスクまたは光ディスクであってもよい。
【0170】
記憶装置1006は、コンピューティング装置1000に大容量の記憶を提供することができる。一実現例において、記憶装置1006は、例えば、フロッピー(登録商標)ディスク装置、ハードディスク装置、光学ディスク装置、テープディスク装置、フラッシュメモリまたは他の同様の固体メモリ装置、または記憶エリアネットワークまたは他の構成内の装置を含むアレイ記憶装置などのコンピュータ可読媒体を含むことができる。コンピュータプログラム製品は、情報担体に有形的に具体化することができる。また、コンピュータプログラム製品は、命令を含むことができる。これらの命令は、実行されると、上述したような1つ以上の方法を実行することができる。情報担体は、例えば、メモリ1004、記憶装置1006、またはプロセッサ1002上のメモリなどのコンピュータ可読媒体または機械可読媒体である。
【0171】
高速コントローラ1008は、コンピューティング装置1000の高速の帯域幅集約動作を管理し、低速コントローラ1012は、低速の帯域幅集約動作を管理する。このような機能の割り当ては、例示に過ぎない。一実現例において、高速コントローラ1008は、メモリ1004、(例えば、グラフィックプロセッサまたはアクセラレータを介して)ディスプレイ1016、および様々な拡張カード(図示せず)を挿入できる高速拡張ポート1010に連結される。この実現例において、低速コントローラ1012は、記憶装置1006および低速拡張ポート1014に連結される。様々な通信ポート(例えば、USB、ブルートゥース(登録商標)、イーサネット(登録商標)、無線イーサネット)を含み得る低速拡張ポートは、例えば、キーボード、ポインティング装置、スキャナなどの1つ以上の入出力装置に連結されてもよく、またはネットワークアダプタを介して、スイッチまたはルータなどのネットワーキング装置に連結されてもよい。
【0172】
図示のように、コンピューティング装置1000は、いくつかの異なる形態で実装されることができる。例えば、コンピューティング装置1000は、標準サーバ1020として実装されてもよく、または標準サーバのグループ内に複数回実装されてもよい。また、コンピューティング装置1000は、サーバラックシステム1024の一部として実装されてもよい。さらに、コンピューティング装置1000は、ラップトップコンピュータ1022のようなパーソナルコンピュータに実装されてもよい。代替的には、コンピューティング装置1000の要素は、装置1050などのモバイル装置(図示せず)内の他の要素と組み合わてもよい。このような装置の各々は、1つ以上のコンピューティング装置1000、1050を含んでもよく、システムの全体は、互いに通信できる複数のコンピューティング装置1000、1050から構成されてもよい。
【0173】
コンピューティング装置1050は、プロセッサ1052、メモリ1064、ディスプレイ1054などの入出力装置、通信インターフェイス1066、およびトランシーバ568を含む。装置1050は、追加の記憶を提供するために、マイクロドライブまたは他の素子などの記憶装置を備えることもできる。要素1050、1052、1064、1054、1066および1068は、様々なバスを介して相互に接続され、一部の要素は、共通のマザーボード上に実装されてもよく、または適切な他の方法で実装されてもよい。
【0174】
プロセッサ1052は、メモリ564に格納された命令を含むコンピューティング装置1050内の命令を実行することができる。このプロセッサは、互いに独立している複数のアナログプロセッサおよびデジタルプロセッサを備えるチップのチップセットとして実装されてもよい。また、いくつかのアーキテクチャのいずれかを用いて、プロセッサを実装することができる。例えば、プロセッサは、CISC(複合命令セットコンピュータ)プロセッサ、RISC(縮小命令セットコンピュータ)プロセッサ、またはMISC(最小命令セットコンピュータ)プロセッサであってもよい。このプロセッサは、装置1050の他の要素の協調、例えば、ユーザインターフェイスの制御、装置1050によるアプリケーションの実行、および装置1050による無線通信を提供することができる。
【0175】
プロセッサ1052は、制御インターフェイス1058およびディスプレイ1054に結合されたディスプレイインターフェイス1056を介してユーザと通信することができる。ディスプレイ1054は、例えば、TFTディスプレイ(薄膜トランジスタ液晶ディスプレイ)またはOLED(有機発光ダイオードディスプレイ)、または他の適切なディスプレイ技術を使用することができる。表示インターフェイス1056は、グラフィック情報および他の情報をユーザに表示するために、ディスプレイ1054を駆動する適切な回路を含むことができる。制御インターフェイス1058は、ユーザからの指令を受信し、変換してからプロセッサ1052に提供することができる。また、プロセッサ1052と通信するように外部インターフェイス1062を設けることによって、装置1050は、他の装置と近距離通信を行うことができる。外部インターフェイス1062は、例えば、いくつかの実現例において有線通信を提供することができ、他の実現例において無線通信を提供することができる。複数のインターフェイスを使用することもできる。
【0176】
メモリ1064は、コンピューティング装置1050に情報を格納する。メモリ1064は、コンピュータ可読媒体、揮発性メモリユニット、または不揮発性メモリユニットのうち、1つまたは複数として実装することができる。拡張メモリ1074は、例えば、SIMM(Single In Line Memory Module)カードインターフェイスを含む拡張インターフェイス1072を介して、装置1050に提供され、接続されてもよい。具体的には、拡張メモリ1074は、上述したプロセスを実行するまたは補足するための命令を格納することができ、セキュリティ情報を格納することもできる。したがって、拡張メモリ1074は、例えば、装置1050のセキュリティモジュールとして提供されてもよく、装置1050の安全使用を可能にする命令でプログラムされてもよい。さらに、SIMMカードを介して、追加情報と共に、セキュリティアプリケーションを配置することができる。例えば、ハッキングできない方法で、SIMMカード上に識別情報を配置することができる。
【0177】
以下に説明するように、メモリは、例えば、フラッシュメモリおよび/またはNVRAMメモリを含むことができる。一実現例において、コンピュータプログラム製品は、情報担体に有形的に具体化される。コンピュータプログラム製品は、命令を含み、これらの命令は、実行されると、上述したような1つ以上の方法を実行する。情報担体は、例えば、メモリ1064、拡張メモリ1074、またはプロセッサ1052上のメモリなどのコンピュータ可読媒体または機械可読媒体であり、トランシーバ1068または外部インターフェイス1062を介して受信動作を実行してもよい。
【0178】
装置1050は、必要に応じてデジタル信号処理回路を含む通信インターフェイス1066を介して無線通信を行うことができる。通信インターフェイス1066は、とりわけ、GSM(登録商標)通話、SMS、EMS、またはMMSメッセージング、CDMA、TDMA、PDC、WCDMA(登録商標)、CDMA2000、またはGPRSなどの様々なモードまたはプロトコルに基づいて、通信を提供することができる。このような通信は、例えば、高周波トランシーバ1068を介して行われてもよい。また、ブルートゥース(登録商標)、WiFi(登録商標)、または他のトランシーバ(図示せず)を用いて、短距離通信を行うことができる。さらに、GPS(全地球測位システム)受信モジュール1070は、追加のナビゲーション関連無線データおよび位置関連無線データを装置1050に提供することができる。これらの無線データは、装置1050上で動作するアプリケーションに適宜に使用される。
【0179】
また、装置1050は、音声コーデック1060を使用して音声通信を行うことができる。音声コーデック1060は、ユーザから受信した音声情報を使用可能なデジタル情報に変換することができる。同様に、音声コーデック1060は、例えば、装置1050の送受話器内のスピーカを介して、ユーザに可聴な音声を生成することができる。このような音声は、音声電話からの音声を含むことができ、記録された音声(例えば、音声メッセージ、音楽ファイル)を含むことができ、装置1050上で動作するアプリケーションによって生成された音声を含むこともできる。
【0180】
図示のように、コンピューティング装置1050は、いくつかの異なる形態で実装されてもよい。例えば、コンピューティング装置1050は、携帯電話1080として実装されてもよく、スマートフォン1082、PDAまたは他の類似するモバイル装置の一部として実装されてもよい。
【0181】
また、コンピューティング装置1000または1050は、ユニバーサルシリアルバス(USB)フラッシュドライブを含むことができる。USBフラッシュドライブは、オペレーティングシステムおよび他のアプリケーションを格納することができる。USBフラッシュドライブは、入力/出力要素、例えば、別のコンピューティング装置のUSBポートに挿入することができるワイヤレストランスミッタまたはUSBコネクタを含むことができる。
【0182】
本明細書に記載のシステムおよび技術の様々な実装は、デジタル電子回路、集積回路、特別に設計されたASIC(特定用途向け集積回路)、コンピュータハードウェア、ファームウェア、ソフトウェアおよび/またはそれらの組み合わせで実現することができる。これらの様々な実装は、プログラム可能なシステム上で実行可能および/または解釈可能な1つ以上のコンピュータプログラムにおける実装を含むことができる。このプログラム可能なシステムは、記憶システムからデータおよび命令を受信し、データおよび命令を記憶システムに送信するように記憶システムに連結された少なくとも1つのプログラム可能な専用または汎用のプロセッサ、少なくとも1つの入力要素、および少なくとも1つの出力装置を含む。
【0183】
(プログラム、ソフトウェア、ソフトウェアアプリケーションまたはコードとしても知られている)これらのコンピュータプログラムは、プログラム可能なプロセッサ用の機械命令を含み、高度な手続き型プログラミング言語および/または高度なオブジェクト指向プログラミング言語で実装することができ、および/またはアセンブリ言語/機械言語で実装することができる。「機械可読媒体」という用語は、本明細書に使用された場合、プログラム可能なプロセッサに機械命令および/またはデータを提供するために使用された機械可読信号としての機械命令を受け取る機械可読媒体を含む任意のコンピュータプログラム製品、機械および/または装置(例えば、磁気ディスク、光学ディスク、メモリ、プログラム可能な論理装置(PLD))を指す。「機械可読信号」という用語は、機械命令および/またはデータをプログラム可能なプロセッサに提供するために使用された任意の信号を指す。
【0184】
ユーザとの情報交換を提供するために、本開示に記載されたシステムおよび技術は、情報をユーザに提示するための表示装置(例えば、CRT(陰極線管)モニタまたはLCD(液晶ディスプレイ)モニタ)、ユーザがコンピュータに入力を提供することができるキーボードおよびポインティング装置(例えば、マウスまたはトラックボール)を備えたコンピュータ上で実装することができる。他の種類の装置を用いて、ユーザとの対話を提供することもできる。例えば、ユーザに提供されるフィードバックは、任意種類の感覚フィードバック、例えば視覚フィードバック、聴覚フィードバックまたは触覚フィードバックであってもよく、ユーザからの入力は、音響入力、音声入力または触覚入力を含む任意の形で受信することができる。
【0185】
本明細書に記載のシステムおよび技術は、バックエンド要素(例えば、データサーバ)を含むコンピューティングシステム、またはミドルウェア要素(例えば、アプリケーションサーバ)を含むコンピューティングシステム、またはフロントエンド要素(例えば、ユーザが本明細書に記載のシステムおよび技術の実装と情報交換を行うことができるグラフィカルユーザインターフェイスまたはウェブブラウザを含むクライアントコンピュータ)を含むコンピューティングシステム、またはバックエンド要素、ミドルウェア要素およびフロントエンド要素の任意の組み合わせを含むコンピューティングシステムに実装されてもよい。これらのシステム要素は、任意の形式または媒体のデジタルデータ通信(例えば、通信ネットワーク)によって相互接続することができる。通信ネットワークの例は、ローカルエリアネットワーク(LAN)、ワイドエリアネットワーク(WAN)、ピアツーピアネットワーク(アドホックまたは静的メンバを有する)、グリッドコンピューティングインフラストラクチャ、およびインターネットを含む。
【0186】
コンピューティングシステムは、クライアントおよびサーバを含むことができる。クライアントとサーバとは、一般的に互いに遠隔であり、典型的には通信ネットワークを介して情報交換を行う。クライアントとサーバとの関係は、各々のコンピュータ上で動作しており、互いにクライアント-サーバ関係を有するコンピュータプログラムに依存する。
【0187】
上記でいくつかの実施例を詳細に説明したが、他の変更も可能である。また、本明細書に記載のシステムおよび方法を実行するために、他のメカニズムを使用することもできる。さらに、望ましい結果を達成するために、図示の論理フローは、示された特定の順序でまたは逐次に行う必要がない。図示のフローに他のステップを追加してもよく、または図示のフローから他のステップを省いてもよい。記載のシステムに他の要素を追加してもよく、システムから他の要素を除去してもよい。したがって、他の実施例は、添付の特許請求の範囲内に含まれる。