私は OSX と iOS で VOIP アプリケーションを開発しており、オーディオ フローに AudioQueue を使用する予定です。知りたいことは、AudioQueue はデフォルトでアコースティック エコー キャンセレーションをサポートしているか、それともサポートを追加する必要があるかです。
実装する必要がある場合は、私は信じています。 Speex のようにいくつかのオープン ソース ライブラリを実装する必要があります
質問する
11026 次
2 に答える
21
私の知る限り、オーディオ ユニットを使用してシステムのエコー キャンセレーションにアクセスする必要があります。kAudioUnitSubType_VoiceProcessingIO
代わりに を 使用してそれを行いますkAudioUnitSubType_RemoteIO
。
レイテンシーを制御するために、とにかく Audio Units を使用したいでしょう。
レンダリング コールバック関数を使用して Audio Queue からデータを取得し、それを I/O ユニットに渡すことができます。発信の場合は、 を使用しますAudioUnitRender
。
于 2013-03-18T08:52:24.820 に答える
-1
Davidとこの投稿のおかげで、iOS のエコー キャンセレーションには次の変更が必要であることがわかりました。
desc.componentSubType = kAudioUnitSubType_VoiceProcessingIO
これにより、 Apple のドキュメントに従って、ハードウェア エコー抑制が有効になります。ただし、AudioStream の説明には特定のフラグを使用する必要があります。
audioFormat.mFormatFlags = kAudioFormatFlagsCanonical;
于 2015-04-26T14:17:53.907 に答える