問題タブ [aec]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
ios - iOS に組み込みの AEC または WebRTC AEC?
私はiOS(Androidから)が初めてです。WebRTCスタンドアロンAECMモジュールを使用して、AndroidでAECプロセスをすでに正常に実行しています。
今、私はiOSで同じことをしなければなりませんが、ほとんど進歩していません. 主な問題は、iOS で AEC を実行するためにどのソリューションを選択する必要があるかです。
- iOS 組み込みの AEC を使用します。
- WebRTC スタンドアロン AECM モジュールを再度使用します。
最初の解決策として、iOS には Voice Processing I/O ユニットに AEC が組み込まれていることがわかりました。しかしVPUの性能がイマイチだと聞きました。そうですか?
2 つ目は、Android で、AudioRecord と AudioTrack の API といくつかのバッファ テクニックを使用して、WebRTC の「audio_processing.h」で説明されている「遅延」を計算できますが、情報がありません。iOSで同じ遅延を計算するためにどのAPIを使用すればよいかについて。
現在、Google と iOS のドキュメントを検索しています。また、ここでアドバイスをお待ちしています。特に、すでに iOS で AEC を行っている人。
どうもありがとう。
android - エコーキャンセル: 音声入力としてのマイク、出力としての MP3
私は現在、マイクの入力を監視しているアプリケーションに取り組んでいますが、同時にラウドスピーカーを介して特定の MP3 曲を再生できる必要があります。私が現在直面している問題は、MP3 を再生するとすぐに、もちろんマイクがこれを認識し、音量が上がるため、より多くのデータが返されることです。
MP3 のエコーをキャンセルする必要があります。Android 独自の AcousticEchoCanceller を試しましたが、Nexus 7 でも Nexus 4 でも利用できないため、機能しませんでした。 NDK に精通しており、これを既存のコードに埋め込む方法がわかりません。
だから私はこれを見つけました:https ://github.com/mutantbob/ndk-speex Javaラッパークラスを使用したNDK-Speexですが、残念ながらクラスはSpeex形式のサウンドのエンコードとデコード専用のようで、キャンセルされないようですどんな反響も。エコー キャンセレーションを追加するために Java ラッパーを拡張することについて読んだことがありますが、適切な開始点が見つかりません。誰かが正しい方向に向けてくれますか? それとも、目的地まで別のルートをたどる必要がありますか?
wordpress - Joomla から Wordpress への PayPal 定期購読の転送
Joomla /AEC Subscription Manager (PayPal Recurring Payments 付き) を使用して、WPMU メンバーシップ プラグインhttp://premium.wpmudev.org/project/membership/を使用して Wordpress に Web サイトを移行しています。
ユーザーがWordpressを再購読することなく、定期的なpaypal支払いをAECからWordpressに移行できるかどうかを調べようとしています(そして、これを達成する方法についての指針を探しています)。
必要に応じて、joomla データをそのままにしておくことができます。
ご意見ありがとうございます。
windows-phone-8 - WP8のSpeex AEC
私は Windows Phone 8 用の VoIP アプリケーションに取り組んでおり、スピーカーフォンの使用時に生成されるエコーをキャンセルしたいと考えています。Speex が提供する AEC モジュールをアプリケーションに統合しようとしましたが、役に立ちませんでした。私のアプリケーションは正常に動作しますが、エコーは持続します。私のコードは MS Chatterbox VoIP アプリケーションに基づいており、キャプチャとレンダリングに WASAPI を使用しています。これは関連するセクションの形式です (既に存在し機能しているものと新しいものを示すようにしました):
初期化:
レンダリング (10 ミリ秒ごとに実行):
キャプチャ (10 ミリ秒ごとに実行):
Speex のドキュメントを読み、このサイトのいくつかの投稿 (Wp8 の質問に対する Speex の多くはありませんが、Android に対するいくつかの Speex) を見た後、私はこれが彼らの適切な実装である、またはそれに近いという印象を受けました。 API。では、なぜ機能しないのでしょうか。
前もって感謝します
android - WebRtcAecm 関数を使用する適切な方法
2 つの WebRtcAecm 関数を適切に使用する方法を理解しようとしています。モバイルでのエコー キャンセレーションに使用される主な機能は 2 つあるようです。
最初のものはWebRtcAecm_BufferFarend
次のとおりです。
これは、リモート エンドから受信した音声データを渡す場所だと思います。オーディオ パケットを受信し続けている間、このメソッドを呼び出し続けますか? また、次のパケットで同じバッファを再利用できるように、関数は渡されたバッファのコピーを作成しますか?
他の機能はWebRtcAecm_Process
次のとおりです。
インターネット上のコード スニペットで、nearendNoisy と nearendClean に同じポインターが使用されていることがわかりました。ノイズ抑制を行わない場合、nearendClean パラメータを null にするべきではありませんか?
最後に、これら 2 つのメソッドを 2 つの異なるスレッドで呼び出すことに問題はありますか? リモート オーディオ レシーバーのコードは 1 つのスレッドにあり、マイク リスナーのコードは別のスレッドにあります。
よろしくお願いいたします。
android - get_capture_delay に rsmp_delay が含まれているのはなぜですか?
彼ら。私はAndroid用のAECを勉強しています。具体的には、ツナプロジェクト用のHALを勉強しています。コード: audio_hw.c
get_capture_delay に rsmp_delay が含まれていることがわかりました。そうではないと思います。rsmp_delay と delay_ns の間には何の関係もないと思います。delay_ns は、バッファリングされたオーディオ キャプチャ データ (Linux カーネルと HAL バッファの両方) とサンプリング レートによって計算されるためです。
大変お世話になりました。
webrtc - WebRTC によるアコースティック エコー キャンセレーション
私は WebRTC の AEC モジュールを使用してエコー キャンセレーションを行いましたが、ポイント ツー ポイント通信を行うときに、ある期間に話す人がいない場合、この時点でもう一度話す必要があるという質問に遭遇しました。 ,エコーが表示されます,常に話す人がいる場合,エコーキャンセル効果は非常に良いです,私は知りたいです,なぜ誰も話さないとエコーが発生するのか.
返信ありがとうございます。
android - Android での WebRTC エコー キャンセル。バッファが小さすぎます
webRTC を使用して Android でエコー キャンセルを実行しようとすると問題が発生します。ほとんどの場合、ここに投稿されたプロジェクトに従っていますが、リモートデバイスから直接ストリーミングしようとしています。
これを行うと、次の例外が発生します。
コードを少し調べてみたところ、サンプラーは一度に 80 個または 160 個のサンプルしか受け入れないことがわかりました。これを補うために、一度に 160 サンプルのみを取得しようとしましたが、これは AudioRecord オブジェクトの最小バッファー サイズよりも小さく、エラーが発生します。
したがって、これを回避するために、次のコードも試して、一度に最大 320 バイトしか配信しないようにキューを設定しました (2 バイトを短く使用するため)。
これで、各 160 要素配列がバッファリングされ、WebRtc ライブラリに渡されてエコー キャンセルが実行されます。ランダムなノイズを生成するだけのようです。結果の配列の順序も逆にしようとしましたが、それでもランダム ノイズが発生します。
サウンド サンプルを分割して、WebRTC が好む方法でオリジナルのように聞こえるようにする方法はありますか? または、WebRtc が一度により多くのサンプルを受け入れるようにする方法はありますか? どちらでもいいと思いますが、今はちょっと行き詰っています。
c++ - Speex AEC エコーの一部のみを除去
Qt 5.2.0 で Speex Acoustic Echo Cancellation を使用しようとしましたが、エコーの一部だけが削除され、まだ残っています。
これが私のテストです(メモリ管理用に最適化されていません)。音声を録音し、エコーを除去して 400 ミリ秒後に非常に小さなエコー キャンセレーションで再生します。
私のコードが間違っている場所はありますか?