(57)【要約】プラットフォームにおけるアプリケーションのオーディオ・パフォーマンスの自動試験が、オーディオ・データのキャプチャを介して提供される。オーディオ・データには、他のものに加えて、サウンド・カード又は予めレンダリングされたバッファ・データを含む。オーディオ・データは、少なくとも第１の分解能と第２の分解能とにおいて当該オーディオ・データを記述するデータを含む記述データを生じるように処理される。この記述データは、データ・サンプルを比較し、２又はそれよりも多くのデータ・サンプルの類似性を記述するのに用いられる。この比較により、オーディオ・パフォーマンスが満足のいくものであるかどうかを判断することが可能になる。
2009523261.tif 000002
【特許請求の範囲】
【請求項１】
テスト・プラットフォームにおけるアプリケーションのオーディオ・パフォーマンスをテストする方法であって、
前記テスト・プラットフォームにおいて前記アプリケーションを動作させるステップ（３００）と、
前記テスト・プラットフォームにおける前記アプリケーションの前記動作からオーディオ・データを捕捉する（３１０）ステップと、
前記オーディオ・データを用いて、第１の分解能と第２の分解能とを少なくとも用いて前記オーディオ・データを記述するデータを含む第１の記述データを計算する（３２０）ステップと、
前記第１の記述データとターゲット・データとを比較する（３３０）ステップと、
を含むことを特徴とする方法。
【請求項２】
請求項１記載の方法において、前記テスト・プラットフォームにおいて前記アプリケーションを動作させる前記ステップは、予め特定されたテスト入力を前記テスト・プラットフォームにおいて動作している前記アプリケーションに提供するステップと含むことを特徴とする方法。
【請求項３】
請求項１記載の方法において、前記記述データを計算する前記ステップは、
それぞれが前記オーディオ・データを記述する少なくとも２つのサブバンドの組を計算するステップを含むことを特徴とする方法。
【請求項４】
請求項３記載の方法において、前記組の中の第１のサブバンドは前記オーディオ・データを前記第１の分解能で記述し、前記組の中の第２のサブバンドは前記オーディオ・データを前記第２の分解能で記述することを特徴とする方法。
【請求項５】
請求項３記載の方法において、前記サブバンドは、離散ウェーブレット変換を用いて計算されることを特徴とする方法。
【請求項６】
請求項１記載の方法において、前記記述データと前記ターゲット・データとを比較する前記ステップは、
前記オーディオ・データと前記ターゲット・データとのある特定の分解能における類似性をそれぞれが示す少なくとも２つの中間的な比較値を計算するステップと、
前記中間的な比較値に基づく最終的な比較値を計算するステップと、
を含むことを特徴とする方法。
【請求項７】
請求項６記載の方法において、最終的な比較値を計算する前記ステップは、前記中間的な比較値の中の少なくとも第１のものを前記中間的な比較値の中の少なくとも第２のものとは異なる態様で重み付けするステップを含むことを特徴とする方法。
【請求項８】
請求項１記載の方法において、オーディオ・データは、バッファされたサウンド・データを、サウンド・システムを介して提示するために前記アプリケーションによって作成されたものとして含むことを特徴とする方法。
【請求項９】
オーディオ・パフォーマンスをテストするシステムであって、
テスト・プラットフォームにおけるアプリケーションの動作の結果であるオーディオ・データを記憶する記憶手段（４００）と、
前記記憶手段に動作的に接続されており、第１の分解能と第２の分解能とを少なくとも用いて前記オーディオ・データを記述するデータを含み前記オーディオ・データの特性に関する記述データを計算するプロセッサ（４１０）と、
前記プロセッサに動作的に接続されており、前記記述データとターゲット記述データとを比較する（３３０）コンパレータ（４２０）と、
を含むことを特徴とするシステム。
【請求項１０】
請求項９記載のシステムにおいて、前記プロセッサは、それぞれが前記オーディオ・データを記述する少なくとも２つのサブバンドの組を計算することを特徴とするシステム。
【請求項１１】
請求項１０記載のシステムにおいて、前記組の中の第１のサブバンドは前記オーディオ・データを前記第１の分解能で記述し、前記組の中の第２のサブバンドは前記オーディオ・データを前記第２の分解能で記述することを特徴とするシステム。
【請求項１２】
請求項１０記載のシステムにおいて、前記サブバンドは、離散ウェーブレット変換を用いて計算されることを特徴とするシステム。
【請求項１３】
請求項９記載のシステムにおいて、前記コンパレータは、前記オーディオ・データと前記ターゲット・データとのある特定の分解能における類似性をそれぞれが示す少なくとも２つの中間的な比較値を計算し、更に、前記中間的な比較値に基づく最終的な比較値を計算することを特徴とするシステム。
【請求項１４】
請求項１３記載のシステムにおいて、最終的な比較値の前記計算において、前記コンパレータは、前記中間的な比較値の中の少なくとも第１のものを前記中間的な比較値の中の少なくとも第２のものとは異なる態様で重み付けすることを特徴とするシステム。
【請求項１５】
請求項９記載のシステムにおいて、オーディオ・データは、バッファされたサウンド・データを、サウンド・システムを介して提示するために前記アプリケーションによって作成されたものとして含むことを特徴とするシステム。
【請求項１６】
アプリケーションによるサウンド・パフォーマンスを確認するコンピュータ実行可能な命令を含むコンピュータ可読媒体であって、コンピュータ実行可能な命令は、
テスト・プラットフォームにおける前記アプリケーションの動作からのオーディオ・データを記憶する（３１０）ステップと、
前記オーディオ・データから、第１のサブバンド・オーディオ・データと第２のサブバンド・オーディオ・データとを少なくとも含むサブバンド・データを計算する（３００）ステップと、
前記サブバンド・データとターゲット・サブバンド・データとを比較する（３３０）ステップと、
を含むことを特徴とするコンピュータ可読媒体。
【請求項１７】
請求項１６記載のコンピュータ可読媒体において、前記第１のサブバンドは前記オーディオ・データを第１の分解能で記述し、前記第２のサブバンドは前記オーディオ・データを第２の分解能で記述することを特徴とするコンピュータ可読媒体。
【請求項１８】
請求項１６記載のコンピュータ可読媒体において、前記サブバンドは、離散ウェーブレット変換を用いて計算されることを特徴とするコンピュータ可読媒体。
【請求項１９】
請求項１６記載のコンピュータ可読媒体において、前記サブバンド・データと前記ターゲット・サブバンド・データとを比較する前記ステップは、
前記サブバンド・データと前記ターゲット・サブバンド・データとのある特定のサブバンドにおける類似性をそれぞれが示す少なくとも２つの中間的な比較値を計算するステップと、
前記中間的な比較値に基づく最終的な比較値を計算するステップと、
を含むことを特徴とするコンピュータ可読媒体。
【請求項２０】
請求項１６記載のコンピュータ可読媒体において、最終的な比較値を計算する前記ステップは、前記中間的な比較値の中の少なくとも第１のものを前記中間的な比較値の中の少なくとも第２のものとは異なる態様で重み付けするステップを含むことを特徴とするコンピュータ可読媒体。
【発明の詳細な説明】
【技術分野及び背景技術】
【０００１】
ソフトウェアは、広い範囲のハードウェア及びシステム・ソフトウェアと共に動作するように開発されることが多い。これらのシステムの間の差異により、互換性の問題が生じる可能性が潜在的に存在する。これらの問題に関するテストは、システム全体の保全性（整合性、integrity）を保証しユーザの不満を回避するのに必須である。
【０００２】
人間によるテストが、互換性問題の把握に用いられることがある。これには、異なるシステム構成において当該ソフトウェアを動作させること、そして、その結果を手動でチェックすることが含まれる。これは、退屈で時間を要し手間のかかるプロセスであるだけでなく、その結果は主観的な評価や人的な誤りによって損なわれることがある。
【０００３】
テストを自動化すると、コストは縮小され、グラフィクス・テストの精度が向上することがこれまでに判明している。例えば、自動化されたツールは、スクリーン・キャプチャと複数のプラットフォームにおいてレンダリングされた同一のグラフィカル・データのイメージ比較とを実行するのに用いることができる。これにより、テスタが、標準的な測定方法を用いて異なる出力の正確性を迅速に判断することが可能になる。
【０００４】
天然のままの自動オーディオ試験方法も存在しているが、これらの方法は、オーディオ出力の単なる存在を決定するだけである。人間による試験が、オーディオ出力が正確に処理されたかどうかを判断するために、依然として必要である。人間の耳は、はじけるような音（popping sounds）などのある種の音声的な欠陥を把握することについて比較的よく装備をされているが、正確なトーン／ピッチの区別、僅かなタイミングの差異、又は音声の複雑な喧騒を正確に解析するなど、他の側面については不十分である。更に、上述したように、人間による試験は面倒であり、時間がかかるし、人手も要すし、人的な間違いの危険性もある。
【０００５】
従って、音声出力が生成されたかどうかを判断するだけではなく、正確に生成されたかどうかを評価するためには、改善されたオーディオ・テストの自動化技術が必要である。そのような技術は、テスト結果の質を向上させ、人間によるテストに要する人的資源に関するコストを縮小ことになる。
【発明の概要】
【０００６】
アプリケーションのオーディオ音質は、出力データの解析を通じて決定される。テスト中のアプリケーションは、本発明のある１つの実施例における様々なシステムで動作（ラン、実行）される。また、音声出力はそれぞれの動作から集められる。別の実施例では、多数のサンプルが、異なる音声レンダリング技術を潜在的に用いて、同じシステムから集められる。集められた出力は、様々なフォーマットを有することがあり、ハードウェア処理の前及び後の両方の情報を含みうる。
【０００７】
いくつかの実施例では、集められたサンプルは、理想的な場合であると想定可能な他の集められたサンプルと比較される。あるいは、いくつかの実施例では、集められたサンプルは、理想的な場合であると本発明によって考えられる場合と比較される。比較を行なうために、集められたオーディオ・サンプルは、フォーマットに関して正規化（ノーマライズ）され、次に、サブバンドに分割される。この分割プロセスに、ウェーブレットを用いることもできる。より低いサブバンドは多くの場合に２つの音声の全体的な類似性を決定するのに役立ち、他方で、より高いサブバンドは多くの場合に時間分解の場合に役に立つ。比較を行なう場合、いくつかの実施例では、サブバンドは、相対的テスト重要性によって重み付けがなされる。重み付けの方法は、サンプルごとに変動する。
【０００８】
以上では、本発明のいくつかの実施例だけについて説明した。本発明の他の実施例や効果や新規な特徴は、図面と共に以下の詳細な説明を読むことにより明らかになるはずである。
【発明を実施するための最良の形態】
【０００９】
例示的なコンピューティング環境：
図１は、発明の様々な側面を実装（インプリメント）することができる例示的なコンピューティング（計算）環境を示す。コンピューティング・システム環境１００は、適切なコンピューティング環境の単なる１つの例であり、使用又は発明の機能性のスコープに関してどんな制限も示唆することは意図していない。また、コンピューティング環境１００は、この例示的なコンピューティング環境１００に図解されているコンポーネントのいずれか又はそれらの組合せにどのような意味でも従属したり又は要求されているなどと解釈されるべきでない。
【００１０】
本発明は、多数の他の汎用又は専用のコンピューティング・システム環境又は構成と共に機能する。本発明と共に用いられるのが適切である周知のコンピューティング・システム、環境及び／又は構成には、制限は意味しないが、パーソナル・コンピュータ、サーバ・コンピュータ、ハンドヘルド又はラップトップ・デバイス、マルチプロセッサ・システム、マイクロプロセッサ・ベースのシステム、セットトップ・ボックス、プログラマブルな家電、ネットワークＰＣ、ミニコンピュータ、メインフレーム・コンピュータ、組み込みシステム、上記のシステム又はデバイスなどの任意のものを含む分散コンピューティング環境などが含まれる。
【００１１】
本発明は、プログラム・モジュールなどのコンピュータによって実行されるコンピュータ実行可能な命令という一般的なコンテキストにおいて説明される。一般に、プログラム・モジュールはルーチン、プログラム、オブジェクト、コンポーネント、データ構造などを含み、これらは特定のタスクを実行したり、特定の抽象的なデータ・タイプを実装したりする。本発明は、通信ネットワーク又は他のデータ伝送媒体を介してリンクされるリモート処理デバイスによってタスクが行なわれる分散コンピューティング環境において実行される。分散コンピューティング環境では、プログラム・モジュール及び他のデータは、記憶装置デバイスを含むローカル及びリモート・コンピュータ記憶媒体の両方に位置することがある。
【００１２】
図１を参照すると、本発明を実装するための例示的なシステムは、汎用コンピューティング装置をコンピュータ１１０の形で含んでいる。コンピュータ１１０のコンポーネントは、限定を意味しないが、処理ユニット１２０と、システム・メモリ１３０と、システム・メモリを含む様々なシステム・コンポーネントを処理ユニット１２０に結合するシステム・バス１２１とを含む。処理ユニット１２０は、マルチスレッド・プロセッサにおいて支持されるような複数の論理処理ユニットを表わすことがある。システム・バス１２１は、メモリ・バス又はメモリ・コントローラを含む複数のタイプのバス構造と、周辺バスと、様々なバス・アーキテクチャの任意のものを用いるローカル・バスとの任意のものでありうる。制限は意味しないが、そのようなアーキテクチャには、インダストリ・スタンダード・アーキテクチャ（ＩＳＡ）バス、マイクロ・チャネル・アーキテクチャ（ＭＣＡ）バス）、エンハンストＩＳＡ（ＥＩＳＡ）バス、ビデオ・エレクトロニクス・スタンダーズ・アソシエーション（ＶＥＳＡ）ローカル・バス及びペリフェラル・コンポーネント・インターコネクト（ＰＣＩ）バス（メザニーン・バスとしても知られている）などが含まれる。システム・バス１２１も、通信するデバイスの間での二地点間接続、スイッチング・ファブリックなどとして実装されることがある。
【００１３】
コンピュータ１１０は、典型的には、様々なコンピュータ可読媒体を含む。コンピュータ可読媒体は、コンピュータ１１０によってアクセスすることができ、揮発性・不揮発性の媒体、取外し可能及び取外し不可能な媒体を含む任意の利用可能な媒体でありうる。制限は意味しないが、コンピュータ可読媒体は、コンピュータ記憶装置媒体と通信メディアとを含むことがある。コンピュータ記憶装置媒体は、揮発性及び不揮発性の媒体、取外し可能及び取り外し不可能な媒体を含み、これらは、コンピュータ可読命令、データ構造、プログラム・モジュール又はそれ以外のデータなどの情報の記憶のための任意の方法又は技術において実装される。コンピュータ記憶装置媒体は、制限は意味しないが、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ、フラッシュ・メモリ又は他のメモリ技術、ＣＤＲＯＭ、ディジタル・バーサタイル・ディスク（ＤＶＤ）又は他の光学ディスク記憶装置、磁気カセット、磁気テープ、磁気ディスク記憶装置又は他の磁気記憶装置、所望の情報を記憶するために用いることができコンピュータ１１０によってアクセス可能な他の媒体などを含む。通信メディアは、典型的には、コンピュータ読取り可能な命令、データ構造、プログラム・モジュール、又は、搬送波又は他の転送機構のような変調データ信号における他のデータを含む。また、任意の情報搬送媒体も含む。「変調データ信号」という用語は、信号における情報を符号化する態様で設定又は変更されるその特性の中の１又は複数を有する信号を意味する。例であって限定は意味しないが、通信メディアには、有線ネットワーク又は直接ワイアード接続などのワイアード媒体と、音響、ＲＦ、赤外線及び他の無線メディアのような無線メディアとが含まれる。上記の中の任意のものの組合せも、コンピュータ読取り可能な媒体の範囲に含まれる。
【００１４】
システム・メモリ１３０は、読み取り専用メモリ（ＲＯＭ）１３１及びランダムアクセス記憶装置（ＲＡＭ）１３２のような揮発性及び／又は不揮発性メモリの形態のコンピュータ記憶媒体を含む。基本入出力システム１３３（ＢＩＯＳ）は、起動の間などにコンピュータ１１０の中の構成要素の間で情報を転送するのを支援する基本ルーチンを含むが、ＲＯＭ１３１に典型的に記憶されている。ＲＡＭ１３２は、典型的には、処理ユニット１２０に直ちにアクセス可能であり及び／又は処理ユニット１２０によって現に動作されているデータ及び／又はプログラム・モジュールを含む。制限ではなく例であるが、図１は、オペレーティング・システム１３４、アプリケーション・プログラム１３５、他のプログラム・モジュール１３６及び番組データ１３７を示す。
【００１５】
コンピュータ１１０は、更に、他の取外し可能な／取外し不可能、揮発性の／不揮発性のコンピュータ記憶装置媒体を含むことがある。単なる例であるが、取外し不可能で不揮発性の磁気媒体との間で読み書きを行うハード・ディスク・ドライブ１４０、取外し可能で不揮発性の磁気ディスク１５２との間で読み書きを行う磁気ディスク・ドライブ１５１、ＣＤＲＯＭやそれ以外の光学媒体などの取外し可能で不揮発性の光学ディスク１５６との間で読み書きを行う光ディスク・ドライブ１５５とを図解している。この例示的な動作環境において用いることができる他の取外し可能／取外し不可能で揮発性／不揮発性のコンピュータ記憶媒体には、限定は意味しないが、磁気テープ・カセット、フラッシュ・メモリ・カード、デジタル・バーサタイル・ディスク、デジタル・ビデオテープ、ソリッドステートＲＡＭ、ソリッドステートＲＯＭなどが含まれる。ハードディスク・ドライブ１４１は、典型的には、インターフェース１４０のような取外し不可能メモリ・インターフェースを介してシステム・バス１２１に典型的に接続され、磁気ディスク・ドライブ１５１及び光ディスク・ドライブ１５５は、典型的には、インターフェース１５０のような取外し可能なメモリ・インターフェースによってシステム・バス１２１に接続される。
【００１６】
上述され図１に図解されているドライブ及びそれらの関連するコンピュータ記憶媒体は、コンピュータ１１０のために、コンピュータ読取り可能な命令、データ構造、プログラム・モジュール及び他のデータの記憶を提供する。図１では、例えば、ハードディスク・ドライブ１４１は、オペレーティング・システム１４４、アプリケーション・プログラム１４５、他のプログラム・モジュール１４６及びプログラム・データ１４７を記憶するものとして図解されている。これらのコンポーネントは、オペレーティング・システム１３４、アプリケーション・プログラム１３５、他のプログラム・モジュール１３６及びプログラム・データ１３７と同じ場合も異なる場合もありうる。オペレーティング・システム１４４、アプリケーション・プログラム１４５、他のプログラム・モジュール１４６及びプログラム・データ１４７は、少なくともそれらが異なるコピーであることを図解するために異なる参照番号が与えられている。ユーザは、キーボード１６２と、マウス、トラックボール又はタッチパッドと一般に呼ばれるポインティング・デバイス１６１とで構成される入力装置を介して、コンピュータ２０にコマンド及び情報を入力することができる。他の入力装置（図示せず）はマイクロホン、ジョイスティック、ゲーム・パッド、衛星デッシュ、スキャナなどを含む。これら及び他の入力装置は、システム・バスに結合されているユーザ入力インターフェース１６０を介して処理ユニット１２０に接続されていることが多いが、パラレル・ポート、ゲームポート又はユニバーサル・シリアル・バス（ＵＳＢ）などの他のインターフェース及びバス構造によって接続されることもある。このシステムは、１又は複数のオーディオ・インターフェース１９７を含んでいることがあり、これらが、１又は複数のスピーカ１９８に接続されることがある。オーディオ・インターフェースは、システムにデータを戻すフィードバック・ループを含むことがある。モニタ１９１又は他のタイプの表示装置が、ビデオ・インタフェース１９０などのインターフェース経由でシステム・バス１２１に接続される。モニタに加え、コンピュータは、更にプリンタ１９６など他の周辺出力デバイスを含むことがあり、これは、出力周辺インタフェース１９５によって接続される。
【００１７】
コンピュータ１１０は、リモート・コンピュータ１８０のような１又は複数のリモート・コンピュータへの論理接続を用いてネットワーク化された環境において動作することがある。リモート・コンピュータ１８０は、パーソナル・コンピュータ、サーバ、ルータ、ネットワークＰＣ、ピア・デバイス又は他の共通ネットワーク・ノードなどであり、典型的には、コンピュータ１１０との関係で上述した構成要素の多く又はすべてを含む。ただし、図１には、メモリ記憶装置１８１だけが図解されている。図１に示されている論理接続には、ローカル・エリア・ネットワーク（ＬＡＮ）１７１及び広域ネットワーク（ＷＡＮ）１７３を含まれるが、他のネットワークを更に含むこともある。このようなネットワーキング環境は、複数のオフィスや企業全体に渡るコンピュータ・ネットワーク、イントラネット及びインターネットにおいて一般的である。
【００１８】
ＬＡＮネットワーキング環境の中で用いられると、コンピュータ１１０は、ネットワーク・インタフェイス又はアダプタ１７０を介してＬＡＮ１７１に接続される。ＷＡＮネットワーキング環境の中で用いられると、コンピュータ１１０は、典型的にはモデム１７２又はインターネットのようなＷＡＮ１７３の上のコミュニケーションを確立する他の手段を含んでいる。モデム１７２は、内蔵も外付けもありうるが、ユーザ入力インターフェース１６０やそれ以外の適切な機構を経由して、システム・バス１２１に接続されることがある。ネットワーク化された環境では、コンピュータ１１０又はその一部との関係で示されているプログラム・モジュールは、リモート記憶装置に格納されることがある。単なる例であり制限を意味しないが、図１は、メモリ・デバイス１８１に存在するリモート・アプリケーション・プログラム１８５を図解している。示されているネットワーク接続は例示であって、複数のコンピュータの間の通信リンクを確立する他の手段を用いることができる。
オーディオ出力の自動比較：
図２は、テスト・プラットホームからのオーディオ・データの収集のブロック図である。図２に示されるように、テストされるアプリケーション２１０は、テスト・プラットホーム２００上で実行される。このアプリケーションは、サウンド・システム２５０を介して音声出力２７０を生成する。図１に関して示され議論されたように、スピーカ１９８は音声出力２７０を作成するのに用いられる。いくつかのプラットホームでは、サウンドカードは、サウンド・システム２５０の一部であることがあって、サウンド・カードは、記憶及び処理の機能を含む。サウンド・システム２５０は、チャネル・データ２６０を出力する。このチャネル・データ２６０は、一般に、アナログ・オーディオ（波形）データである。チャネル・データ２６０は、１又は複数のチャネルのためのデータを含み、それぞれのチャネルが、当該チャネルに対する個別のアナログ・オーディオ・データを有している。
【００１９】
上述したように、チャネル・データ２６０における１つのチャネルのためのデータがあることがある。又は、複数のチャネルのためのデータがある。例えば、モノラルの出力が出力されている場合には、１チャネルだけが、チャネル・データ２６０に含まれる。ステレオ出力が出力されている場合には、２つのチャネルが、チャネル・データ２６０に含まれる。サラウンド・サウンドの場合には、更に多くのチャネルが提供される。チャネル・データ２６０は、スピーカ１９８に利用可能になる。スピーカは、音声出力２７０を作成する際にチャネル・データ２６０を用いる。
【００２０】
更に、図２に示されるように、アプリケーション２１０は、ハードウエア抽象化レイヤ（ＨＡＬ）２３０を利用する。ハードウエア抽象化レイヤ２３０は、アプリケーション２１０がテスト・プラットホームにおける音声出力２７０の作成に関与するタスクのうちのいくつかを委任することを可能にする。例えば、ハードウエア抽象化レイヤ２３０は、サウンド・システム２５０又はスピーカ１９８を直接管理することをアプリケーションに要求するのではなく、アプリケーション２１０によって用いることができるアプリケーションプログラムインターフェイス（ＡＰＩ）を提供することがある。ハードウエア抽象化レイヤ２３０へのオーディオ・コール２２０は、その代わりに、音声出力２７０の作成をガイドするために使用される。ハードウエア抽象化レイヤ２３０は、オーディオ・コール２２０を用いて、サウンド・システム２５０のための入力データ２４０を作成する。
【００２１】
図２は、ハードウエア抽象化レイヤ２３０、サウンド・システム２５０及びスピーカ１９８を備えたテスト・プラットホーム２００を示しているが、テスト・プラットホームは少なくとも２つの理由で、これらのすべて又はいくつかを含むことがあるし、まったく含まないこともある。第１に、これらのアイテムのうちのいくつか又はすべては、プラットホームの通常の動作における音声出力２７０の作成時にアプリケーション２１０によって使用されないことがある。例えば、アプリケーションは、直接スピーカを制御することがあり、その場合には、チャネル・データ２６０は、アプリケーション２１０から直接に作成されるだろう。第２に、テスト・プラットホームは、アプリケーション２１０について音声出力２７０を作成するのに通常使用されるすべての要素を含んでいるとは限らないことがある。後述するが、オーディオ・データ・キャプチャ２８０は、アプリケーション２１０と最終の音声出力２７０との間の１又は複数のポイントからオーディオ・データをキャプチャする。ある例では、オーディオ・データ・キャプチャ２８０は、ハードウェア抽象化レイヤ２３０へのオーディオ・コールをキャプチャするのであり、サウンド・システム２５０のための入力データやそれ以外のどのオーディオ・データでもない。このような場合には、テスト・プラットフォームでは、どのサウンド・システム２５０やスピーカ１９８も、そのような要素が存在していないことがテスト・データに対するアプリケーション２１０の実行との間で支障を生じない限り、実際に存在することは必要ない。
【００２２】
より一般には、アプリケーション２１０からのオーディオ・データの特定のフローが図２に示され説明されているが、本発明は、オーディオ・データを受け取り及び発する中間的な要素を含めて、オーディオ・データの正確なフローが何であっても、本発明は実行可能である。
【００２３】
オーディオ・データ・キャプチャ２８０は、アプリケーション２１０から音声出力２８０へのオーディオ・データのフローの中のどの時点でも、オーディオ・データをキャプチャする。従って、示されているように、オーディオ・データ・キャプチャ２８０は、オーディオ・コール２２０、サウンド・システムのための入力データ２４０、チャネル・データ２６０及び／又は音声出力２８０をキャプチャすることがある。更に、オーディオ・データの他のフローがアプリケーション２１０と音声の最終的な出力との間で生じる場合には、オーディオ・データのどれでも、オーディオ・データ・キャプチャ２８０によってキャプチャされる。
【００２４】
オーディオ・データ・キャプチャ２８０は、中間エレメントへの修正を介して行なわれることがある。例えば、ハードウエア抽象化レイヤ２３０を修正して、ハードウエア抽象化レイヤ２３０の通常機能を実行し、オーディオ・コール２２０及び／又はサウンド・システム２５０のための入力データ２４０をキャプチャすることがある。あるいは、更に、オーディオ・データ・キャプチャ２８０は、任意の方法で複数の要素の間のトラフィックをモニタすることにより、実行されることがある。音声出力２７０のオーディオ・データ・キャプチャ２８０は、フィードバックループによって実行されることがある。
【００２５】
いったんオーディオ・データ・キャプチャ２８０がオーディオ・データをキャプチャしたならば、キャプチャされたオーディオ・データとターゲット・データとの比較を行なうことができる。図３は、本発明のある１つの実施例によるこのプロセスを詳述する流れ図である。図３で見られるように、第１のステップ３００において、テスト対象であるアプリケーションが、テスト・プラットフォームにおいて動作される。ある１つの実施例では、アプリケーション２１０は、テスト用の入力の特定の組を用いて動作される。アプリケーションの実行からのオーディオ・データは、ステップ３１０でキャプチャされる。上述したように、このオーディオ・データは、アプリケーションの任意の段階において、見出すことができる。
【００２６】
第２のステップ３２０では、オーディオ・データを記述する記述データが作成される。記述データは、オーディオ・データによって（オーディオ・データが見出される任意の形式で）最終的に作成されるそれぞれのオーディオ・チャネルを、比較が可能な形式で記述する。
【００２７】
記述データを作成する方法のひとつとして、ウェーブレットの使用がある。ウェーブレットの使用とは、例えば、キャプチャされたオーディオ・データに対する離散ウェーブレット変換（ＤＷＴ）である。キャプチャされたオーディオ・データは、オーディオ信号を記述する形式を有していない場合には、まず、オーディオ信号を記述する形式に変換される。従って、例えば、キャプチャされたオーディオ・データは、ハードウェア抽象化層（ＨＡＬ）２３０へのオーディオ・コール２２０から構成されている場合には、オーディオ信号を記述する形式に変換される。オーディオ信号を記述する形式とは、例えば、チャネル・データ２６０と類似の（又は、均等である）チャネル・データの形式、又は、サウンド出力２７０など実際に記録されたサウンド・データの形式である。
【００２８】
キャプチャされたオーディオ・データがオーディオ信号（波形）形式を有するときは、ＤＷＴが用いられる本発明の実施例に従い、以下のステップが実行される。最終的な結果は、キャプチャされたオーディオ・データからのサブバンドの作成である。これらのステップは、比較の対象となるそれぞれのオーディオ・チャネルにおいて実行される。第１に、用いられるハイパス・フィルタとローパス・フィルタとが、オーディオ信号データに対して動作される。これらのフィルタは、変換が基づいているウェーブレットから導かれる。データは、２つの等しい部分であるハイパス部分とローパス部分とに分割される。このプロセスは、再帰的に継続する。すなわち、それぞれのローパス部分は、ただ１つのローパス・サンプルだけが残るまで、ハイパス・フィルタとローパス・フィルタとを通過するように動作する。これにより、オーディオ信号データは、係数のｌｏｇ２（ｎ）サブバンドに効果的に分割される。ここで、ｎは、オーディオ・データの中のサンプル数である。（なお、ｎが２の累乗でなければならないことに注意してほしい。いくつかの実施例では、オーディオ・データの中のサンプル数が２の累乗ではない場合には、オーディオ・データのダミー・データの加算が生じて、正しいサンプル数が作成される。いくつかの実施例では、このダミー・データはゼロ・データである。）
それぞれの増加するサブバンドは、前のサブバンドの２倍の係数を含む。最高周波数のサブバンドは、（ｎ／２）個のサンプルを含む。ここで、ｎは波形における当初のサンプルの数である。望むのであれば、当初の波形（オーディオ信号データ）は、正確に係数のこれらのｌｏｇ２（ｎ）個のサブバンドから再構成することができる。
【００２９】
ＤＷＴの結果は、波形全体を再構成するのにただ１つだけのウェーブレットが用いられた場合に当初の波形に最もよく適合するウェーブレットの係数に対応する最低のサブバンドである。最低の次に低いサブバンドは、第１のウェーブレットに加えられると当初の波形に最もよく適合する２つのウェーブレットの２つの係数に対応する。以後の任意のすべてのサブバンドは、それ以前のサブバンドの結果的な再構成に加えられると当初の波形を再構成するのに用いることができるウェーブレットの係数を保持すると考えられる。従って、４番目のサブバンドを用いて当初の波形を再構成するためには、第１、第２及び第３のサブバンドを用いた波形の再構成が実行され、その後で、第４のサブバンドから構成されたウェーブレットが加えられる。それぞれのサブバンドＮの係数は、１からＮ−１までのサブバンドを用いた波形の再構成と１からＮまでのサブバンドを用いた波形の再構成との間の差異を記述する１つの方法である。
【００３０】
比較の前に、サブバンドは、重要性に関してフィルタリングされる必要がある場合がある。これにより、あるしきい値未満であるすべての係数がサブバンドから効果的に除去され、当該しきい値を超える値ほどには全体的なサウンドに寄与しない。いくつかの実施例では、重要性のフィルタリングは、（１）オーディオ・サンプルに対してＤＷＴを実行すること、（２）特定のしきい値ｔよりも下のすべての係数を０に設定すること、（３）ＤＷＴ係数から波形を再構成すること、によって実行される。
【００３１】
従って、ＤＷＴを用いて、少なくとも２つのサブバンドが作成される。これらのサブバンドは、ある１つの分解能における少なくとも第１の記述データ（第１のサブバンド）と第２の分解能における第２の記述データ（第２のサブバンド）とにおけるオーディオ・データの中のデータを記述する。
【００３２】
ここではＤＷＴは少なくとも２つの分解能でオーディオ・データを記述するデータを作成する方法として示されているが、異なる分解能でデータを作成する方法は、これ以外にも存在する。例えば、パケット化された離散ウェーブレット変換などのＤＷＴの異種がある。更に、高速フーリエ変換（ＦＦＴ）を用いてデータを異なる複数の周波数に分離することができるが、この場合には、より低い周波数は音声のより低い分解能での記述と見なされ、より高い周波数は音声のより高い分解能での記述と見なされる。
記述データとターゲット・データとの比較：
本発明の１つの実施例による最終ステップは、図３に示されたように、記述データとターゲット・データとを比較するステップ３３０である。比較を行なうためには、データは類似していなければならない。従って、ターゲット・データは、様々な実施例において、波形の形式のオーディオ・データ、波形を導くことができるオーディオ・データ、又は波形を記述する記述データ（例えば、サブバンド・データ）でありうる。しかし、ターゲット・データが記述データと同じ形式を有する記述データの形式を有していない場合には、少なくとも２つの分解能でターゲット・データを記述するターゲット記述データを作成するためには、テスト・プラットフォームからオーディオ・データに対する記述データを悪性するのに用いられたのと類似する態様で、１又は複数の中間的なステップが実行されなければならない。
【００３３】
ターゲット・データは、ある１つの実施例では、アプリケーション２１０がテストを行う状況において作成するべきデータである。例えば、アプリケーションが特定のプラットホームにおいて確認されると（例えば、人間であるテスタによって）、テスト用のデータは、そのプラットホームにおけるパフォーマンスから抽出される。別の実施例では、一群のプラットホームのすべてがアプリケーション２１０を動作させ、オーディオ・データがそれぞれのプラットホームから収集される。ここで、何らかの平均化方法がオーディオ・データに対して実行される。これにより、平均オーディオ出力が提供される。次に、平均オーディオ出力は、このグループにおける個々のプラットフォームのパフォーマンス（又は、別のプラットホームのパフォーマンス）を判断するために、ターゲット・データとして使用される。グループの中の個々のプラットホームが平均オーディオ出力に対してテストされている場合には、テスト・プラットホームからのオーディオ・データは、テスト・プラットホームが比較されるテスト用データ（平均オーディオ出力）にある程度まで含まれる。
【００３４】
いくつかの実施例では、それぞれの分解能における記述データとターゲット・データとの間の類似点が判断される。いくつかの実施例では、それぞれの分解における類似性に基づいて、比較スコアが確立される。比較スコアを決定する際には、異なる分解能が、異なる態様で重み付けされる。いくつかの実施例では、通過しきい値（passing threshold）が確立され、比較スコアが類似性に関するこの通過しきい値を越える場合には、アプリケーション２１０は、受け入れ可能なオーディオ・パフォーマンスを有することが分かる。
【００３５】
ある１つの実施例では、比較の結果として、ターゲット波形とオーディオ・データ波形とがどれくらい類似しているかを記述するゼロから１までの数値が得られる。公差は、ユーザによって特定される。この公差は、結果的に通過（パス）を生じる２つの係数の間の最大のパーセンテージ・デルタである。オーディオ・データからのサブバンドにおけるそれぞれの係数については、当該係数は、ターゲット・データの同じサブバンドにおける対応する係数と比較される。パーセンテージ差が公差ｔ未満である場合には、この係数は通行（パス）というマークが付される。当該サブバンド用に対するすべての係数の数に対する通過する係数の数は、当該サブバンドの全体的な適合（conformance）を構成する。従って、例えば、上述したＤＷＴによる第４のサブバンドは、１６個の係数を含む。（オーディオ・データから導かれた）記述データの第４のサブバンドからのそれぞれの係数は、ターゲット波形から導かれた第４のサブバンドからの対応する係数と比較される。これらの１６個のペアは、（差異が公差ｔ未満であることで）１２個が通過し、（差異が公差ｔを超えていることで）４個が失敗する場合には、７５％という適合率が計算される。それぞれのサブバンドに対する適合パーセンテージは、いったん計算されると、重み付けがなされ、相互に組み合わされて、サンプル全体に対する１つの適合率が形成される。
【００３６】
重み付けを決定するために、２つの仮定が用いられることがある。一般に、より周波数が高いサブバンドはほとんどが高周波ノイズであり、全体的な波形に著しく寄与することはない。これにより、当該波形はこのノイズを除去するために重要性フィルタリングがなされていないと想定される。フィルタリングがなされている場合には、より周波数が高いサブバンドは、すべての係数がゼロであることがある。一般に、低周波サブバンドは、近似波形の未加工の形状を有し、音声のミッドレンジにある微妙な部分を考慮していない。従って、ある１つの実施例によれば、ｌｏｇ２（ｎ）／２のサブバンドを中心とするガウス分布に基づいて、重みがサブバンド適合性に割り当てられる。このような重み付けの結果は、より低いサブバンドに重要性をシフトさせ、従って、音声の微妙な部分ではなくより一般的な波の形状により多くの重み付けがなされることになる。
【００３７】
しかし、場合によっては、これらの仮定が成立しないことがある。そのため、音声の異なる側面を比較するために、異なる重み付けスキームが用いられるべきである。
【００３８】
２つのオーディオ・サンプルを相互に比較するためには、これらのオーディオ・サンプルは、厳密に同一の時点において開始するように同期させなければならない。いくつかの実施例によれば、同期は、非常に大きな値を用いてオーディオ・データとターゲット・データとの両方を重要性フィルタリングし、重要性フィルタリングされたデータから波形を再構成し、最初の非ゼロの値を求めることによって達成される。これはオーディオ・データとターゲット・データとの両方において同じ位置であると推定される。また、この位置は、比較のために、オーディオ・データとターゲット・データとを同期させるのに用いられる。
【００３９】
図４は、本発明のある１つの実施例によるシステムのブロック図である。図４に示されるように、本発明のある１つの実施例によるシステムは、テスト・プラットホームからのオーディオ・データを記憶する記憶装置４００を含む。プロセッサ４１０は、オーディオ・データを記述データに変換するために使用される。上述したように、ある１つの実施例では、この記述データは、異なる分解能で当該データを記述するＤＷＴからのサブバンド・データを含む。コンパレータ４２０は、記述データとターゲット記述データとを比較するのに用いられる。
結論：
以上の例は、単に説明の目的で提供されており、決して本発明を制限するものとして解釈されるべきではない。本発明は様々な実施例を参照して説明されてきたが、ここに使用された言葉は、制限ではなく、説明と例示のためのものである。更に、本発明は、特定の手段、材料及び実施例を参照して説明されているが、ここで開示されている詳細には制限されない。むしろ、本発明は、冒頭の特許請求の範囲に記載されたすべての機能的に均等の構成、方法及び使用に及ぶ。この技術分野の当業者は、この明細書の記載により、多くの修正を想到することができるし、本発明の範囲及び精神から逸脱することなく、変更を行うことも可能である。
【図面の簡単な説明】
【００４０】
以上の発明の概要及び実施例の説明は、添付した図面を参照することによって、よりよく理解できるはずである。これらの図面は、本発明を例示する目的で、例示的な構成を示しているが、本発明は、図面に記載されている特定の方法や手段には限定されない。
【図１】本発明の様々な側面を実装することができる例示的なコンピューティング環境のブロック図である。
【図２】本発明のある１つの実施例によるテスト・プラットフォームからのオーディオ・データの集合のブロック図である。
【図３】本発明のある１つの実施例によるプロセスの詳細を述べる流れ図である。
【図４】本発明のある１つの実施例によるシステムのブロック図である。
【図５】
【図１】
2009523261.tif 000003
【図２】
2009523261.tif 000004
【図３】
2009523261.tif 000005
【図４】
2009523261.tif 000006
【図５】
2009523261.tif 000007
【国際調査報告】
2009523261.tif 000008
2009523261.tif 000009