JP4558361B2 - キャプチャサービスを介したオーディオ出力に対するアクセス - Google Patents

キャプチャサービスを介したオーディオ出力に対するアクセス Download PDF

Info

Publication number
JP4558361B2
JP4558361B2 JP2004083615A JP2004083615A JP4558361B2 JP 4558361 B2 JP4558361 B2 JP 4558361B2 JP 2004083615 A JP2004083615 A JP 2004083615A JP 2004083615 A JP2004083615 A JP 2004083615A JP 4558361 B2 JP4558361 B2 JP 4558361B2
Authority
JP
Japan
Prior art keywords
audio stream
output
audio
sac
rtc
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
Application number
JP2004083615A
Other languages
English (en)
Other versions
JP2004320734A (ja
Inventor
イー.スウェンソン スティーブン
セルキュク アルパー
エイチ.ドーリー ザ フォース ジェームズ
ダブリュ.フレニケン デビッド
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Microsoft Corp
Original Assignee
Microsoft Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Microsoft Corp filed Critical Microsoft Corp
Publication of JP2004320734A publication Critical patent/JP2004320734A/ja
Application granted granted Critical
Publication of JP4558361B2 publication Critical patent/JP4558361B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B20/00Signal processing not specific to the method of recording or reproducing; Circuits therefor
    • G11B20/10Digital recording or reproducing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04MTELEPHONIC COMMUNICATION
    • H04M9/00Arrangements for interconnection not involving centralised switching
    • H04M9/08Two-way loud-speaking telephone systems with means for conditioning the signal, e.g. for suppressing echoes for one or both directions of traffic
    • H04M9/082Two-way loud-speaking telephone systems with means for conditioning the signal, e.g. for suppressing echoes for one or both directions of traffic using echo cancellers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/16Sound input; Sound output

Landscapes

  • Engineering & Computer Science (AREA)
  • Signal Processing (AREA)
  • Circuit For Audible Band Transducer (AREA)
  • Telephonic Communication Services (AREA)
  • Cable Transmission Systems, Equalization Of Radio And Reduction Of Echo (AREA)
  • Telephone Function (AREA)

Description

本発明は、一般に、ストリーミングオーディオ処理に関し、より詳細には、オペレーティングシステムのストリーミングオーディオ録音コンポーネントおよびストリーミングオーディオレンダリングコンポーネントに関する。
パーソナルコンピュータ(PC)などのコンピューティングシステムが、ストリーミングオーディオを録音し、再生するためにますます使用されている。1つのそのようなアプリケーションは、それぞれのPCのユーザが、電話機ユーザが回線交換ネットワークを介して別の電話機ユーザと話をするのとほとんど同様に、パケット交換ネットワークを介して互いに話をすることができるネットワークテレフォニーである。1つのそのようなネットワークテレフォニーアプリケーションが、インスタントメッセージングなどのリアルタイム通信アプリケーション(RTC)である。RTCが実行されている間、各ユーザは、PCにおけるローカルのマイクに音声を通して、ローカルのスピーカで遠隔の相手の音声を聞く。
各PCにおいて出力されるサウンドが不快なエコーを含む可能性があることで、RTCにおいて困難が生じる可能性がある。例えば、1つのPCにおいて受信された遠隔の音声がローカルのスピーカから再生されて、ローカルのマイクに入力された場合、エコーが聞こえる可能性がある。これにより、遠隔の音声が、ローカルのスピーカにおいて2度目に出力されることになり、これが、エコーとして聞こえる。
ビープ音、クリック音、および実行中のアプリケーションによって生成されるその他の可聴なキュー(cue)などの1つのPCによって生成されるサウンドがローカルのマイクに入力されることで、RTCにおいて別の問題が生じる可能性がある。ローカルのユーザにだけ重要であるこれらのサウンドは、次に、ネットワークを介して遠隔の相手に伝送され、遠隔のスピーカにおいて出力された後に聞こえる。
以上2つの問題は、PCから出力されるべきすべてのオーディオストリームのミックス(例えば、グローバル出力)に対して行われる音響エコー消去プロセス(AEC)によって解決することができる。AECは、信号処理技術を使用してオーディオストリームに対して実行することができる多くのプロセスの1つである。一部の信号処理技術は、PCのオペレーティングシステムの部分を形成する機構によって実行されることが可能である。それらのオペレーティングシステム機構の一部は、オーディオストリームのレンダリング(または再生)のため、およびオーディオストリームのキャプチャ(または録音)のために使用することができる機構である。レンダリングのために使用される周知のオペレーティングシステム機構とキャプチャのために使用される周知のオペレーティングシステム機構は、完全に別個であり、しばしば、完全に独立したシステム内に実装される。さらに、AECなどの信号処理のための周知のオペレーティングシステム機構は、性能の悪いアーキテクチャのために、使用すること、および理解することが困難である。
以上のことから、当技術分野において、PCから出力されるすべてのオーディオストリームのミックス(例えば、グローバル出力)をキャプチャする単純で容易に理解されるオペレーティングシステム機構を提供することが有利であろう。このキャプチャが行われた際、PC上で実行されているアプリケーションが、グローバル出力に対して信号処理を実行して所望の音響結果を達成するようにすることができる。
PCから出力されるすべてのオーディオストリームのミックス(例えば、グローバル出力)をキャプチャする単純で容易に理解されるオペレーティングシステム機構を提供する。
オペレーティングシステム内部のオーディオシステムサービスが、出力デバイスを宛先とするストリーミングオーディオのすべてをキャプチャし、処理のために使用可能にする。アプリケーションなどのローカルクライアントが、キャプチャされたストリーミングオーディオに対して処理を実行することができる。さらに、レンダデバイスを宛先とするアプリケーションによって出力されたストリーミングオーディオも、出力デバイスを宛先とするその他のストリーミングオーディオとミキシングするのに先立ち、信号処理のためにキャプチャされることが可能である。
添付の図を参照して詳細な説明を述べる。図では、本開示および図のすべてにわたって同様のコンポーネントおよび特徴を指すのに同じ番号を使用している。100番台の符号は、図1に最初に現れる特徴を指し、200番台の符号は、図2に最初に現れる特徴を指し、300番台の符号は、図3に最初に現れる特徴を指し、以下同様である。
本発明は、アプリケーションが、オーディオストリームのシステム全体のグローバルミックス(system−wide global mix)(グローバル出力)を獲得することを可能にする。グローバル出力は、オペレーティングシステムのオーディオサービスのキャプチャ(または録音)コンポーネントを使用して獲得される。また、オペレーティングシステムは、レンダリングコンポーネントも有する。キャプチャコンポーネントとレンダリング(または再生)コンポーネントはともに、別個の独立したシステムであるのではなく、オペレーティングシステムと一体になっている。
一部の実装では、アプリケーションは、再生デバイスに対してキャプチャストリームを開くことにより、出力デバイスからのグローバル出力をキャプチャするようにキャプチャコンポーネントに呼び出しを行う。これを行うため、キャプチャコンポーネントは、出力デバイスからのキャプチャソースを開いてグローバル出力を獲得する。その時点で、アプリケーションは、さらなる処理のためにグローバル出力を有する。
リアルタイム通信アプリケーション(RTC)実装では、RTCは、出力デバイスに対して開くようにレンダリングコンポーネントに呼び出しを行い、入力デバイスに対して開くようにキャプチャコンポーネントに対して呼び出しを行う。このため、RTCは、実質的に、レンダリングインターフェースに対して開かれた出力デバイス、およびキャプチャインターフェースに対して開かれた入力デバイスを有する。次に、RTCは、出力デバイスに対してキャプチャコンポーネントを開く呼び出しを行うことができる。出力デバイスからのグローバル出力がRTCに戻された際、出力デバイスのグローバル出力からの、そうでなければ音響エコーを生じさせるオーディオストリームが、RTCによって消去されることが可能である。その他の実装では、アプリケーションは、そのアプリケーションに関するレンダリングコンポーネント(ローカル出力)に対してキャプチャコンポーネントを開くように呼び出しを行う。レンダリングコンポーネントからのキャプチャされた出力は、続く信号処理のためにアプリケーションに送り返されることが可能である。
図1aは、それぞれのPC154、174を使用して、第1の個人152が、パケット交換ネットワーク170を介して第2の個人172と電話会話を行うパーソナルコンピュータ(PC)ネットワークテレフォニー環境100を描いている。各PC154、174は、オペレーティングシステム156、176によってそれぞれ動作させられ、RTCを実行する。各PC154、174は、個人152、172のそれぞれの音声を含む環境(ambient)166、186からの入力を受け取る1つまたは複数のマイク164、184をそれぞれ有する。各PC154、174は、遠隔の個人172、152の話し声をローカルの個人152、172が聞く1つまたは複数のスピーカ162、182をそれぞれ有する。各個人152、172には、遠隔の個人の音声が聞こえることに加えて、PC動作環境に特有のものであるシステムサウンド(例えば、ビープ音、クリック音、可聴なキュー、および診断音(diagnostics))などのそれぞれのPC154、174によって生じさせられるサウンドも聞こえる。
理想的には、RTC160は、マイクを通された音声だけをネットワークを介して相手の個人に伝えるべきである。また、RTC160は、受け取られた音声だけが、受信側PCのスピーカから聞こえることを確実にすべきである。RTCによるストリーミングオーディオの適切な処理なしには、以上の理想は実現されない。例えば、第2のPC174から受け取られた音声オーディオストリームが、スピーカ162において複数回、出力されることが防止されることがRTC160に重要であり、そうでなければ、個人152に個人172の音声のエコーが聞こえる。また、RTC160は、PC152からのシステムサウンドではなく、個人152の音声だけが、ネットワーク170を介してPC174に伝送されることを確実にすべきである。
以上の理想を達成するため、RTC160の実装は、オペレーティングシステム156がストリーミングオーディオキャプチャラ(capturer)(SAC)158およびストリーミングオーディオレンダラ(renderer)(SAR)158を有する場合に実行されることが可能である。この実装では、第1のシステム154のRTC160は、第2のシステム174から受け取られた音声オーディオストリームをSAR158に出力し、SAR158は、マイク164に入力される出力のためにスピーカ162に同ストリームをレンダリングする。オペレーティングシステム156は、システムサウンドオーディオストリームをSAR158に出力し、SAR158は、マイク164に入力される出力のためにスピーカ162に同ストリームをレンダリングする。マイク164は、第2のシステム174から受け取られたシステムサウンドオーディオストリームおよび音声オーディオストリームを含む環境166からの環境オーディオストリームの入力を受け取る。RTC160は、次に、SAR158によってレンダリングされる第2のシステム174から受け取られた音声オーディオストリームを含むローカルオーディオストリームをキャプチャするようにSAC158に呼び出しを行う。また、RTC160は、SAR158によってレンダリングされたシステムサウンドオーディオストリームを含むグローバルオーディオストリームをキャプチャするようにSAC158に呼び出しを行うこともする。
以上のことから、RTC160は、様々な消去を実行してRTCの理想を達することができる。SAC158によってキャプチャされたローカルオーディオストリームを使用することにより、RTC160は、マイク164に対する入力、ならびにSAR158によってレンダリングされ、スピーカ162によって出力された第2のシステム174から受け取られた音声オーディオストリームの入力を消去することができる。このため、第2のシステム174によって受け取られた音声オーディオストリームは、スピーカ162に出力するためにSAR158によって複数回、レンダリングされることが防止される。SAC158によってキャプチャされたグローバルオーディオストリームを使用することにより、RTC160は、SAR158によってレンダリングされ、スピーカ162によって出力されたオペレーティングシステム156によって出力されたシステムサウンドオーディオストリームをマイク164に対する入力から消去することができる。このため、システムサウンドオーディオストリームが、RTC160によってネットワーク170を介して第2のシステム174に伝送されることが防止される。
図1bは、図1aのネットワークテレフォニー環境100の態様の特徴を示す部分ブロック図である。RTC102が、音響エコー消去手続き(AEC)112と連携して機能する。AEC112を実行するため、キャプチャデバイスからの録音された入力、およびレンダデバイスを出て行くローカルで処理されたオーディオストリーム、あるいはレンダデバイスを出て行くグローバルオーディオ出力のシステム全体のミックス(グローバル出力)を含む様々なオーディオストリームを使用することができる。図1bは、以上の様々なオーディオストリームが使用される環境を描いている。
図1bでは、RTC102は、オーディオサービスコンポーネントを有するオペレーティングシステムによって動作させられているコンピュータシステム上で実行されている。オーディオサービスコンポーネントは、RTC102によって呼び出されて、ストリーミングオーディオキャプチャラ(SAC)108、110、およびSAR104をセットアップすることが可能である。SAR104は、グローバルエンジン106に出力されるRTC102からのストリーミングオーディオをレンダリングする。マイク(図示せず)が、SAC108によってキャプチャされ、グローバルエンジン106に出力されたストリーミングオーディオを入力する。グローバルエンジン106は、マイクとSAR104からの入力をミキシングする。そのミックスが、出力デバイスによって出力される。この出力は、SAC110によってキャプチャされる出力デバイスのグローバル出力である。RTC102に、SAC108を介してマイクからキャプチャされたストリーミングオーディオが返され、SAC110を介してキャプチャされたグローバル出力が返されるデジタルループバックを図1bに描いている。次に、RTC102は、キャプチャされたグローバル出力に対してAEC112を実行することができる。AEC112は、SAC110から出力されたキャプチャされたグローバル出力を消去することを要望しているので、RTC102は、SAC110のデジタルループバックへの接続をシステムオーディオグラフに求める。キャプチャされたグローバル出力がAEC112によって使用されてローカルの効果が消去される。
図2aは、PC254が個人252の音声コマンドでメディアを再生することができるメディアプレーヤー環境200を描いている。これを行うため、個人252は、環境266に音声を発する(speak into)。環境266からのサウンドが、マイク264によって拾われる。マイク264は、音声認識処理のために環境266からのサウンドをPC254に入力する。メディアプレーヤーアプリケーション(MP)260がPC254上で実行され、音声認識処理から音声コマンドを受け取る。例として、メディアプレーヤー260は、米国ワシントン州、レッドモンド市のマイクロソフトコーポレーションによって提供されるWindows(登録商標)Media Playerのソフトウェアであることが可能である。それらのコマンドは、歌を再生すること、歌の再生を一時停止すること、次の歌を再生すること、歌を再生するのを停止すること、ポータブルメディアプレーヤーからポータブルメディア(例えば、CD)を取り出すこと等であることが可能である。MP260は、スピーカ262から出力されるメディアを再生することができる。
理想的には、MP260によって生成されるサウンドは、スピーカ262によって複数回、出力されることが防止されなければならず、MP260は、PC254からのシステムサウンドではなく、音声コマンドだけを受け取らなければならない。以上の理想を達するため、MP260の実装が、オーディオサービスコンポーネントを有するオペレーティングシステム256を使用するPC254上で実行されることが可能である。オーディオサービスコンポーネントは、SAC254およびSAR258を含む。メディアプレーヤーアプリケーション(MP)260は、メディアオーディオストリームをSAR258に出力し、SAR258は、環境266からマイク264に入力される出力のためにスピーカ262に同ストリームをレンダリングする。オペレーティングシステム256は、システムサウンドオーディオストリームをSAR258に出力し、SAR258は、環境266からマイク264に入力される出力のためにスピーカ262に同ストリームをレンダリングする。マイク264は、環境266からの環境オーディオストリームの入力を受け取る。以上のことから、環境オーディオストリームには、スピーカ262によって出力されたシステムサウンドオーディオストリーム、スピーカ262によって出力されたメディアオーディオストリーム、およびMP260によって実行される動作のためのユーザ252からの音声コマンドを含む音声オーディオストリームが含まれる。MP260は、SAR258のレンダリングから、メディアオーディオストリームを含むローカルオーディオストリーム、およびシステムサウンドオーディオストリームとメディアオーディオストリームを含むグローバルオーディオストリームのそれぞれをキャプチャするようにSAC254に呼び出しを行う。
MP260は、マイク264に対する入力から様々な消去を実行することができる。SAC254によってキャプチャされたローカルオーディオストリームを使用することにより、MP260は、メディアオーディオストリームの入力を消去して、メディアオーディオストリームが、スピーカ262によって複数回、出力されるのを防止するようにする。SAC254によってキャプチャされたグローバルオーディオストリームを使用することにより、MP260は、システムサウンドオーディオストリームおよびメディアオーディオストリームの入力を消去して、自らが音声オーディオストリームだけを受け取るようにすることができる。
図2bは、図2aのメディアプレーヤー環境200の態様の特徴を示す部分ブロック図である。メディアプレーヤー202は、オーディオサービスコンポーネントを有するオペレーティングシステムによって動作させられるコンピューティングシステム上で実行されている。オーディオサービスコンポーネントは、メディアプレーヤー202によって呼び出されてSAC214およびSAR204、208をセットアップすることができる。メディアプレーヤー202は、SAR204に出力している。システムサウンド206が、コンピューティングシステムによってSAR208に出力するために生成されている。MP202からのストリーミングオーディオ、およびシステムサウンド206が、グローバルエンジン220にレンダリングされ、エンジン220においてミキシングされてグローバル出力がもたらされる。グローバル出力は、サウンドレコーダ216による録音のためにSAC214によってキャプチャされる。サウンドレコーダ216内のストリーミングオーディオを信号処理のために使用して、図2aに見られるMP206に関する理想のような所望の音響結果を達することができる。
図3〜5は、既存のレンダリングAPIに対してキャプチャアプリケーションプログラムインターフェース(API)を開くように呼び出しを行って、RTC出力ミックスが、AECなどの高度な信号処理を最適に受けることが可能であるようにするRTCを特色とするそれぞれの環境300、400、および500を示している。
図3は、RTC302が、出力デバイスドライバ338と通信する出力デバイスと入力デバイスドライバ320と通信する入力デバイスの間のデジタルループバック回路内にある環境300を示している。環境300は、太線で囲まれ、アプリケーションセクション360、システムオーディオサービスセクション370、ミックス入力/出力(I/O)セクション380、およびカーネルセクション390を含むいくつかのセクションを示している。アプリケーションセクション360は、システムサービスセクション370によるサービスを受ける。ミックスI/Oセクション380は、入力デバイスから入力を受け取り、それぞれドライバ338、320を介して出力デバイスに出力する。環境300では、RTC302は、グローバル出力のすべてからの出力を消去するのではなく、ローカルプロセスからの出力だけを消去する。
RTC302は、出力デバイスドライバ338に対して開かれたSAR304、および入力デバイスドライバ320に対して開かれたSAC333を有する。図3で、実線の矢印は制御のフローを反映し、破線の矢印はデータフローを示している。符号「1」で示される制御フローは、RTC302が、環境300に示したプロセスを開始するように制御フロー命令をSAR304に送った時点で開始する。符号「1」における制御フロー矢印は、RTC302が、RTC302から出力の録音を呼び出す、または要求することができるという概念を例示することを目的としている。この制御フロー中、RTC302は、インターフェースを使用してSAC363に対して出力を開くようにシステムオーディオサービス370に要求を行う。構造のほとんどは、システムオーディオフィルタグラフマネージャ372によって環境300内でセットアップされる。RTC302は、SAR304からSACインターフェースを獲得する目的でSAR304を呼び出す。このケースでは、SAC363がRTC302によって呼び出されるインターフェースである。このため、RTC302は、SAR304に対するデータフローを有する。SAR304は、バッファ306に出力する。
符号「2」および「3」で示される制御フローは、SAR304からプロセッサ362、およびエンドポイント364にそれぞれ進む。プロセッサ362は、処理されるべきオーディオ効果のリストを保持するオブジェクトの名前を表わすことを意図しており、オブジェクトが、その効果が処理されるように要求する。符号「2」および「3」における制御フロー矢印は、SAR304のアプリケーションプログラムインターフェース(API)がRTC302からの出力の録音を調整することができる可能な構成を反映している。
データは、バッファ306から符号308における形式変換プロセスのために進む。符号308における形式変換に続き、データは、サンプルレートコンバータ(SRC)330に進む。SRC330は、データがミックスI/Oセクション380に進む前に図3で見られる最後の音響効果モジュールである。
SRC330で、データは、サンプルレート変換を受ける。SRC330から、データは、2つの異なる方向に進む。その方向の1つが、バッファ362からSAC363へのデータフローである。SAC363で、データがキャプチャされ、RTC302に入力として戻される。このため、RTC302は、ローカルプロセスからキャプチャされたローカル出力を受け取っている。したがって、RTC302は、キャプチャAPIインスタンスを返されており、SAC363からRTC302に向かうデータフロー矢印で入力として出力データの配信を受ける。もう一方の方向で、SRC330は、バッファ362に出力されたのと同じデータをバッファ332に出力する。バッファ332内のデータは、グローバルエンジン334に送られる。グローバルエンジン334は、ループバッファ336に出力し、データは、ループバッファ336から出力デバイスドライバ338に進む。出力デバイスドライバ338から、データは、カーネルセクション390とインターフェースをとる出力デバイス(図示せず)上で出力されることが可能である。
データは、入力デバイスドライバ320を介して入力デバイス(図示せず)からも受け取られることが可能である。入力デバイスドライバ320は、ループバッファ322に出力する。ループバッファ322は、データをグローバルエンジン324に送り、エンジン324は、バッファ326に出力する。バッファ326は、ローカルエンジン328に出力し、エンジン328は、バッファ331に出力する。SAC333においてバッファ331からオーディオデータがキャプチャされ、SAC333からRTC302に戻される。
図4は、SAR304が、RTC302にデータを戻すためにSAC305に直接に出力する図3の環境300のバリエーションである環境400を示している。環境400では、308における形式変換の前に、SAC305においてオーディオデータがキャプチャされる。したがって、オーディオデータは、SAC305を介してSAR304から直接に獲得される。ローカルエリアに入る前に、環境400で見られるプロセスは、RTC302に送り返されるオーディオデータが、それぞれ符号308および330において形式変換およびサンプリングレート変換を回避していることで、環境300で見られるプロセスのステップを減らしている。その他の点では、環境400は、環境300と同様である。
図5は、図3、4の環境300、400のバリエーションである環境500を示している。環境500は、RTC302からオーディオデータを受け取るスプリッタ(splitter)303を示している。スプリッタ303は、SAR304とSAC305の両方に出力する。このため、図5は、SAR305におけるレンダリングプロセスの前に、SAC305によってオーディオデータがキャプチャされることで図4とは異なっている。その他の点では、環境500を描く図5は、環境300および400と同様である。
図6は、それぞれ図3〜5の環境300、400、および500に適用可能な方法600に関する流れ図である。方法600は、ローカルプロセスからの出力の録音を可能にする。方法600では、RTCなどのアプリケーションが、グローバル出力のすべてからローカルプロセスからの出力を消去するのではなく、ローカルプロセスからの出力だけを消去している。アプリケーションは、出力デバイスに対して開かれるようにSARに呼び出しを行い、入力デバイスに対して開かれるようにSACに呼び出しを行う。このため、アプリケーションは、出力デバイスがSARインターフェースを使用して開かれることを要求し、入力がSACインターフェースを使用して開くことを要求する。
方法600は、ブロック602で開始し、アプリケーションが、ローカルプロセスからの出力ストリームをキャプチャすることを要求する。ブロック602に続くブロック604で、ローカル出力アプリケーションプログラムインターフェース(API)が、どこでデータストリームに接続する(hook into)かを決める。この接続またはフック(hook)は、通常、グローバルサービスに向かうローカル出力の直前である。ブロック604に続き、方法600は、制御をブロック606に進め、ローカル出力APIが、出力ストリームのキャプチャを実行するためにローカルエンジン内でオーディオシステムグラフを接続する(hook up)。ブロック606に続き、ブロック608が方法600において実行される。ブロック608で、アプリケーションは、キャプチャAPIインスタンスを返され、アプリケーションに入力された出力データを送出する。
図7は、以下に述べること以外は図3の環境300と同様な環境700を示している。環境700において、RTC702は、出力デバイスドライバ724と通信する出力デバイスと入力デバイスドライバ726と通信する入力デバイスの間のデジタルループバック回路である。環境700は、太線で囲まれ、アプリケーションセクション760、システムオーディオサービスセクション770、ミックス入力/出力(I/O)セクション780、およびカーネルセクション790を含むいくつかのセクションを示している。アプリケーションセクション760は、システムサービスセクション770によるサービスを受ける。ミックスI/Oセクション780は、入力デバイスから入力を受け取り、それぞれのドライバ724、726を介して出力デバイスに出力する。環境700において、RTC702は、出力デバイスに対してストリーミングオーディオキャプチャラを開くことによって出力デバイスに対するグローバル出力内のオーディオストリームのミックスに対して信号処理(例えば、AEC)を実行する。
RTC702は、出力デバイスドライバ724に対して開いたSAR704、および入力デバイスドライバ726に対して開いたSAC738を有する。図7で、実線は制御のフローを反映しており、破線はデータフローを示している。制御フローは、システムオーディオサービス770が、環境700に示したプロセスを開始するようにRTC702から制御フロー命令を受け取った時点で開始する。この制御フロー中、RTC702は、SAC768に対してインターフェースを使用して出力を開くようにシステムオーディオサービス770に要求を行う。RTC702は、システムオーディオサービス770を使用してSAR704、SAC738、およびSAC768をセットアップする。この場合、SAC768が、RTC702によって呼び出されるインターフェースである。このため、RTC702は、SAR704に対するデータフローを有する。SAR704は、バッファ706に出力する。データは、バッファ706から符号708における形式変換プロセスのために進む。符号708における形式変換に続き、データは、サンプルレートコンバータ(SRC)710に進む。SRC710は、データがミックスI/Oセクション780に進む前に図7で見られる最後の音響効果モジュールである。ボリュームミックスダウン、チャネルミックスダウン等を含むSRC730以外の効果も企図されている。
SRC710で、データが、サンプルレート変換を受け、バッファ712に出力される。データは、バッファ712からミックスI/Oセクション780およびミキサーモジュール714に入る。様々なソースからの様々なオーディオストリームが、ミキサーモジュール714において一緒にミキシングされることが可能である。ミキサーモジュール714から、データは、グローバル効果モジュール(GFX)716に進む。GFX716で、データは、2つの異なる方向に進む。その方向の1つで、データは、GFX716から出て、形式変換モジュール718に出力され、次に、エンドポイント720に出力される。エンドポイント720から、データは、ループバッファ(looped buffer)722に進み、そこから出力デバイスドライバ724に進む。出力デバイスドライバ724から、データは、カーネルセクション790とインターフェースを取る出力デバイス(図示せず)上で出力されることが可能である。もう一方の方向で、データは、GFX716からバッファ762に進み、データがローカルエンジン764に進むようにアプリケーションセクション760に戻る。ローカルエンジン764から、データは、バッファ766に進み、次にSAC768に進む。SAC768で、データがキャプチャされ、RTC702に入力として戻される。このため、RTC702は、出力デバイスからキャプチャされたグローバル出力を受け取っている。
データは、入力デバイスドライバ726を介して入力デバイス(図示せず)からも受け取られることが可能である。入力デバイスドライバ726は、ループバッファ728に出力する。ループバッファ728は、データをグローバルエンジン730に送り、エンジン730は、バッファ732に出力する。バッファ732は、ローカルエンジン734に出力し、エンジン734は、バッファ736に出力する。SAC738においてバッファ736からオーディオデータがキャプチャされ、SAC738からRTC702に戻される。
図7は、グローバル出力へのアクセスが与えられたRTC702が使用するためのグローバル出力の録音を描いている。これは、RTC702が、オペレーティングシステムキャプチャサービスを使用して再生デバイスに対してキャプチャストリームが開かれるように要求することによって達せられる。そのように開かれた際、出力デバイスからグローバル出力がキャプチャされて、RTC702が、そのグローバル出力に対して信号処理技術、例えば、AECを実行することができる。SAR704、SAC768、およびSAC738を含むいくつかのアプリケーションプログラムインターフェース(API)が、RTC702によって使用される。SAR704は、出力デバイス上でストリーミングオーディオデータをレンダリングすることを目的とする。SAC768は、キャプチャデバイスからオーディオデータをストリーミングすることを目的とする。SAC738は、SAC768と同様の機能を実行する。出力デバイスドライバ724が通信する出力デバイスに対してSAC768が開かれた時点で、RTC702が、デジタルループバックパスに対するアクセスを得る。これにより、グローバル出力がRTC702に対して、あたかも実際のオーディオデバイスからオーディオデータがキャプチャされているかのように提供されることが可能である。このため、環境700により、RTC702のようなサウンド録音アプリケーションが、出力デバイスに関わらずすべてのサウンドを容易にキャプチャすることが可能になる。
入力デバイス(図示せず)は、入力デバイスドライバ726とインターフェースを取り、RTC702は、SAR704に対してインターフェースを使用して出力デバイスドライバ724を介して開かれた出力デバイスを有し、また、RTC702は、SAC738に対して入力デバイスドライバ726を介して開かれた入力デバイスも有する。このため、RTC702は、グローバル出力から音響エコーを消去することができる。もちろん、環境700は、オペレーティングシステムサービスを使用して出力デバイスからのキャプチャソースを開くことによって音響エコー消去以外の他の形態の高度な信号処理も実行することができる。したがって、ローカルクライアント(例えば、アプリケーション)は、これにより、信号処理を実行するためにグローバル出力に対するアクセスを得ることができる。
図8は、アプリケーションが、オペレーティングシステムのシステムオーディオサービスのキャプチャサービスを使用してグローバル出力を獲得することができる方法800を示している。方法800は、ブロック802で開始し、アプリケーションが、出力デバイスからオーディオストリームをキャプチャするようにオーディオサービスを呼び出す。次に、方法800は、ブロック804に進み、オーディオサービスが、入力を受け取るためにいずれの出力デバイスに接続する(tap into)かを決める。次に、方法800は、ブロック806に進む。制御がブロック806に進んだ際、オーディオサービスが、どこからオーディオデータを取り込むかを決める。次に、制御は、ブロック808に進み、オーディオサービスが、キャプチャされるべき出力データを取り出すためにオーディオシステムグラフに関する構造を挿入する。出力データは、キャプチャされると、信号処理のためのアプリケーションに対する入力データとして使用される。方法800の制御は、ブロック810に進み、アプリケーションは、出力データを入力として録音するためにキャプチャAPIを返される。このため、アプリケーションは、オペレーティングシステムのシステムオーディオサービスのキャプチャサービスを使用することによってグローバル出力を受け取ることができる。アプリケーションは、AECを含むが、それに限定されないいくつかの信号処理技術のいずれでもグローバル出力に対して実行することができる。
例示的なコンピューティングシステムおよびコンピューティング環境
図9は、本明細書で説明するRTCおよびMPを含むアプリケーションが内部にすべて実装されている、または部分的に実装されていることが可能なコンピューティング環境900の例を示している。例示的なコンピューティング環境900は、コンピューティングシステムの一例に過ぎず、ネットワークアーキテクチャの使用または機能の範囲に関する限定を何ら示唆することを意図するものではない。また、コンピューティング環境900が、例示的なコンピューティング環境900に示したコンポーネントのいずれか1つ、またはいずれかの組み合わせに関連する依存関係または要件を有すると解釈してはならない。
コンピュータアーキテクチャおよびネットワークアーキテクチャは、多数の他の汎用または特殊目的のコンピューティングシステム環境またはコンピューティングシステム構成を使用して実装することも可能である。使用に適する可能性がある周知のコンピューティングシステム、コンピューティング環境、および/またはコンピューティング構成の例には、パーソナルコンピュータ、サーバコンピュータ、シンクライアント、シッククライアント、ハンドヘルドデバイスまたはラップトップデバイス、マルチプロセッサシステム、マイクロプロセッサベースのシステム、セットトップボックス、プログラマブル家庭用電化製品、ネットワークPC、ミニコンピュータ、メインフレームコンピュータ、ゲームコンソール、以上のシステムまたはデバイスのいずれかを含む分散コンピューティング環境等が含まれるが、以上には限定されない。
アプリケーション(RTCおよびMPを含め)は、コンピュータによって実行される、プログラムモジュールなどのコンピュータ実行可能命令の一般的な文脈において説明することができる。一般に、プログラムモジュールには、特定のタスクを実行する、または特定の抽象データ型を実装するルーチン、プログラム、オブジェクト、コンポーネント、データ構造等が含まれる。アプリケーション(RTCおよびMPを含む)は、通信ネットワークを介してリンクされた遠隔の処理デバイスによってタスクが実行される分散コンピューティング環境において実施することも可能である。分散コンピューティング環境では、プログラムモジュールは、メモリ記憶装置を含むローカルのコンピュータ記憶メディアと遠隔のコンピュータ記憶メディアの両方の中に配置されることが可能である。
コンピューティング環境900は、コンピュータ902の形態で汎用コンピューティングシステムを含む。コンピュータ902のコンポーネントには、1つまたは複数のプロセッサまたは処理ユニット904、システムメモリ906、ならびにプロセッサ904からシステムメモリ906までを含む様々なシステムコンポーネントを結合するシステムバス908が含まれることが可能であるが、以上には限定されない。
システムバス908は、様々なバスアーキテクチャのいずれかを使用するメモリバスまたはメモリコントローラ、周辺バス、アクセラレーテッドグラフィックスポート(accelerated graphics port)、およびプロセッサバスまたはローカルバスを含むいくつかのタイプのバス構造のいずれかの1つまたは複数を表わす。例として、そのようなアーキテクチャには、インダストリスタンダードアーキテクチャ(Industry Standard Architecture)(ISA)バス、マイクロチャネルアーキテクチャ(Micro Channel Architecture)(MCA)バス、エンハンストISA(Enhanced ISA)(EISA)バス、ビデオエレクトロニクススタンダーズアソシエーション(Video Electronics Standards Association)(VESA)ローカルバス、およびメザニン(Mezzanine)バスとしても知られるペリフェラルコンポーネントインターコネクツ(Peripheral Component Interconnects)(PCI)バスが含まれることが可能である。
コンピュータシステム902は、通常、様々なコンピュータ可読メディアを含む。そのようなメディアは、コンピュータ902によってアクセス可能な任意の利用可能なメディアであることが可能であり、揮発性のメディアと不揮発性のメディア、取外し可能なメディアと取外し不可能なメディアがともに含まれる。システムメモリ906は、ランダムアクセスメモリ(RAM)910などの揮発性メモリの形態、および/または読取り専用メモリ(ROM)912のような不揮発性メモリの形態でコンピュータ可読メディアを含む。始動中などにコンピュータ902内部の要素間で情報を転送するのに役立つ基本ルーチンを含む基本入力/出力システム(BIOS)914が、ROM912の中に格納されている。RAM910は、通常、処理ユニット904が即時にアクセスすることが可能であり、かつ/または現在、処理しているデータおよび/またはプログラムモジュールを含む。
コンピュータ902は、その他の取外し可能な/取外し不可能な、揮発性/不揮発性のコンピュータ記憶メディアも含むことが可能である。例として、図9は、取外し不可能な不揮発性の磁気メディア(図示せず)に対して読取りおよび書込みを行うためのハードディスクドライブ916、取外し可能な不揮発性の磁気ディスク920(例えば、「フロッピー(登録商標)ディスク」)に対して読取りおよび書込みを行うための磁気ディスクドライブ918、およびCD−ROM、DVD−ROM、またはその他の光メディアなどの取外し可能な不揮発性の光ディスク924に対して読取りおよび/または書込みを行うための光ディスクドライブ922を示している。ハードディスクドライブ916、磁気ディスクドライブ918、および光ディスクドライブ922はそれぞれ、1つまたは複数のデータメディアインターフェース925でシステムバス908に接続されている。代替として、ハードディスクドライブ916、磁気ディスクドライブ918、および光ディスクドライブ922は、SCSIインターフェース(図示せず)でシステムバス908に接続することも可能である。
以上のディスクドライブおよび関連するコンピュータ可読メディアにより、コンピュータ可読命令、データ構造、プログラムモジュール、およびその他のデータの不揮発性ストレージがコンピュータ902に提供される。この例は、ハードディスク916、取外し可能な磁気ディスク920、および取外し可能な光ディスク924を図示しているが、磁気カセットまたは他の磁気記憶装置、フラッシュメモリカード、CD−ROM、デジタルバーサタイルディスク(DVD)または他の光ストレージ、ランダムアクセスメモリ(RAM)、読取り専用メモリ(ROM)、電気的に消去可能なプログラマブル読取り専用メモリ(EEPROM)などの、コンピュータによってアクセス可能なデータを格納することができる他のタイプのコンピュータ可読メディアも、例示的なコンピューティングシステムおよびコンピューティング環境を実装するのに利用できることが認められよう。
例として、オペレーティングシステム926、1つまたは複数のアプリケーションプログラム928、他のプログラムモジュール930、およびプログラムデータ932を含む任意の数のプログラムモジュールをハードディスク916、磁気ディスク920、光ディスク924、ROM912、および/またはRAM910に格納することができる。そのようなオペレーティングシステム926、1つまたは複数のアプリケーションプログラム928、他のプログラムモジュール930、およびプログラムデータ932のそれぞれ(または以上の何らかの組み合わせ)が、本明細書で開示するRTCおよび/またはMPの実施形態を含むことが可能である。オペレーティングシステム926は、前述した標準のオペレーティングシステムストリーミングのオーディオキャプチャサービスおよびオーディオレンダサービス(SACおよびSAR)を含むことが可能である。オペレーティングシステム926のこれらのサービスを使用して、RTC、MPなどのクライアントアプリケーションは、信号処理のためのグローバルオーディオ出力のシステム全体のミックスを獲得することができる。
コンピュータシステム902は、通信メディアとして特定された様々なコンピュータ可読メディアを含むことが可能である。通信メディアは、通常、搬送波または他のトランスポート機構における変調されたデータ信号としてコンピュータ可読命令、データ構造、プログラムモジュール、または他のデータを実現し、任意の情報配信媒体が含まれる。
「変調されたデータ信号」という用語は、信号内に情報を符号化するような形で特性の1つまたは複数が設定されている、または変更されている信号を意味する。例として、限定としてではなく、通信メディアには、ワイヤードネットワークまたは直接ワイヤード接続などのワイヤードメディア、ならびに音響ワイヤレスメディア、RFワイヤレスメディア、赤外線ワイヤレスメディア、およびその他のワイヤレスメディアなどのワイヤレスメディアが含まれる。以上のいずれかの組み合わせも、コンピュータ可読メディアの範囲に含まれる。
ユーザは、キーボード934やポインティングデバイス936(例えば、「マウス」)などの入力デバイスを介してコマンドおよび情報をコンピュータシステム902に入力することができる。マイク935を使用して、音声入力を転送するための音声認識プロセスを受けることが可能な音声コマンドを入力することができる。その他の入力デバイス938(図示せず)には、ジョイスティック、ゲームパッド、サテライトディッシュ、シリアルポート、スキャナ、および/または以上に類する物が含まれることが可能である。以上の入力デバイス、およびその他の入力デバイスは、システムバス908に結合された入力/出力インターフェース940を介して処理ユニット904に接続されるが、パラレルポート、ゲームポート、またはユニバーサルシリアルバス(USB)などのその他のインターフェースやバス構造で接続してもよい。
また、モニタ942、または他のタイプのディスプレイデバイスも、ビデオアダプタ944のようなインターフェースを介してシステムバス908に接続することができる。入力/出力インターフェース940には、サウンドカード、内蔵型(例えば、オンボード)サウンドカード等が含まれることが可能である。1つまたは複数のスピーカ937が、入力/出力インターフェース940と通信していることが可能である。モニタ942に加えて、その他の出力周辺デバイスには、入力/出力インターフェース940を介してコンピュータ902に接続されることが可能なプリンタ946などのコンポーネントが含まれることが可能である。
コンピュータ902は、遠隔コンピューティングデバイス948のような1つまたは複数の遠隔コンピュータに対する論理接続を使用するネットワーク化された環境において動作することができる。例として、遠隔コンピューティングデバイス948は、パーソナルコンピュータ、ポータブルコンピュータ、サーバ、ルータ、ネットワークコンピュータ、ピアデバイス、または他の一般的なネットワークノード等であることが可能である。遠隔コンピューティングデバイス948は、コンピュータシステム902に関連して本明細書で説明した要素および特徴の多く、またはすべてを含むことが可能なポータブルコンピュータとして図示している。
コンピュータ902と遠隔コンピュータ948の間の論理接続が、ローカルエリアネットワーク(LAN)950、および汎用ワイドエリアネットワーク(WAN)952として描かれている。そのようなネットワーキング環境は、オフィス、企業全体のコンピュータネットワーク、イントラネット、およびインターネットで一般的である。LANネットワーキング環境で実装される場合、コンピュータ902は、ネットワークインターフェースまたはネットワークアダプタ954を介してローカルネットワーク950に接続される。WANネットワーキング環境で実装される場合、コンピュータ902は、通常、ワイドネットワーク952を介して通信を確立するためのモデム956、またはその他の手段を含む。コンピュータ902の内部にあることも、外部にあることも可能なモデム956は、入力/出力インターフェース940、または他の適切な機構を介してシステムバス908に接続されることが可能である。図示したネットワーク接続は、例示的であり、コンピュータ902と948の間で通信リンクを確立するその他の手段も使用できることを理解されたい。
コンピューティング環境900で例示したようなネットワーク化された環境では、コンピュータ902に関連して描いたプログラムモジュール、またはプログラムモジュールの部分は、遠隔のメモリ記憶装置の中に格納されることが可能である。例として、遠隔のアプリケーションプログラム958が、遠隔コンピュータ948のメモリデバイス上に常駐している。例示のため、オペレーティングシステムなどのアプリケーションプログラムおよびその他の実行可能なプログラムコンポーネントを本明細書では、個別のブロックとして示しているが、そのようなプログラムおよびコンポーネントは、様々な時点でコンピュータシステム902の異なる記憶コンポーネントの中に存在し、コンピュータのデータプロセッサによって実行されることが認識されている。
結論
オペレーティングシステムのオーディオキャプチャサービスを使用して再生デバイスに対してキャプチャストリームを開くことによってグローバルオーディオ出力に対するアクセスをクライアントアプリケーションに提供することができる。これを行う際、クライアントアプリケーションは、オーディオデバイスなどの出力デバイスからグローバル出力をキャプチャしている。キャプチャされると、クライアントアプリケーションは、キャプチャされたグローバル出力に対して信号処理技術(例えば、AEC)を実行することができる。さらに、このキャプチャサービスがクライアントアプリケーションによって呼び出されて、クライアントアプリケーションからの出力オーディオミックスだけが、クライアントアプリケーションによるさらなる信号処理のためにキャプチャされるように既存のレンダリングAPIに対して開かれることが可能である。したがって、例えば、クライアントアプリケーションは、グローバル出力のすべてからの消去を実行するのではなく、自らの出力だけから消去を実行することができる。
本発明を構造的特徴および/または方法上のステップに特有の言い回しで説明してきたが、特許請求の範囲で定義される本発明は、説明した特定の特徴またはステップに必ずしも限定されないことを理解されたい。むしろ、特定の特徴およびステップは、請求する本発明を実施する好ましい形態として開示している。
リアルタイム通信アプリケーション(RTC)をそれぞれが実行しているそれぞれのパーソナルコンピュータ(PC)を使用して、第1の個人がネットワークを介して第2の個人と話をするネットワークテレフォニー環境を示す図である。 ストリーミングオーディオキャプチャラ(SAC)およびストリーミングオーディオレンダラ(SAR)を使用して音響エコー消去(AEC)を行うRTCを例示する図1aのネットワークテレフォニー環境に関する部分ブロック図である。 ユーザが、PCによって実行されているメディアプレーヤーアプリケーション(MP)にマイクを介してPCに入力される音声コマンドを与え、ユーザが、MPの実行から生じさせられたスピーカによって出力されたサウンドを聞くSACおよびSARを含むオペレーティングシステムを有するPCを示す図である。 PCからのシステムサウンドおよびMPからのメディアサウンドを例示し、PCおよびMPそれぞれからのストリーミングオーディオが、グローバルエンジン内のミキシングおよび処理のためにそれぞれのSARに入力され、グローバルエンジンからの出力が、サウンドレコーダを使用して録音するためにSACに出力される図2aのPCに関する部分ブロック図である。 SARが出力デバイスに対して開き、SACが入力デバイスに対して開いており、SARおよびSACが、グローバル出力からの出力を消去するのではなく、RTCの出力から出力を消去するのに使用されるオペレーティングシステムを有するコンピュータシステム内部でRTCが実行されている実装を示す図である。 SARが出力デバイスに対して開き、SACが入力デバイスに対して開いており、SARおよびSACが、グローバル出力からの出力を消去するのではなく、RTCの出力から出力を消去するのに使用されるオペレーティングシステムを有するコンピュータシステム内部でRTCが実行されている実装を示す図である。 SARが出力デバイスに対して開かれ、SACが入力デバイスに対して開かれており、SARおよびSACが、グローバル出力からの出力を消去するのではなく、RTCの出力から出力を消去するのに使用されるオペレーティングシステムを有するコンピュータシステム内部でRTCが実行されている実装を示す図である。 アプリケーションが、出力に対してSACを開いてその出力を消去し、結果をアプリケーションに送り返すようにする呼び出しを行うプロセスを例示する流れ図である。 SARが出力デバイスに対して開かれ、SACが入力デバイスに対して開かれており、出力デバイスに対してSACを開くことによってグローバル出力からの音響エコーが消去されるオペレーティングシステムを有するコンピュータシステム内部でRTCアプリケーションが実行されている実装を示す図である。 アプリケーションが、出力デバイスに対してSACを開いて出力デバイスからのグローバル出力をキャプチャするようにし、キャプチャされたグローバル出力が、さらなる処理のためにアプリケーションに戻されるようにする呼び出しを行うプロセスを例示する流れ図である。 本明細書で説明するコンピュータ、ネットワーク、ソフトウェアアプリケーション、方法、およびシステムをすべて、または部分的に実装することができるコンピューティング環境の例を示す図である。
符号の説明
102 リアルタイム通信アプリケーション
104 ストリーミングオーディオレンダラ
106 グローバルエンジン
108、110 ストリーミングオーディオキャプチャラ
112 音響エコー消去プロセス

Claims (3)

  1. ストリーミングオーディオキャプチャラ(SAC)、ストリーミングオーディオレンダラ(SAR)およびメディアプレーヤーアプリケーション(MP)を含むアプリケーションを実行するオペレーティングシステムであって、スピーカおよびマイクと通信するオペレーティングシステム、を有するコンピューティングシステムによって実行される方法であって、
    前記MPが、当該MPによって生成され、前記スピーカから出力され少なくとも一部が前記マイクから入力されるメディアオーディオストリームを前記SARに出力するステップと、
    前記オペレーティングシステムが、前記コンピューティングシステムの動作環境に特有のシステムサウンドオーディオストリームであって、前記スピーカから出力され少なくとも一部が前記マイクから入力されるシステムサウンドオーディオストリーム、を前記SARに出力するステップと、
    前記SARが、前記メディアオーディオストリームおよび前記システムサウンドオーディオストリームをレンダリングするステップと、
    前記マイクが、前記スピーカから出力された前記メディアオーディオストリームおよび前記システムサウンドオーディオストリームと、ユーザからの音声コマンドを含む音声オーディオストリームとを含む環境からの環境オーディオストリームの入力を受け取るステップであって、前記ユーザからの音声コマンドは、前記MPによって実行されるべき動作のためのコマンドである、ステップと、
    前記SACが、前記SARによってレンダリングされた前記メディアオーディオストリームを含むローカルオーディオストリームと、前記システムサウンドオーディオストリームおよび前記メディアオーディオストリームを含むグローバルオーディオストリームとをそれぞれキャプチャするステップと、
    前記MPが、前記SACによってキャプチャされた前記ローカルオーディオストリームを使用して、前記マイクへの入力から前記メディアオーディオストリームを消去して、前記メディアオーディオストリームが前記スピーカから複数回出力されるのを防止するステップと、
    前記MPが、前記SACによってキャプチャされた前記グローバルオーディオストリームを使用して、前記マイクへの入力から前記システムサウンドオーディオストリームおよび前記メディアオーディオストリームを消去して、当該MP自身が前記音声オーディオストリームだけを受け取るようにするステップと
    を含むことを特徴とする方法。
  2. 前記それぞれの消去するステップは、前記オペレーティングシステムが音響エコー消去プロセス(AEC)を使用して実行することを特徴とする請求項1に記載の方法。
  3. 1つまたは複数のプロセッサによって実行された際、前記1つまたは複数のプロセッサが、請求項1に記載の方法を実装するようにさせるコンピュータ可読命令を有することを特徴とするコンピュータ可読記録媒体
JP2004083615A 2003-03-20 2004-03-22 キャプチャサービスを介したオーディオ出力に対するアクセス Expired - Fee Related JP4558361B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US10/393,664 US7529847B2 (en) 2003-03-20 2003-03-20 Access to audio output via capture service

Publications (2)

Publication Number Publication Date
JP2004320734A JP2004320734A (ja) 2004-11-11
JP4558361B2 true JP4558361B2 (ja) 2010-10-06

Family

ID=32824910

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004083615A Expired - Fee Related JP4558361B2 (ja) 2003-03-20 2004-03-22 キャプチャサービスを介したオーディオ出力に対するアクセス

Country Status (5)

Country Link
US (1) US7529847B2 (ja)
EP (1) EP1460882B1 (ja)
JP (1) JP4558361B2 (ja)
KR (1) KR101006272B1 (ja)
CN (1) CN100536510C (ja)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI258087B (en) * 2004-12-31 2006-07-11 Delta Electronics Inc Voice input method and system for portable device
US20070185601A1 (en) * 2006-02-07 2007-08-09 Apple Computer, Inc. Presentation of audible media in accommodation with external sound
US9264835B2 (en) 2011-03-21 2016-02-16 Microsoft Technology Licensing, Llc Exposing off-host audio processing capabilities
CN106251876A (zh) * 2015-06-12 2016-12-21 徐文波 基于hook技术的音效混合方法与系统
CN114025230A (zh) * 2021-11-09 2022-02-08 湖南快乐阳光互动娱乐传媒有限公司 一种终端视频播放方法和相关装置

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001503236A (ja) * 1997-04-11 2001-03-06 イー・エヌ・ティー エコー テクノロジーズ リミテッド パーソナル音声メッセージプロセッサ及び方法
JP2003060530A (ja) * 2001-08-13 2003-02-28 Fujitsu Ltd エコー抑制処理システム

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4677466A (en) * 1985-07-29 1987-06-30 A. C. Nielsen Company Broadcast program identification method and apparatus
JP2513055B2 (ja) * 1990-02-14 1996-07-03 日本電装株式会社 半導体装置の製造方法
US6301364B1 (en) * 1999-10-06 2001-10-09 Acoustic Technologies, Inc. Tagging echoes with low frequency noise
US20020172352A1 (en) * 2001-05-16 2002-11-21 Ofir Mecayten Non-embedded acoustic echo cancellation
US20030056213A1 (en) * 2001-05-16 2003-03-20 Mcfaddin James E. Method and system for delivering a composite information stream over a computer network
US7068711B2 (en) * 2002-03-13 2006-06-27 Agere Systems Inc. Multi-function equalizer arrangement

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001503236A (ja) * 1997-04-11 2001-03-06 イー・エヌ・ティー エコー テクノロジーズ リミテッド パーソナル音声メッセージプロセッサ及び方法
JP2003060530A (ja) * 2001-08-13 2003-02-28 Fujitsu Ltd エコー抑制処理システム

Also Published As

Publication number Publication date
KR20040082992A (ko) 2004-09-30
JP2004320734A (ja) 2004-11-11
KR101006272B1 (ko) 2011-01-06
US7529847B2 (en) 2009-05-05
US20040186911A1 (en) 2004-09-23
EP1460882A2 (en) 2004-09-22
CN100536510C (zh) 2009-09-02
EP1460882A3 (en) 2014-12-03
CN1533137A (zh) 2004-09-29
EP1460882B1 (en) 2016-08-24

Similar Documents

Publication Publication Date Title
US7739109B2 (en) System and process for muting audio transmission during a computer network-based, multi-party teleconferencing session
US8711736B2 (en) Audio processing in a multi-participant conference
US20150128228A1 (en) Checking for permission to record voip messages
US11650790B2 (en) Centrally controlling communication at a venue
US11245787B2 (en) Acoustic echo cancelling apparatus and method
JP4558361B2 (ja) キャプチャサービスを介したオーディオ出力に対するアクセス
US11741984B2 (en) Method and apparatus and telephonic system for acoustic scene conversion
US11488612B2 (en) Audio fingerprinting for meeting services
JP2021136606A (ja) 情報処理装置、情報処理システム、情報処理方法、及び情報処理プログラム
WO2020087788A1 (zh) 音频处理方法和装置
KR20230096699A (ko) 화상 회의에서 에코 제거된 오디오 신호를 공유하는 장치
US7254655B1 (en) Software and process for low-latency audio recording
JP4745837B2 (ja) 音響分析装置及びコンピュータプログラム、音声認識システム
EP2779609B1 (en) Sharing a designated audio signal
CN115334195A (zh) 音频录制方法、装置、设备及可读存储介质
JP2023072720A (ja) 会議サーバ、及び会議サーバの制御方法
CN113571032A (zh) 音频数据传输方法、装置、计算机设备和存储介质
JP2009188974A (ja) Ip通信装置
JP2000174926A (ja) 音声回覧装置、音声回覧処理方法および情報記録媒体

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20070206

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100119

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100419

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: 20100713

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20100721

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130730

Year of fee payment: 3

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

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