2007 年、Windows Vista に含まれる DRM に熱狂する中、多くの懸念に対応するためにWindows Vista チーム ブログが作成されました。質問の 1 つは、Windows Vista での実行時に VoIP ソフトウェアがエコー キャンセレーションを実行する機能に関するものでした。
これは、Nick White が FAQ として述べなければならなかったことです。
プレミアム コンテンツでは、エコー キャンセレーションの効果が低下しますか?
Windows Vista は、高品質のエコー キャンセル機能を正常に構築するのに十分な情報へのアクセスをアプリケーションに提供すると考えています。
アプリケーションが高品質のエコー キャンセレーション機能を構築できるようにするために、Windows Vista はどのような情報を提供しますか?
注:この声明を読むと、Windows Vista は、アプリケーションが高品質のエコー キャンセレーション機能を正常に構築できるようにするのに十分な情報を提供しているという印象を受けます。おそらく、Windows がこの情報を提供する方法は、API を使用することです。
エコー キャンセレーションは、再生中の出力をサンプリングし、録音されたマイク入力から「差し引く」ことによって機能します。
残念ながら、MSDN が指摘しているように、再生中の出力を常にサンプリングできるとは限りません。
Windows Vista は、デジタル著作権管理 (DRM) を提供します。コンテンツ プロバイダーは DRM を利用して、独自の音楽やその他のコンテンツを無許可のコピーやその他の違法な使用から保護しています。WASAPI は、DRM で保護されたコンテンツを含むデジタル ストリームのループバック レコーディングを許可しません。同様に、信頼できるオーディオ ドライバーは、ループバック デバイスが保護されたコンテンツを含むデジタル ストリームをキャプチャすることを許可しません。Windows Vista では、信頼できるドライバーのみが保護されたコンテンツを再生できます。信頼できるドライバーと DRM の詳細については、Windows DDK のドキュメントを参照してください。
おそらくこれは、WASAPI からループバック モードを使用することは、エコー キャンセレーション サービスを提供するための意図された方法ではないことを意味します。
高品質のエコー キャンセレーションの実装を可能にする APIは何ですか?
注:これは、私が尋ねた別の質問に関連していますが、別の質問です:出力オーディオミックスをサンプリングする方法は?. この質問は、Windows でエコー キャンセレーションが可能であるという Window Vista チームによる回答の拡大を特に求めています。この質問はAPIを探しています。それは、それをどのように使用するかという別の問題になる可能性があります。
答えをグーグルで検索すると、(エコーキャンセルの実行中に)アプリケーションはDRMで保護されたコンテンツをサンプリングできますが、コンテンツは劣化します(つまり、 「十分な情報」)。これにより、エコーキャンセレーションが悪化しますが、それでも可能です。
それとも、Windows チームは「ほとんどの場合は十分ですが、ユーザーが曲を聴いているときや映画を再生しているときには十分ではありません」とほのめかし、実際には高品質のエコー キャンセレーション機能をうまく構築することはできないのでしょうか?
更新:エコー キャンセレーション API を探しているのではなく、再生中の出力をサンプリングする API を探していることに注意してください。これは、エコー キャンセレーションを実装するために必要なものです。もちろん、Windows Vista がエコー キャンセレーション API を提供している場合を除きます (プレミアム コンテンツを引き続き保護する方法です)。しかし、エコーキャンセル API も見たことがありません。