JP5210440B2 - Method, program and apparatus for high speed speech retrieval - Google Patents
Method, program and apparatus for high speed speech retrieval Download PDFInfo
- Publication number
- JP5210440B2 JP5210440B2 JP2012000070A JP2012000070A JP5210440B2 JP 5210440 B2 JP5210440 B2 JP 5210440B2 JP 2012000070 A JP2012000070 A JP 2012000070A JP 2012000070 A JP2012000070 A JP 2012000070A JP 5210440 B2 JP5210440 B2 JP 5210440B2
- Authority
- JP
- Japan
- Prior art keywords
- model
- segment
- target audio
- audio clip
- groups
- 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.)
- Expired - Fee Related
Links
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
Description
本開示内容は概して、信号処理およびマルチメディアアプリケーションに関する。より具体的には、これに限定されるわけではないが、高速音声検索および音声指紋の方法および装置に関する。 The present disclosure relates generally to signal processing and multimedia applications. More specifically, but not exclusively, it relates to a fast voice search and voice fingerprint method and apparatus.
音声検索(例えば、音声クリップ用に大きな音声ストリームを検索することであって、当該音声ストリームが破損/歪曲していたとしても実行される)には数多くの用途があり、例えば、放送用音楽/コマーシャルの分析、インターネットでの著作権管理、または未分類の音声クリップ用のメタデータの特定等がある。典型的な音声検索システムは、シリアルで単一プロセッサシステム用に設計されている。このような検索システムでは通常、大きな音声ストリームにおいてターゲット音声クリップを検索するのに長時間かかってしまう。しかし、音声検索システムは大抵、大きい音声データベースに対して効率的に動作するよう求められており、例えば、非常に短時間で(例えば、略リアルタイムで)大きいデータベースを検索しなければならない。また、音声データベースは、その一部分またはすべてにおいて、歪曲、破損、および/または圧縮が発生している場合がある。このため、音声検索システムは、ターゲット音声クリップと同一の音声セグメントが歪曲、破損および/または圧縮されている場合であっても、その音声セグメントを特定するのに十分なロバスト性を有している必要がある。したがって、ターゲット音声クリップを大きい音声データベースから迅速且つロバストに検索できる音声検索システムが望まれている。 Voice search (eg, searching for a large audio stream for an audio clip and performed even if the audio stream is corrupted / distorted) has many uses, for example, broadcast music / Examples include commercial analysis, copyright management on the Internet, or identifying metadata for uncategorized audio clips. A typical voice search system is designed for serial, single processor systems. Such a search system usually takes a long time to search for a target audio clip in a large audio stream. However, speech search systems are often required to operate efficiently on large speech databases, for example, must search large databases in a very short time (eg, in near real time). In addition, a part or all of the voice database may be distorted, damaged, and / or compressed. For this reason, the voice search system is sufficiently robust to identify the voice segment even if the same voice segment as the target voice clip is distorted, damaged and / or compressed. There is a need. Accordingly, there is a need for a voice search system that can quickly and robustly search for target voice clips from a large voice database.
開示する主題の特徴および利点は以下に記述する主題の詳細な説明から明らかとなる。 The features and advantages of the disclosed subject matter will become apparent from the following detailed description of the subject matter.
本願において開示される主題の実施形態によると、ロバスト且つ並列な検索方法を用いて、ターゲット音声クリップを求めて、マルチプロセッサシステム内の大きな音声ストリームまたは大きい音声データベースを検索し得る。大きい音声データベースを複数の小グループに分割するとしてもよい。これらの小グループを、マルチプロセッサシステム内で利用可能なプロセッサまたは処理コアによって修理されるべく、動的にスケジューリングするとしてもよい。プロセッサまたは処理コアは、スケジューリングされたグループを並列に処理するとしてもよい。このような並列処理は、各グループをより小さいセグメントに分割して、セグメントから音声特徴を抽出して、共通成分ガウス混合モデル(Common Component Gaussian Mixture Model:CCGMM)を用いてセグメントをモデル化することによってなされる。これらのセグメントの長さは、ターゲット音声クリップの長さと同一であるとしてもよい。どのグループを処理するよりも前に、1つのプロセッサまたは処理コアはターゲット音声クリップから音声特徴を抽出してCCGMMを用いてモデル化するとしてもよい。ターゲット音声クリップのモデルとグループの各セグメントとの間のカルバック・ライブラー(KL)距離またはKL最大距離をさらに算出するとしてもよい。当該距離が所定値以下であれば、対応するセグメントはターゲット音声クリップであると特定される。 According to embodiments of the presently disclosed subject matter, a robust and parallel search method may be used to search a large audio stream or large audio database in a multiprocessor system for a target audio clip. A large speech database may be divided into a plurality of small groups. These small groups may be dynamically scheduled to be repaired by the processors or processing cores available in the multiprocessor system. The processor or processing core may process the scheduled groups in parallel. Such parallel processing involves dividing each group into smaller segments, extracting speech features from the segments, and modeling the segments using a Common Component Gaussian Mixture Model (CCCGMM). Made by. The length of these segments may be the same as the length of the target audio clip. Prior to processing any group, one processor or processing core may extract audio features from the target audio clip and model them using CCGMM. A Cullback liber (KL) distance or a KL maximum distance between the target audio clip model and each segment of the group may be further calculated. If the distance is less than or equal to the predetermined value, the corresponding segment is identified as the target audio clip.
当該距離が所定値を超えている場合、プロセッサまたは処理コアは任意の数のセグメントを省略して、ターゲット音声クリップの検索を継続するとしてもよい。プロセッサまたは処理コアが1つのグループを検索し終わると、処理対象の新しいグループが与えられてターゲット音声クリップを検索し、すべてのグループについて検索を実行する。グループのサイズは、負荷インピーダンスおよび演算の重複を低減するように決定され得る。さらに、複数のプロセッサまたは処理コアが実行する音声グループの並列処理の効率を向上させるべく入出力(I/O)を最適化し得る。 If the distance exceeds a predetermined value, the processor or processing core may omit any number of segments and continue searching for the target audio clip. When the processor or processing core finishes searching for one group, a new group to be processed is given to search for the target audio clip and the search is performed for all groups. The size of the group can be determined so as to reduce load impedance and computation duplication. Furthermore, input / output (I / O) can be optimized to improve the efficiency of parallel processing of voice groups performed by multiple processors or processing cores.
本明細書において「一実施形態」または「開示されている主題の実施形態」という表現は、当該実施形態に関連して説明される特定の特徴、構造または特性が、開示されている主題の少なくとも1つの実施形態に含まれていることを意味する。このように、「一実施形態」というフレーズが本明細書において何度も使用されるが、必ずしもすべてが同一の実施形態に言及しているわけではない。 In this specification, the expression "one embodiment" or "an embodiment of the disclosed subject matter" means that a particular feature, structure, or characteristic described in connection with the embodiment is at least a disclosed subject matter. It is included in one embodiment. Thus, although the phrase “one embodiment” is used many times in this specification, all do not necessarily refer to the same embodiment.
図1は、音声検索モジュール120に基づいてロバスト且つ並列な音声検索が実行され得るコンピューティングシステム100の一例を示す図である。コンピューティングシステム100は、システムインターコネクト115に結合される1以上のプロセッサ110を備える。プロセッサ110は、複数または多くの処理コアを有するとしてもよい(説明の便宜上、「複数のコア」という表現はこれ以降では複数の処理コアおよび多くの処理コアの両方を意味するものとする)。プロセッサ110は、複数のコアを用いてロバスト且つ並列な音声検索を実行する、音声検索モジュール120を有するとしてもよい。音声検索モジュールは、分割機構、スケジュール、および複数の音声検索部等、複数の構成要素を含むとしてもよい(より詳細な説明は図4から図6を参照しつつ後述する)。音声検索モジュールに含まれる1以上の構成要素が1つのコアに配置されて、他の構成要素は別のコアに配置されるとしてもよい。
FIG. 1 is a diagram illustrating an example of a
音声検索モジュールはまず、大きい音声データベースを複数の小グループに分割するとしてもよいし、または大きな音声ストリームを一部重複しているより小さいサブストリームに分割するとしてもよい。続いて、1つのコアが検索対象の音声クリップ(「ターゲット音声クリップ」)を処理して、ターゲット音声クリップのモデルを構築する。一方、音声検索モジュールは、複数のコアに対して音声小グループ/サブストリームを動的にスケジューリングする。複数のコアは、各グループ/サブストリームを複数のセグメントに分割して、各音声セグメントのモデルを構築する。これは並列に行われる。各セグメントのサイズは、ターゲット音声クリップのサイズと等しいとしてもよい。ターゲット音声クリップと音声データベース/ストリームの両方を含むすべての音声セグメントに共通な、複数のガウス成分を含むガウス混合モデル(Gaussian mixture model:GMM)を用いて、各音声セグメントとターゲット音声クリップとをモデル化するとしてもよい。音声セグメントのモデルが構築されると、当該セグメントのモデルとターゲット音声クリップのモデルとの間のカルバック−ライブラー(KL)距離またはKL最大距離を算出するとしてもよい。当該距離が所定値以下であれば、当該音声セグメントはターゲット音声クリップであると特定され得る。検索プロセスは、すべての音声グループ/サブストリームが処理されるまで継続されるとしてもよい。 The speech search module may first divide a large speech database into multiple small groups, or may divide a large speech stream into smaller substreams that are partially overlapping. Subsequently, one core processes the audio clip to be searched (“target audio clip”) to build a model of the target audio clip. Meanwhile, the voice search module dynamically schedules voice small groups / substreams for a plurality of cores. The multiple cores divide each group / substream into multiple segments to build a model for each audio segment. This is done in parallel. The size of each segment may be equal to the size of the target audio clip. Model each audio segment and target audio clip using a Gaussian mixture model (GMM) containing multiple Gaussian components common to all audio segments including both the target audio clip and the audio database / stream. It may be converted. Once the audio segment model has been constructed, the Cullback-Liver (KL) distance or the KL maximum distance between the segment model and the target audio clip model may be calculated. If the distance is less than or equal to a predetermined value, the audio segment can be identified as the target audio clip. The search process may continue until all voice groups / substreams have been processed.
コンピューティングシステム100はさらに、システムインターコネクト115に結合されているチップセット130を備えるとしてもよい。チップセット130は、1以上の集積回路パッケージまたはチップを有するとしてもよい。チップセット130は、コンピューティングシステム100のその他の構成要素160との間のデータ転送をサポートするデバイスインターフェース135を1以上有するとしてもよい。その他の構成要素160は、例えば、BIOSファームウェア、キーボード、マウス、ストレージデバイス、ネットワークインターフェース等である。チップセット130は、周辺機器インターコネクト(PCI)バス170に結合されるとしてもよい。チップセット130はPCIバス170に対するインターフェースを提供するPCIブリッジ145を有するとしてもよい。PCIブリッジ145は、プロセッサ110およびその他の構成要素160と周辺機器との間にデータ経路を提供するとしてもよい。周辺機器は、例えば、音声デバイス180およびディスクドライブ190である。図1には図示されていないが、これら以外のデバイスもまたPCIバス170に結合され得る。
The
また、チップセット130は、メインメモリ150に結合されているメモリコントローラ125を有するとしてもよい。メインメモリ150は、プロセッサ110の複数のコアまたは当該システム内のその他の任意のデバイスによって実行される命令列およびデータを格納するとしてもよい。メモリコントローラ125は、プロセッサ110の複数のコアおよびコンピューティングシステム100内のほかのデバイスに対応付けられるメモリトランザクションに応じてメインメモリ150にアクセスするとしてもよい。一実施形態によると、メモリコントローラ125はプロセッサ110またはその他の回路に配置されるとしてもよい。メインメモリ150は、メモリコントローラ125がデータの読み書きを行う、アドレス指定可能な格納位置を提供するさまざまなメモリデバイスを有するとしてもよい。メインメモリ150は、ダイナミックランダムアクセスメモリ(DRAM)デバイス、シンクロナスDRAM(SDRAM)デバイス、ダブル・データ・レート(DDR)SDRAMデバイスまたはその他のメモリデバイス等、1以上の異なる種類のメモリデバイスを有するとしてもよい。
The chipset 130 may also have a
図2は、音声検索モジュール240を用いてロバスト且つ並列な音声検索が実行され得る別の例であるコンピューティングシステム200を示す図である。システム200は、プロセッサ0 220Aのような、複数のプロセッサを備えるとしてもよい。システム200内の1以上のプロセッサは、多くのコアを有するとしてもよい。システム200は、複数のコアによってロバスト且つ並列な音声検索を実行する音声検索モジュール240を備えるとしてもよい。音声検索モジュールは、分割機構、スケジュール、および複数の音声検索部等、複数の構成要素を含むとしてもよい(より詳細な説明は図4から図6を参照しつつ後述する)。音声検索モジュールに含まれる1以上の構成要素が1つのコアに配置されて、他の構成要素は別のコアに配置されるとしてもよい。システム200内のプロセッサは、システムインターコネクト210によって互いに接続されているとしてもよい。システムインターコネクト210は、フロントサイドバス(FSB)であってもよい。各プロセッサは、当該システムインターコネクトを介して、入出力(I/O)デバイスおよびメモリ230に接続されるとしてもよい。コアはすべて、メモリ230から音声データを受け取るとしてもよい。
FIG. 2 is a diagram illustrating another
図3は、音声検索モジュール340を用いてロバスト且つ並列な音声検索を実行し得るさらに別の例であるコンピューティングシステム300を示す図である。システム300において、複数のプロセッサ(例えば、320A、320B、320Cおよび320D)を接続するシステムインターコネクト310は、リンクベースのポイント・ツー・ポイント接続である。各プロセッサは、リンクハブ(例えば、330A、330B、330Cおよび330D)を介してシステムインターコネクトに接続されているとしてもよい。一部の実施形態によると、リンクハブはメモリコントローラと同じ場所に配置されて、当該メモリコントローラがシステムメモリに対するトラフィックを調整するとしてもよい。1以上のプロセッサが多くのコアを含むとしてもよい。システム300は、複数のコアによってロバスト且つ並列な音声検索を実行する音声検索モジュール340を備えるとしてもよい。音声検索モジュールは、分割機構、スケジュール、および複数の音声検索部等、複数の構成要素を含むとしてもよい(より詳細な説明は図4から図6を参照しつつ後述する)。音声検索モジュールに含まれる1以上の構成要素が1つのコアに配置されて、他の構成要素は別のコアに配置されるとしてもよい。システム300内の各プロセッサ/コアは、システムインターコネクトを介して共有メモリ(図3には不図示)に接続されるとしてもよい。コアはすべて、共有メモリから音声データを受け取るとしてもよい。
FIG. 3 is a diagram illustrating another
図2および図3において、音声検索モジュール(つまり、240および340)はまず、大きい音声データベースを複数の小グループに分割するとしてもよいし、または大きい音声ストリームを一部重複しているより小さいサブストリームに分割するとしてもよい。続いて、1つのコアが検索対象の音声クリップ(「ターゲット音声クリップ」)を処理して、ターゲット音声クリップのモデルを構築する。一方、音声検索モジュールは、複数のコアに対して音声小グループ/サブストリームを動的にスケジューリングする。複数のコアは、各グループ/サブストリームを複数のセグメントに分割して、各音声セグメントのモデルを構築する。これは並列に行われる。各セグメントのサイズは、ターゲット音声クリップのサイズと等しいとしてもよい。ターゲット音声クリップと音声データベース/ストリームの両方を含むすべての音声セグメントに共通な、複数のガウス成分のガウス混合モデル(Gaussian mixture model:GMM)を用いて、各音声セグメントとターゲット音声クリップとをモデル化するとしてもよい。音声セグメントのモデルが構築されると、当該セグメントのモデルとターゲット音声クリップのモデルとの間のカルバック−ライブラー(KL)距離またはKL最大距離を算出するとしてもよい。当該距離が所定値以下であれば、当該音声セグメントはターゲット音声クリップであると特定され得る。検索プロセスは、すべての音声グループ/サブストリームが処理されるまで継続されるとしてもよい。 2 and 3, the speech search module (ie, 240 and 340) may first divide a large speech database into multiple small groups, or smaller sub-parts that partially overlap a large speech stream. It may be divided into streams. Subsequently, one core processes the audio clip to be searched (“target audio clip”) to build a model of the target audio clip. Meanwhile, the voice search module dynamically schedules voice small groups / substreams for a plurality of cores. The multiple cores divide each group / substream into multiple segments to build a model for each audio segment. This is done in parallel. The size of each segment may be equal to the size of the target audio clip. Model each audio segment and target audio clip using a multiple Gaussian mixture model (GMM) common to all audio segments including both the target audio clip and the audio database / stream You may do that. Once the audio segment model has been constructed, the Cullback-Liver (KL) distance or the KL maximum distance between the segment model and the target audio clip model may be calculated. If the distance is less than or equal to a predetermined value, the audio segment can be identified as the target audio clip. The search process may continue until all voice groups / substreams have been processed.
図4は、ロバストな音声検索を実行する音声検索モジュール400の一例を示すブロック図である。音声検索モジュール400は、特徴抽出部410と、モデル化機構420と、決定部430とを備える。特徴抽出部410は、入力音声ストリーム(例えば、ターゲット音声クリップ、大きい音声ストリームのサブストリーム等)を受け取って、入力音声ストリームから音声特徴を抽出するとしてもよい。入力音声ストリームが、ターゲット音声クリップを特定するべく検索されるべき音声ストリームである場合、特徴抽出部は当該音声ストリームに対してスライディングウィンドウ(sliding window)を適用して当該音声ストリームを複数の互いに重複するセグメントに分割するとしてもよい。ウィンドウはターゲット音声クリップと長さが同じである。入力音声ストリームの各セグメント(ターゲット音声ストリームが有するセグメントは1セグメントのみである)はさらに、複数のフレームに分割される。各フレームは、長さが同じで、隣接フレームと重複するとしてもよい。例えば、一実施形態によると、フレームの長さは20ミリ秒で、フレーム間の重複箇所は10ミリ秒であるとしてもよい。各フレームについて特徴ベクトルを抽出するとしてもよい。各フレームは、フーリエ係数、メル周波数ケプストラム係数、スペクトルフラットネス(spectral flattness)、およびこういったパラメータの平均、分散、その他の微分係数といった特徴を含み得る。音声セグメントの全フレームの特徴ベクトルにより、特徴ベクトルシーケンスが形成される。
FIG. 4 is a block diagram illustrating an example of a
2つの隣接するセグメントが重複しているのは、2つの隣接するセグメント間でターゲット音声クリップを見逃す可能性を小さくするためである。重複箇所が長くなるほど、見逃す可能性が低くなる。一実施形態によると、どのような一致であろうと見逃さないように、重複箇所の長さは、フレームの長さをセグメントの長さから引いたものに等しくなるように設定してもよい。しかし、重複箇所が長くなると演算が増えてしまう。このため、演算負荷と見逃す可能性との間でバランスを取る必要がある(例えば、重複箇所の長さは、セグメントの長さの2分の1以下である)。いずれにしろ、2つのセグメント間で重複しているフレームの特徴ベクトルの場合、抽出は1回のみでよい。 The reason why two adjacent segments overlap is to reduce the possibility of missing a target audio clip between two adjacent segments. The longer the overlap, the less likely it will be missed. According to one embodiment, the length of the overlap may be set equal to the length of the frame minus the length of the segment, so as not to miss any matches. However, the calculation increases as the overlapping portion becomes longer. For this reason, it is necessary to balance between the calculation load and the possibility of oversight (for example, the length of the overlapping portion is equal to or less than half the length of the segment). In any case, in the case of a feature vector of a frame that overlaps between two segments, the extraction needs to be performed only once.
モデル化機構420は、特徴抽出部410が抽出した特徴ベクトルシーケンスに基づいて、音声セグメントのモデルを構築するとしてもよい。使用されるモデルに応じて、モデル化機構は該モデルのパラメータを推定する。一実施形態によると、共通成分ガウス混合モデル(「CCGMM」)に基づいて音声セグメントをモデル化するとしてもよい。CCGMMはすべてのセグメントにわたって共通している複数のガウス成分を含む。各セグメントについて、モデル化機構は、共通のガウス成分に対して一連の混合重み付け値を推定する。別の実施形態によると、他のモデル(例えば、隠れマルコフモデル)に基づいて音声セグメントをモデル化するとしてもよい。一実施形態によると、ターゲット音声クリップのみがモデル化されて、音声セグメントの特徴ベクトルシーケンスはそのまま、音声セグメントがターゲット音声クリップと略同一か否か決定するべく利用されるとしてもよい。
The
決定部430は、入力音声ストリームに含まれる音声セグメントが十分に類似しており音声セグメントがターゲット音声クリップの複写と特定できるか否か判断するとしてもよい。このため、決定部は、音声セグメントのモデルとターゲット音声クリップのモデルとを比較することによって類似性測度を導き出すとしてもよい。一実施形態によると、類似性測度はこれら2つのモデル間で算出される距離であってもよい。別の実施形態によると、類似性測度は、音声セグメントのモデルとターゲット音声クリップのモデルとが同一である確率であってもよい。さらに別の実施形態によると、類似性測度は、音声セグメントの特徴ベクトルシーケンスとターゲット音声クリップのモデルとを比較することによって得られるとしてもよい。例えば、隠れマルコフモデル(HMM)に基づいてターゲット音声クリップをモデル化する場合、音声セグメントの特徴ベクトルシーケンスとターゲット音声クリップのHMMとに基づき、音声セグメントとターゲット音声クリップとの間の可能性スコアを算出するべくビタビベースのアルゴリズムを用いるとしてもよい。
The
類似性測度の値に基づいて、決定部は、音声セグメントをターゲット音声クリップと特定できるか否か判断するとしてもよい。例えば、類似性測度の値が所定のしきい値以下であれば(例えば、類似性測度は音声セグメントモデルとターゲット音声クリップとの間の距離である)、音声セグメントはターゲット音声クリップと略同一であると特定され得る。同様に、類似性測度の値が所定しきい値以上であれば(例えば、類似性測度は音声セグメントがターゲット音声クリップと略同一である可能性スコアである)、音声セグメントはターゲット音声クリップと略同一であると特定され得る。一方、類似性測度によって音声セグメントがターゲット音声クリップとは大きく異なることが分かった場合には、当該音声セグメントの直後の任意の数のセグメントを省略するとしてもよい。実際に省略するセグメントの数は、類似性測度の値および/または実験に基づくデータに応じて決まる。類似性測度によって現在のセグメントがターゲット音声クリップと非常に異なることが分かる場合には、任意の数の後続セグメントを省略することによって、ターゲット音声クリップを見逃すことはあり得ない。これは、入力音声ストリームをセグメントに分割するべく利用されるウィンドウが徐々に前方向にスライドする結果、あるセグメントから次のセグメントへと移る際に類似性測度に連続性が認められるためである。 Based on the value of the similarity measure, the determination unit may determine whether the audio segment can be identified as the target audio clip. For example, if the value of the similarity measure is less than or equal to a predetermined threshold (eg, the similarity measure is the distance between the audio segment model and the target audio clip), the audio segment is substantially the same as the target audio clip. Can be identified. Similarly, if the value of the similarity measure is greater than or equal to a predetermined threshold (eg, the similarity measure is a likelihood score that the audio segment is approximately the same as the target audio clip), the audio segment is approximately the same as the target audio clip. It can be specified to be identical. On the other hand, if the similarity measure shows that the audio segment is significantly different from the target audio clip, an arbitrary number of segments immediately after the audio segment may be omitted. The number of segments that are actually omitted depends on the value of the similarity measure and / or the data based on the experiment. If the similarity measure shows that the current segment is very different from the target audio clip, it is not possible to miss the target audio clip by omitting any number of subsequent segments. This is because the similarity measure is recognized as continuity when moving from one segment to the next as a result of the windows used to divide the input audio stream into segments that gradually slide forward.
図5は、図4に図示されるロバストな音声検索モジュールの動作例を示す図である。ターゲット音声クリップ510は、特徴抽出部に与えられて、複数のフレームに分割される。特徴抽出部はそして、ブロック530Aにおいて、フレーム毎の特徴ベクトルによって、特徴ベクトルシーケンス(540)を生成する。特徴ベクトルは、1以上のパラメータを含み得るので、x次元のベクトルであってもよい(ここで、x≧1)。ブロック570Aにおいて、特徴ベクトルシーケンス540は、以下のようなGMMを用いてモデル化されるとしてもよい。
図5に示す例では、カルバック−ライブラー(KL)距離またはKL最大距離を類似性測度として使用する。KL最大距離の算出を簡略化するべく、音声セグメントすべてに用いられるGMMではガウス成分共通群が共通している、つまり、i番目のガウス成分について、平均
ターゲット音声クリップ510を特定するべく検索される入力音声ストリーム520は、特徴抽出部に与えられるとしてもよい。ブロック530Bにおいて、特徴抽出部は入力音声ストリームを、互いに部分的に重複する複数のセグメントに分割する。特徴抽出部はさらに、各セグメントを、互いに部分的に重複する複数のフレームに分割して、フレーム毎に特徴ベクトルを抽出する。ブロック560は、入力音声ストリーム520の特徴ベクトルシーケンスを示すと共に、当該音声ストリームが互いに部分的に重複する複数のセグメントに分割されている様子を示す。例えば、ターゲット音声クリップの長さと同じサイズのウィンドウを入力音声ストリーム520に適用するとしてもよい。説明のために、セグメント560Aを得るべくターゲット音声クリップの特徴ベクトルシーケンスに対してウィンドウが図示されているが、この場合セグメントは1つしかないので、ターゲット音声クリップにウィンドウを適用する必要は通常ない。シフトするウィンドウを入力音声ストリームに適用すると、560Bおよび560Cのような部分的に重複する複数のセグメントが得られる。ウィンドウのシフト量は、セグメント560Bからセグメント560Cまでの間で時間τであり、ここでτはウィンドウサイズよりも小さい。
The
各音声セグメントはCCGMMを用いてモデル化される。例えば、セグメント560Bはブロック570Bでモデル化され、セグメント560Cはブロック570Cでモデル化される。入力音声ストリーム520の各セグメントのモデルとターゲット音声クリップ510のモデルは、重みの組み合わせは異なるが共通のガウス成分を有する。一実施形態によると、特徴ベクトルは入力音声ストリーム全体からフレーム毎に抽出されて、入力音声ストリーム全体に対応する長い特徴ベクトルシーケンスが生成されるとしてもよい。続いて、N×FL(ここで、Nは正の整数でありFLはフレームの長さ)の長さを持つウィンドウが、当該長い特徴ベクトルシーケンスに適用される。ウィンドウ内の複数の特徴ベクトルは、一の音声セグメントの一の特徴ベクトルを構成し、この特徴ベクトルはCCGMMを構築するために利用される。ウィンドウは、時間τだけ前方向にシフトされる。
Each speech segment is modeled using CCGMM. For example,
セグメントがターゲット音声クリップと略同一か否か決定するべく、当該セグメントのモデルとターゲット音声クリップのモデルとの間のKL最大距離を以下のようにして算出するとしてもよい。
図6は、マルチプロセッサシステムにおいてロバスト且つ並列な音声検索を実行する音声検索モジュール600の一例を示すブロック図である。音声検索モジュール600は、分割機構610と、スケジューラ620と、I/O最適化部630と、複数の音声検索部(例えば640A、・・・、640N)とを備える。分割機構610は、大きい音声ストリームを複数のより小さいサブストリームに分割、および/または、大きい音声データベースを複数の小グループに分割するとしてもよい。図7A、図7Bおよび図7Cは、マルチプロセッサシステムにおいてロバスト且つ並列な音声検索を実行するべく大きい音声データベースを小グループに分割する方法を示す図である。図7Aは、単一の大きな音声ストリーム710を含むデータベースの一例を示す図である。分割機構は、音声ストリーム710を複数のより小さいサブストリーム712、714および716に分割するとしてもよい。ここで、各サブストリームは1グループを構成している。各サブストリームの長さは互いに異なるとしてもよいが、処理を単純化するべく通常は均一な長さとする。ターゲット音声クリップの正確な検出を見落とすことのないように、各サブストリームは直後のサブストリームと重複しており、2つの隣接するサブストリーム(例えば、712および714、714および716)間での重複部分は、
図7Bは、複数の比較的小さい音声ストリーム(例えば、720、725、730、735、および740)を含む別の例のデータベースを示す図である。一実施形態によると、分割機構610は当該データベースを、各グループが1つの音声ストリームのみを含むように、複数の小グループに分割するとしてもよい。別の実施形態によると、図7Bに示すように、分割機構はデータベースを、一部のグループはそれぞれが音声ストリームを1つのみ含み、他のグループはそれぞれが複数の小さい音声ストリームを含むように、複数の小グループに分割してもよい。図7Cは、複数の比較的小さい音声ストリーム(例えば、750、755および760)と大きな音声ストリーム(例えば770)とを含むさらに別の例のデータベースを示す図である。分割機構は、比較的小さい音声ストリームを、各グループが音声ストリーム1つのみを含むように複数のグループに分割するとしてもよいし、または、一部のグループは音声ストリームを1つのみ含み(例えば、750)他のグループは複数の小さい音声ストリームを含む(例えば、755および760を同じグループに入れるとしてもよい)ように複数のグループに分割するとしてもよい。770のような大きい音声ストリームについては、分割機構は、互いに部分的に重複する複数のより小さいサブストリーム(例えば、772および774)に分割するとしてもよい。ここで、図7Aに示した方法に従って、各サブストリームは1グループを構成するとしてもよい。
FIG. 7B illustrates another example database that includes multiple relatively small audio streams (eg, 720, 725, 730, 735, and 740). According to one embodiment, the
また、分割機構は、演算の重複(大きな音声ストリームが互いに部分的に重複する複数のより小さいサブストリームに分割される場合)および複数のプロセッサによる並列処理における負荷の不均衡を低減するように、大きな音声データベースを複数の適切なサイズの複数のグループに分割する。グループのサイズが小さくなると、演算の重複部分が大きくなり得る一方、グループのサイズが大きくなると、負荷の不均衡が著しくなってしまうことがある。一実施形態によると、グループのサイズはターゲット音声クリップのサイズの約25倍であるとしてもよい。 The splitting mechanism also reduces computational load (when large audio streams are split into multiple smaller substreams that partially overlap each other) and load imbalance in parallel processing by multiple processors, Divide a large speech database into multiple groups of appropriate size. As the group size decreases, the overlap of operations can increase, while as the group size increases, the load imbalance can become significant. According to one embodiment, the size of the group may be about 25 times the size of the target audio clip.
図6に戻って、スケジューラ620は、マルチプロセッサシステム内の複数のプロセッサに対して大きなデータベースの複数のグループを動的にスケジューリングして、各プロセッサが一度に1つの処理対象のグループを持つようにするとしてもよい。スケジューラは、当該システムの複数のプロセッサが利用可能か否かを定期的に確認して、利用可能なプロセッサそれぞれに対して音声グループを割り当てて、処理およびターゲット音声クリップの検索を実行させる。その後別のプロセッサが利用可能な状態になると、スケジューラはこのプロセッサに1つのグループを割り当てるとしてもよい。スケジューラはまた、プロセッサがその前に割り当てられたグループについて検索を終了した直後に、ほかのプロセッサが検索処理を終了したかどうかに関わらず、当該プロセッサに対してまだ検索がすんでいない音声グループを割り当てる。実際のところ、グループのサイズが同一であったとしても、検索処理を省略するセグメントの数はセグメント毎に異なる可能性があるので、同じターゲット音声クリップを検索するのに必要な時間はプロセッサごとに異なる場合がある。上述したような動的スケジューリングを利用することで、負荷の不均衡を効果的に低減し得る。
Returning to FIG. 6, the
I/O最適化部630は、システムインターコネクト(例えば、システムのプロセッサと共有システムメモリとを接続するシステムバス)上でのI/Oトラフィックを最適化するとしてもよい。I/O最適化部は、各プロセッサのデータ範囲が定義されている間、最初は、検索対象の音声データベース全体をディスクからメモリへロードしないと判断するとしてもよい。また、I/O最適化部は、メモリから受け取る割り当てられたセグメントを各プロセッサが読む際には、一度に一部分のみを読ませるとしてもよい。I/Oトラフィックを最適化することによって、I/O最適化部は、I/Oコンテンションを低減し、I/O処理および演算を重複させ、演算効率の向上に貢献するとしてもよい。この結果、音声検索のスケーラビリティを大きく改善することができる。
The I /
音声検索モジュール600はさらに、複数の音声検索部640Aから640Nを備える。各音声検索部(例えば640A)は、一のプロセッサに配置されて、当該プロセッサに割り当てられるグループを処理してターゲット音声クリップを検索する。図4に図示されている音声検索モジュール400と同様に、音声検索部は、特徴抽出部(例えば410)と、モデル化機構(例えば420)と、決定部(例えば430)とを有する。各音声検索部は、自身に割り当てられた、ターゲット音声クリップを特定するための音声グループの連続能動型検索を実行する。これは、音声グループの音声ストリームを、互いに部分的に重複する複数のセグメントに分割し、各セグメントについて特徴ベクトルシーケンスを抽出して、式(1)から(4)で示したようにCCGMMに基づいて各セグメントをモデル化することによって行われる。ここで、セグメントの長さはターゲット音声クリップの長さと同じである。また、すべての音声検索部が利用する、ターゲット音声クリップ用のCCGMMは、音声検索部のうちの1つが一度推定すればそれでよい。各音声検索部は、各セグメントのモデルとターゲット音声クリップのモデルとの間のKL最大距離を算出する。このKL最大距離に基づいて、音声検索部はターゲット音声クリップが検出されるか否か判断するとしてもよい。さらに、各音声検索部は、現在のセグメントのKL最大距離がしきい値よりも大きい場合には、現在のセグメントに続く複数のセグメントを省略するとしてもよい。
The
図8は、マルチプロセッサシステムにおいてロバスト且つ並列な音声検索を実行するためのプロセス800の一例を示す擬似コードを示す図である。ライン802において、音声検索モジュールは初期化されるとしてもよい。例えば、ターゲット音声クリップファイルおよび音声データベースファイルを開けて、グローバルパラメータを初期化するとしてもよい。ライン804において、大きな音声データベースを、図7A、図7Bおよび図7Cに図示しているように、NG個の小グループに分割するとしてもよい。ライン806において、モデル(例えば、CCGMM)をターゲット音声クリップについて構築するとしてもよい。ライン808において、NG個の音声グループを利用可能なプロセッサに対して動的にスケジューリングして、スケジューリングされたグループの並列処理を開始するとしてもよい。ライン808は、並列実装をセットアップする1つの命令を利用し、その他の並列実装命令もまた用いられ得る。
FIG. 8 is a pseudo code illustrating an example of a
ライン810からライン846は、マルチプロセッサシステムのプロセッサが並列に、NG個のグループのそれぞれをどのように処理し、且つどのように検索してターゲットを特定するかを示している。説明の便宜上、ライン812からライン846の処理は、第1番目のグループから最後のグループまでの、繰り返しとして図示されていることに留意されたい。実際には、複数のプロセッサが利用可能な場合、これらの利用可能なプロセッサによって複数のグループが並列に処理される。ライン814において、各グループの複数の音声ストリームのうち一部またはすべてを、これらのストリームがターゲット音声クリップよりも時間的に長い場合には、互いに部分的に重複するNS個のセグメントにさらに分割するとしてもよい。ライン816は、グループの各セグメントについて、ライン818から832に示すような、繰り返しプロセスを開始させる。ライン820において、特徴ベクトルシーケンス(フレーム毎に)をセグメントから抽出するとしてもよい。ライン822において、モデル(例えば、式(1)から式(3)に示すようなCCGMM)をセグメントについて構築するとしてもよい。ライン824において、セグメントのモデルとターゲット音声クリップのモデルとの間の距離(例えば、式(4)に示すようなKL最大距離)を算出するとしてもよい。ライン826において、セグメントがターゲット音声クリップと一致するか否かを、ライン824において算出された距離と所定のしきい値#1とに基づいて、判断するとしてもよい。距離がしきい値#1未満であれば、セグメントはターゲット音声クリップに一致する。ライン828において、同じ音声ストリーム/サブストリーム内の所定数の後続セグメント(例えば、M個のセグメント)の検索を省略するか否かを、ライン824において算出された距離と所定のしきい値#2とに基づいて、判断するとしてもよい。距離がしきい値#2よりも大きい場合には、M個のセグメントの検索を省略するとしてもよい。一実施形態によると、省略するセグメントの数は距離の値に応じて変わるとしてもよい。ライン830において、検索結果(例えば、各グループにおける一致セグメントのインデックスまたは開始時間)を、当該グループを処理するプロセッサに対してローカルなアレイに格納するとしてもよい。ライン842において、すべてのプロセッサから得られる、ローカルアレイに格納した検索結果を要約してユーザに出力するとしてもよい。
Lines 810 to 846 show how the processors of the multiprocessor system process each of the NG groups in parallel and how to search to identify the target. Note that for convenience of explanation, the processing from
図8に概略を示したロバスト且つ並列な検索ストラテジを、I/O最適化等のほかの技術と共に用いることによって、マルチプロセッサシステムにおいて大きな音声データベース内でターゲット音声クリップを検索するスピードを大きく改善し得る。1つの実験によると、27時間の音声ストリームにおいて15秒のターゲット音声クリップを検索するスピードは、16ウェイ(16−way)のユニシスシステムにおいて、同じターゲット音声クリップにおいて同じ音声ストリームを連続して検索する場合に比べると、11倍に早くなることが分かっている。 The robust and parallel search strategy outlined in FIG. 8 along with other techniques such as I / O optimization greatly improves the speed of searching for target audio clips in a large audio database in a multiprocessor system. obtain. According to one experiment, the speed of searching for a 15-second target audio clip in a 27-hour audio stream is to continuously search for the same audio stream in the same target audio clip in a 16-way Unisys system. It is known that it is 11 times faster than the case.
一実施形態によると、変形された検索ストラテジが用いられ得る。このストラテジを用いると、ターゲット音声クリップの最初のK個(K≧1)のフレームに対して仮モデル(例えば、CCGMM)を構築して、ターゲット音声クリップ全体に対して完全モデルを構築するとしてもよい。このためまず、音声セグメントの最初のK個(K≧1)のフレームに対して仮モデル(例えば、CCGMM)が構築され得る。能動型検索において、各音声セグメントの最初のK個のフレームの仮モデルとターゲット音声クリップの最初のK個のフレームの仮モデルとがまず比較されて、仮類似性測度を生成する。仮類似性測度によってこれらの2つの仮モデルが非常に類似していることが分かれば、音声セグメント全体に対して完全モデルが構築されて、ターゲット音声クリップ全体の完全モデルに対して比較される。そうでない場合は、音声セグメントに対して完全モデルは構築されず、最初のK個のフレームに対して仮モデルをまず構築してこの仮モデルとターゲット音声クリップの仮モデルを比較することによって、次のセグメントを検索するとしてもよい。このような変形検索ストラテジは、さらに演算負荷を低減し得る。 According to one embodiment, a modified search strategy may be used. Using this strategy, a temporary model (eg, CCGMM) is built for the first K (K ≧ 1) frames of the target audio clip, and a complete model is built for the entire target audio clip. Good. Thus, first, a temporary model (eg, CCGMM) can be constructed for the first K (K ≧ 1) frames of the speech segment. In the active search, the temporary model of the first K frames of each audio segment is first compared with the temporary model of the first K frames of the target audio clip to generate a temporary similarity measure. If the preliminary similarity measure shows that these two temporary models are very similar, a complete model is constructed for the entire audio segment and compared against the complete model for the entire target audio clip. Otherwise, a complete model is not built for the audio segment, and a temporary model is first built for the first K frames and then compared with the temporary model and the temporary model of the target audio clip. You may search for segments. Such a modified search strategy can further reduce the computation load.
開示されている主題の実施形態例を図1から図8に示すブロック図およびフローチャートを参照しつつ説明したが、当業者であれば、開示されている主題はほかの多くの方法によっても実施され得ることが容易に理解できる。例えば、フローチャートにおけるブロックの実行順序は変更するとしてもよいし、および/または、説明したブロック図/フローチャートのブロックはその一部を変更、削除または合成するとしてもよい。 While example embodiments of the disclosed subject matter have been described with reference to block diagrams and flowcharts shown in FIGS. 1-8, those skilled in the art can implement the disclosed subject matter in many other ways. Easy to understand. For example, the execution order of the blocks in the flowchart may be changed, and / or a part of the blocks in the block diagram / flow chart described may be changed, deleted, or combined.
前述の説明では、開示されている主題をさまざまな側面から説明した。説明に当たっては、主題を十分に説明することを目的として、具体的な数値、システムおよび構成を記載した。しかし、本開示内容を参考にすることによって、このような具体的且つ詳細な内容がなくても主題を実施し得ることは、当業者には明らかである。また、公知の特徴、構成要素またはモジュールは、開示されている主題をあいまいにすることを避けるべく、省略、簡略化、合成または分割した。 In the foregoing description, the disclosed subject matter has been described in various aspects. In the description, specific numerical values, systems, and configurations are described for the purpose of fully explaining the subject matter. However, it will be apparent to those skilled in the art, upon reference to the disclosure, that the subject matter may be practiced without such specific details. In other instances, well-known features, components or modules have been omitted, simplified, combined or divided in order to avoid obscuring the disclosed subject matter.
開示されている主題のさまざまな実施形態は、ハードウェア、ファームウェア、ソフトウェアまたはそれらの組み合わせにおいて実装され得る。また、開示されている主題のさまざまな実施形態は、プログラムコードを参照することによって、またはプログラムコードと関連付けることによって記述され得る。プログラムコードは、例えば、設計のシミュレーション、エミュレーションおよび製造用の命令、機能、手順、データ構造、ロジック、アプリケーションプログラム、設計表現またはフォーマットであり、機械によってアクセスされると、機械はタスクを実行し、抽象データ型または低水準ハードウェアコンテキストを定義して、結果を生成する。 Various embodiments of the disclosed subject matter can be implemented in hardware, firmware, software, or combinations thereof. Also, various embodiments of the disclosed subject matter may be described by referring to or associating with program code. Program code is, for example, design simulation, emulation and manufacturing instructions, functions, procedures, data structures, logic, application programs, design representations or formats, when accessed by a machine, the machine performs a task, Define an abstract data type or low-level hardware context and generate a result.
シミュレーション用の場合、プログラムコードは、設計されたハードウェアがどのように動作するかを示すモデルを本質的に提供する、ハードウェア記述言語または別の機能記述言語を用いてハードウェアを表現するとしてもよい。プログラムコードは、アセンブリまたは機械言語、もしくはコンパイルおよび/または解釈され得るデータであってもよい。また、ソフトウェアとは、ある形態または別の形態によって、動作を実行するかまたは、結果を生じさせるものと認識することは当該技術分野では普通である。このような表現は、プロセッサに動作を実行させるか、または結果を生成させる処理システムによるプログラムコードの実行を簡単に説明するためのものに過ぎない。 For simulation purposes, the program code represents the hardware using a hardware description language or another functional description language that essentially provides a model of how the designed hardware works. Also good. The program code may be assembly or machine language, or data that can be compiled and / or interpreted. It is also common in the art to recognize software as performing an action or producing a result in one form or another. Such an expression is merely intended to briefly describe the execution of program code by a processing system that causes a processor to perform an operation or generate a result.
プログラムコードは、例えば、揮発性および/または不揮発性メモリに格納されるとしてもよい。揮発性および/または不揮発性メモリは、ストレージデバイスおよび/または関連付けられる機械可読または機械アクセス可能媒体であってよい。機械可読または機械アクセス可能媒体は、固体メモリ、ハードドライブ、フロッピーディスク、光学ストレージ、テープ、フラッシュメモリ、メモリスティック、デジタルビデオディスク、デジタル多用途ディスク(DVD)等であってよいし、機械アクセス可能な生物学的状態保存ストレージ等のより珍しい媒体であってもよい。機械可読媒体は、機械が読み出し可能な形式で情報を格納、送信または受信するどのような機構を有するとしてもよく、当該媒体は、プログラムコードを符号化している伝播信号または搬送波の電気的形態、光学的形態、音響的形態またはその他の形態を通過させる有形の媒体、例えば、アンテナ、光ファイバ、通信インターフェース等を有するとしてもよい。プログラムコードは、パケット、シリアルデータ、パラレルデータ、伝播信号等の形態で送信されるとしてもよく、圧縮または暗号化された形式で利用されるとしてもよい。 The program code may be stored in, for example, volatile and / or nonvolatile memory. Volatile and / or nonvolatile memory can be a storage device and / or an associated machine-readable or machine-accessible medium. The machine-readable or machine-accessible medium may be solid state memory, hard drive, floppy disk, optical storage, tape, flash memory, memory stick, digital video disk, digital versatile disk (DVD), etc., and machine accessible It may be a more unusual medium such as a biological state storage. A machine-readable medium may have any mechanism for storing, transmitting, or receiving information in a form readable by a machine, such as an electrical form of a propagated signal or carrier wave encoding program code, It may have a tangible medium that passes through optical, acoustic, or other forms, such as an antenna, optical fiber, communication interface, and the like. The program code may be transmitted in the form of a packet, serial data, parallel data, a propagation signal, etc., or may be used in a compressed or encrypted form.
プログラムコードは、プロセッサと、当該プロセッサによって読み出し可能な揮発性および/または不揮発性メモリと、少なくとも1つの入力デバイスおよび/または1以上の出力デバイスとを備える、移動可能または固定コンピュータ、携帯情報端末(PDA)、セットトップボックス、携帯電話およびポケットベル(登録商標)、ならびにその他の電子デバイスといった、プログラム可能な機械で実行されるプログラムにおいて実装されるとしてもよい。プログラムコードは、入力デバイスを用いて入力されたデータに対して適用されて、上述した実施形態を実行して出力情報を生成するとしてもよい。出力情報は、1以上の出力デバイスに適用されるとしてもよい。当業者であれば、開示されている主題の実施形態はさまざまなコンピュータシステム構成によって実施され得ることに想到し得る。そのようなコンピュータシステム構成は、マルチプロセッサまたはマルチコアプロセッサシステム、ミニコンピュータ、メインフレームコンピュータ、実質的にいかなるデバイスにも埋め込み得るパーベイシブ(pervasive)またはミニチュア型のコンピュータまたはプロセッサを含む。開示されている主題の実施形態はまた、タスクを実行するのは通信ネットワークを介してリンクされているリモート処理デバイスである分散コンピューティング環境において実施され得る。 The program code is a mobile or stationary computer, personal digital assistant (PC) comprising a processor, volatile and / or non-volatile memory readable by the processor, at least one input device and / or one or more output devices. (PDA), set-top boxes, mobile phones and pagers, and other electronic devices may be implemented in programs that run on programmable machines. The program code may be applied to data input using an input device, and output information may be generated by executing the above-described embodiment. The output information may be applied to one or more output devices. One skilled in the art can appreciate that embodiments of the disclosed subject matter can be implemented by various computer system configurations. Such computer system configurations include multiprocessor or multicore processor systems, minicomputers, mainframe computers, pervasive or miniature computers or processors that can be embedded in virtually any device. Embodiments of the disclosed subject matter can also be practiced in distributed computing environments where it is a remote processing device that is linked through a communications network to perform a task.
処理は順次実行されるものとして説明されているが、一部の処理については、実際には、並列に、同時に、および/または分散環境下において実行されるとしてもよく、プログラムコードは、シングルプロセッサ型またはマルチプロセッサ型の機械によってアクセスされるべく、ローカルおよび/またはリモートに格納されている。また、一部の実施形態によると、処理の順序は、開示されている主題の精神から逸脱することなく並び替え得る。プログラムコードは、埋め込まれているコントローラによって用いられるとしてもよいし、埋め込まれたコントローラと関連して利用されるとしてもよい。 Although the processes are described as being executed sequentially, some processes may actually be executed in parallel, simultaneously, and / or in a distributed environment, and the program code may be single processor. Stored locally and / or remotely for access by type or multiprocessor machines. Also, according to some embodiments, the order of processing may be rearranged without departing from the spirit of the disclosed subject matter. The program code may be used by the embedded controller or may be used in connection with the embedded controller.
開示されている主題を実施形態例を参照しつつ説明してきたが、この説明は本発明を限定するものと解釈されるべきではない。実施形態例のさまざまな変形例および主題のその他の実施形態は、当業者には明らかであり、開示されている主題の範囲内に含まれるものとする。 Although the disclosed subject matter has been described with reference to example embodiments, this description should not be construed as limiting the invention. Various modifications of the example embodiments and other embodiments of the subject matter will be apparent to those skilled in the art and are intended to be within the scope of the disclosed subject matter.
Claims (18)
前記音声データベースを複数のグループに分割する段階と、
前記ターゲット音声クリップについてモデルを構築する段階と、
前記マルチプロセッサシステムの複数のプロセッサに対して前記複数のグループを動的にスケジューリングする段階と、
前記ターゲット音声クリップを検索するために、前記複数のプロセッサを用いて前記スケジューリングされた複数のグループを並列に処理する段階と
を備え、
前記スケジューリングされた複数のグループを並列に処理する段階は、
前記スケジューリングされた複数のグループのそれぞれを複数のセグメントに分割する段階と、
前記ターゲット音声クリップに含まれる最初の一部のフレームに対して仮モデルを構築し、少なくとも1つの前記セグメントに含まれる最初の一部のフレームに対して仮モデルを構築し、構築した両方の前記仮モデルの仮類似性測度を求める段階と、
前記仮類似性測度が両方の前記仮モデルが類似することを示す場合、各前記セグメントについてモデルを構築し、前記ターゲット音声クリップの前記モデルと各前記セグメントの前記モデルとの類似性測度を求め、前記類似性測度に基づいて、前記セグメントは前記ターゲット音声クリップと一致すると決定する段階と、
前記類似性測度に基づいて、直後の前記セグメントの処理を省略する段階と、
を有する方法。 A method of searching an audio database and identifying a target audio clip in a multiprocessor system,
Dividing the voice database into a plurality of groups;
Building a model for the target audio clip;
Dynamically scheduling the plurality of groups for a plurality of processors of the multiprocessor system;
Processing the plurality of scheduled groups in parallel using the plurality of processors to retrieve the target audio clip; and
Processing the plurality of scheduled groups in parallel includes:
Dividing each of the plurality of scheduled groups into a plurality of segments;
A temporary model is constructed for the first partial frame included in the target audio clip, and a temporary model is constructed for the first partial frame included in at least one of the segments. Obtaining a provisional similarity measure for the provisional model;
If the temporary similarity measure indicates that both the temporary models are similar , build a model for each of the segments and determine a similarity measure between the model of the target audio clip and the model of each of the segments ; Determining that the segment matches the target audio clip based on the similarity measure;
Omitting processing of the immediately following segment based on the similarity measure;
Having a method.
前記類似性測度の値に応じて定まる数の前記セグメントの処理を省略する段階を含む、
請求項1に記載の方法。 The step of omitting the processing of the segment immediately after the
Omitting processing of a number of the segments determined according to the value of the similarity measure,
The method of claim 1.
前記ターゲット音声クリップから特徴ベクトルシーケンスを抽出する段階と、複数のガウス成分を含むガウス混合モデル(GMM)に基づいて前記特徴ベクトルシーケンスをモデル化する段階とを有し、
各前記セグメントについてモデルを構築する段階は、
各前記セグメントについて、前記セグメントの特徴ベクトルシーケンスを抽出する段階と、複数のガウス成分を含むガウス混合モデル(GMM)に基づいて前記特徴ベクトルシーケンスをモデル化する段階とを含む
請求項1または2に記載の方法。 Building a model for the target audio clip comprises:
Extracting a feature vector sequence from the target audio clip; and modeling the feature vector sequence based on a Gaussian mixture model (GMM) including a plurality of Gaussian components;
Building a model for each said segment consists of:
3. For each of the segments, including extracting a feature vector sequence of the segment and modeling the feature vector sequence based on a Gaussian mixture model (GMM) including a plurality of Gaussian components. The method described.
請求項1から3のいずれか1項に記載の方法。 The method according to any one of claims 1 to 3, wherein the plurality of divided segments have portions that partially overlap each other.
請求項1から4のいずれか1項に記載の方法。 The step of dividing the speech database determines a size for each of the plurality of groups so as to reduce a load imbalance and an amount of operations overlapping between the plurality of groups in the parallel processing of the plurality of groups. The method according to any one of claims 1 to 4, further comprising:
前記類似性測度が予め定められたしきい値以上であれば、前記セグメントは前記ターゲット音声クリップと一致すると決定する段階を含む
請求項1から5のいずれか1項に記載の方法。 Based on the similarity measure, determining that the segment matches the target audio clip comprises:
The method according to any one of claims 1 to 5, comprising determining that the segment matches the target audio clip if the similarity measure is greater than or equal to a predetermined threshold.
音声データベースを複数のグループに分割する段階と、
ターゲット音声クリップについてモデルを構築する段階と、
マルチプロセッサシステムの複数のプロセッサに対して前記複数のグループを動的にスケジューリングする段階と、
前記ターゲット音声クリップを検索するために、前記複数のプロセッサを用いて前記スケジューリングされた複数のグループを並列に処理する段階と
を備える処理を実行させ、
前記スケジューリングされた複数のグループを並列に処理する段階は、
前記スケジューリングされた複数のグループのそれぞれを複数のセグメントに分割する段階と、
前記ターゲット音声クリップに含まれる最初の一部のフレームに対して仮モデルを構築し、少なくとも1つの前記セグメントに含まれる最初の一部のフレームに対して仮モデルを構築し、構築した両方の前記仮モデルの仮類似性測度を求める段階と、
前記仮類似性測度が両方の前記仮モデルが類似することを示す場合、各前記セグメントについてモデルを構築し、前記ターゲット音声クリップの前記モデルと各前記セグメントの前記モデルとの類似性測度を求め、前記類似性測度に基づいて、前記セグメントは前記ターゲット音声クリップと一致すると決定する段階と、
前記類似性測度に基づいて、直後の前記セグメントの処理を省略する段階と、
を実行させる、
プログラム。 When executed by a computer , the computer
Dividing the speech database into groups,
Building a model for the target audio clip;
Dynamically scheduling the plurality of groups for a plurality of processors of a multiprocessor system;
Processing the plurality of scheduled groups in parallel using the plurality of processors to retrieve the target audio clip; and
Processing the plurality of scheduled groups in parallel includes:
Dividing each of the plurality of scheduled groups into a plurality of segments;
A temporary model is constructed for the first partial frame included in the target audio clip, and a temporary model is constructed for the first partial frame included in at least one of the segments. Obtaining a provisional similarity measure for the provisional model;
If the temporary similarity measure indicates that both the temporary models are similar , build a model for each of the segments and determine a similarity measure between the model of the target audio clip and the model of each of the segments ; Determining that the segment matches the target audio clip based on the similarity measure;
Omitting processing of the immediately following segment based on the similarity measure;
To execute,
Program .
前記類似性測度の値に応じて定まる数の前記セグメントの処理を省略する段階を含む、
請求項7に記載のプログラム。 The step of omitting the processing of the segment immediately after the
Omitting processing of a number of the segments determined according to the value of the similarity measure,
The program according to claim 7.
前記ターゲット音声クリップから特徴ベクトルシーケンスを抽出する段階と、複数のガウス成分を含むガウス混合モデル(GMM)に基づいて前記特徴ベクトルシーケンスをモデル化する段階とを有し、
各前記セグメントについてモデルを構築する段階は、
各前記セグメントについて、前記セグメントの特徴ベクトルシーケンスを抽出する段階と、複数のガウス成分を含むガウス混合モデル(GMM)に基づいて前記特徴ベクトルシーケンスをモデル化する段階とを含む
請求項7または8に記載のプログラム。 Building a model for the target audio clip comprises:
Extracting a feature vector sequence from the target audio clip; and modeling the feature vector sequence based on a Gaussian mixture model (GMM) including a plurality of Gaussian components;
Building a model for each said segment consists of:
The method according to claim 7 or 8, comprising, for each of the segments, extracting a feature vector sequence of the segment and modeling the feature vector sequence based on a Gaussian mixture model (GMM) including a plurality of Gauss components. The listed program .
請求項7から9のいずれか1項に記載のプログラム。 The program according to claim 7, wherein the plurality of segments have portions that partially overlap each other.
請求項7から10のいずれか1項に記載のプログラム。 The step of dividing the speech database determines a size for each of the plurality of groups so as to reduce a load imbalance and an amount of operations overlapping between the plurality of groups in the parallel processing of the plurality of groups. The program according to any one of claims 7 to 10, further comprising:
前記類似性測度が予め定められたしきい値以上であれば、前記セグメントは前記ターゲット音声クリップと一致すると決定する段階を含む
請求項7から11のいずれか1項に記載のプログラム。 Based on the similarity measure, determining that the segment matches the target audio clip comprises:
The program according to any one of claims 7 to 11, further comprising: determining that the segment matches the target audio clip if the similarity measure is equal to or greater than a predetermined threshold.
前記メモリと接続される複数のプロセッサコアとを備え、前記音声データベースを検索してターゲット音声クリップを特定する装置であって、
前記音声データベースを複数のグループに分割し、
前記ターゲット音声クリップについてモデルを構築し、
複数の前記プロセッサコアに対して前記複数のグループを動的にスケジューリングし、
各前記プロセッサコアにより、前記スケジューリングされた複数のグループのそれぞれを複数のセグメントに分割し、
前記ターゲット音声クリップに含まれる最初の一部のフレームに対して仮モデルを構築し、少なくとも1つの前記セグメントに含まれる最初の一部のフレームに対して仮モデルを構築し、構築した両方の前記仮モデルの仮類似性測度を求め、
前記仮類似性測度が両方の前記仮モデルが類似することを示す場合、各前記プロセッサコアにより、各前記セグメントについてモデルを構築し、各前記プロセッサコアにより、前記ターゲット音声クリップの前記モデルと各前記セグメントの前記モデルとの類似性測度を求め、各前記プロセッサコアにより、前記類似性測度に基づいて、前記セグメントは前記ターゲット音声クリップと一致すると決定し、
各前記プロセッサコアにより、前記類似性測度に基づいて、直後の前記セグメントの処理を省略し、
分割された複数の前記セグメントは互いに部分的に重複する部分を有する
装置。 A memory for receiving voice data from the voice database;
A device comprising: a plurality of processor cores connected to the memory; and a target audio clip is identified by searching the audio database,
Dividing the voice database into a plurality of groups;
Build a model for the target audio clip,
Dynamically scheduling the plurality of groups for the plurality of processor cores;
Each of the processor cores divides each of the scheduled groups into a plurality of segments,
A temporary model is constructed for the first partial frame included in the target audio clip, and a temporary model is constructed for the first partial frame included in at least one of the segments. Find a temporary similarity measure for the temporary model,
If the temporary similarity measure indicates that both the temporary models are similar, each processor core builds a model for each of the segments, and each processor core causes the model of the target audio clip and each of the Determining a similarity measure of the segment with the model, and determining, by each of the processor cores, that the segment matches the target audio clip based on the similarity measure;
Each processor core omits the processing of the immediately following segment based on the similarity measure,
The plurality of divided segments have portions that partially overlap each other.
請求項13に記載の装置。 Each processor omits processing of the segment immediately after a number determined according to the value of the similarity measure.
The apparatus of claim 13.
各前記セグメントについて、前記セグメントの特徴ベクトルシーケンスを抽出すること、および複数のガウス成分を含むガウス混合モデル(GMM)に基づいて前記特徴ベクトルシーケンスをモデル化することにより、各前記セグメントについてモデルを構築する、
請求項13または14に記載の装置。 Building a model for the target audio clip by extracting a feature vector sequence from the target audio clip and modeling the feature vector sequence based on a Gaussian mixture model (GMM) including a plurality of Gaussian components;
For each said segment, construct a model for each said segment by extracting the feature vector sequence of said segment and modeling said feature vector sequence based on a Gaussian mixture model (GMM) comprising a plurality of Gaussian components To
15. Apparatus according to claim 13 or 14.
請求項13から15のいずれか1項に記載の装置。 In the parallel processing of the plurality of groups, the size is determined for each of the plurality of groups and the speech database is determined so as to reduce load imbalance and the amount of computation overlapping between the plurality of groups. The apparatus according to any one of claims 13 to 15, which is divided into a plurality of groups of sizes.
請求項13から16のいずれか1項に記載の装置。 The apparatus according to any one of claims 13 to 16, wherein the segment is determined to match the target audio clip if the similarity measure is greater than or equal to a predetermined threshold.
請求項13から17のいずれか1項に記載の装置。 The apparatus according to claim 13, wherein the plurality of processor cores are included in a plurality of processors.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2012000070A JP5210440B2 (en) | 2012-01-04 | 2012-01-04 | Method, program and apparatus for high speed speech retrieval |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2012000070A JP5210440B2 (en) | 2012-01-04 | 2012-01-04 | Method, program and apparatus for high speed speech retrieval |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2009516853A Division JP5006929B2 (en) | 2006-07-03 | 2006-07-03 | Method and apparatus for high-speed voice search |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2012133371A JP2012133371A (en) | 2012-07-12 |
JP5210440B2 true JP5210440B2 (en) | 2013-06-12 |
Family
ID=46648948
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2012000070A Expired - Fee Related JP5210440B2 (en) | 2012-01-04 | 2012-01-04 | Method, program and apparatus for high speed speech retrieval |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP5210440B2 (en) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20220012538A1 (en) | 2020-07-07 | 2022-01-13 | Nec Laboratories America, Inc. | Compact representation and time series segment retrieval through deep learning |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH11282857A (en) * | 1998-03-27 | 1999-10-15 | Animo:Kk | Voice retrieving device and recording medium |
JP3065314B1 (en) * | 1998-06-01 | 2000-07-17 | 日本電信電話株式会社 | High-speed signal search method and apparatus and recording medium thereof |
US6774917B1 (en) * | 1999-03-11 | 2004-08-10 | Fuji Xerox Co., Ltd. | Methods and apparatuses for interactive similarity searching, retrieval, and browsing of video |
JP2003186890A (en) * | 2001-12-13 | 2003-07-04 | Mitsubishi Electric Corp | Storage and parallel processing methods for continuous media data |
WO2004084095A1 (en) * | 2003-03-18 | 2004-09-30 | Fujitsu Limited | Information retrieving system |
JP2004317845A (en) * | 2003-04-17 | 2004-11-11 | Nagoya Industrial Science Research Inst | Model data generation device, model data generation method, and method therefor |
JP3848319B2 (en) * | 2003-11-11 | 2006-11-22 | キヤノン株式会社 | Information processing method and information processing apparatus |
DE602005018776D1 (en) * | 2004-07-01 | 2010-02-25 | Nippon Telegraph & Telephone | SYSTEM FOR DETECTING SECTION WITH A SPECIFIC ACOUSTIC SIGNAL, METHOD AND PROGRAM THEREFOR |
JP4595415B2 (en) * | 2004-07-14 | 2010-12-08 | 日本電気株式会社 | Voice search system, method and program |
-
2012
- 2012-01-04 JP JP2012000070A patent/JP5210440B2/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2012133371A (en) | 2012-07-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5006929B2 (en) | Method and apparatus for high-speed voice search | |
KR102315732B1 (en) | Speech recognition method, device, apparatus, and storage medium | |
JP7167074B2 (en) | Speech recognition method, device, equipment and computer-readable storage medium | |
KR101970041B1 (en) | Methods for Hybrid GPU/CPU Data Processing | |
US10971135B2 (en) | System and method for crowd-sourced data labeling | |
Mamou et al. | System combination and score normalization for spoken term detection | |
Xu et al. | Exploiting shared information for multi-intent natural language sentence classification. | |
CN110070859B (en) | Voice recognition method and device | |
Srikanthan et al. | Implementing the dynamic time warping algorithm in multithreaded environments for real time and unsupervised pattern discovery | |
Seki et al. | Vectorized Beam Search for CTC-Attention-Based Speech Recognition. | |
US11854536B2 (en) | Keyword spotting apparatus, method, and computer-readable recording medium thereof | |
Dixon et al. | Harnessing graphics processors for the fast computation of acoustic likelihoods in speech recognition | |
CN112825249A (en) | Voice processing method and device | |
EP2707808A2 (en) | Exploiting query click logs for domain detection in spoken language understanding | |
WO2023155724A1 (en) | Method and apparatus for designing ligand molecules | |
CN111078849B (en) | Method and device for outputting information | |
Wang et al. | Wekws: A production first small-footprint end-to-end keyword spotting toolkit | |
JP5210440B2 (en) | Method, program and apparatus for high speed speech retrieval | |
Katsurada et al. | Evaluation of fast spoken term detection using a suffix array | |
CN102456077B (en) | Method and device for rapidly searching audio frequency | |
KR101071017B1 (en) | Method and apparatus for fast audio search | |
Martínez et al. | Fast parallel audio fingerprinting implementation in reconfigurable hardware and GPUs | |
Sato et al. | Multi-modal modeling for device-directed speech detection using acoustic and linguistic cues | |
Gajjar et al. | Online unsupervised pattern discovery in speech using parallelization. | |
Kim et al. | Multi-user real-time speech recognition with a GPU |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20121016 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20130116 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20130205 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20130222 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20160301 Year of fee payment: 3 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 5210440 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
LAPS | Cancellation because of no payment of annual fees |