5

Adobe Flexを使用してビデオチャットプログラムを作成しようとしていますが、エコーに大きな問題があります。参加者がヘッドセットを使用していない場合、彼らが言うことはすべてエコーします。さらに悪いことに、マイクがミュートされるまで終了しないエコーの正のフィードバックループを実際に作成することができます。

Flex / Flashプラットフォームでこれに対する解決策を見つけた人はいますか?

私のソフトウェアはSpeexコーデックを使用しており、すべてのバッファリングを排除するために最善を尽くしました(つまり、ライブストリームであり、バッファ長を0に設定しました)。ループバックオプションがオフになり、「UseEchoSuppression」がオンになります。ビデオとオーディオのストリーミングにRed5サーバーを使用しています。

どんな助けでもいただければ幸いです。

4

8 に答える 8

7

これは、現在修正されていないAdobeのソフトウェアの既知の問題です。

今のところ、問題を回避することしかできません。

アプリケーションにプッシュツートークモードを実装し、音質の問題が発生した場合にユーザーがプッシュツートークに簡単に切り替えられるようにする必要があります。

アプリケーションのすべてのユーザーがヘッドセットを持っている場合、プッシュツートークに頼る必要はありません。

アプリケーションが多対多の会議を行っている場合、ユーザーがスピーカートークンを要求できるようにすることは興味深いアイデアかもしれません。

tstの提案に基づくアプローチを使用すると、ユーザーが手動で要求するのではなく、アプリケーションが話している人をチェックしてから、スピーカートークンを自動的に付与することができる場合があります。明らかに、これが実際にうまく機能することを確認するために、ユーザビリティテストを実施する必要があります。

バグに関する詳細情報

詳細については、次のアドビのバグレポートを参照してください。

バグの説明は次のとおりです。

Flash player has no AEC support yet. There is no AEC support in Flash player 10 beta also. Developers need built-in AEC to create convenient webservices with live audio/video communication without requirement for user to have a headset. According to Speex project website Speex supports AEC. Please add AEC support for release version of Flash Player 10 to make suitable for communication webservices.

于 2009-03-11T13:03:31.030 に答える
4

スピーカーからのすべての出力がマイク入力から除去されるように (または可能な限り近くで) フィルタリングを実装する必要があります。これを行うための特定のツールについては知りませんが、基本的な考え方は、入力と出力のタイム スライスを並行して取得し、入力から出力の波形を差し引くというものです。遅延が原因で、オフセットを導入して一致させる必要がある場合があります。

于 2009-02-26T19:59:03.557 に答える
1

スピーカーに送信した最近の出力とマイク入力を関連付けようとする畳み込みフィルターを試すことができます。マイク入力が最近の出力と似ていることを検出したら、相関関係がなくなるまでマイクをミュートします。(しかし、IANAX、私は専門家ではありません)

于 2009-03-09T19:55:54.737 に答える
1

また、エコーを減らすためにローパスフィルターを介してストリームを渡すこともできます

于 2009-03-06T09:42:12.880 に答える
1

別の部分的な解決策は、入力レベルがあるしきい値を下回ったときに送信を停止することです。このようにして、誰かが話をやめると、エコーは消えます。

于 2009-03-09T00:46:40.600 に答える
0

私の妻は、エコーキャンセリングのための適応モミフィルタリングに関するマスタープロジェクトを行いました。1つのソースを知っている限り、可変遅延を管理できるように見えました。ただし、これはアプリケーションにとってはやり過ぎのようです。開始点については、適応フィルターfirフィルター、およびmatlabのwolframfirフィルターコードに関するウィキペディアのページを確認してください。

于 2009-03-12T02:39:10.427 に答える
0

1)問題を定義する必要があります-これが誰も話していないとき、スピーカーから音が聞こえた直後、または多くの人が一度に話しているときにのみ発生する場合など...

2)この分野では、ほとんどのソフトウェアの問題とは異なり、100%機能するソリューションは1つではなく、ソリューションは複数の方法で構成されており、通常は非常にうまく機能しますが、常に機能するわけではありません。

したがって、この尊敬されるリストに私のものを追加するには、上記のアイデアのいくつかを実装する必要があります。

a)録音、ゲインなどのレベルを調整することから始めます。

b)サンプルが記録されてから再生されるまでの遅延を挿入してみてください。遅延を計算するには、試行錯誤の方法が使用されます。

c)イコライザーはありますか?それを調整してください-時々問題は単一の周波数範囲、おそらく低レベルのものにあります...

あなたの努力がうまくいかない場合、問題はより深刻です、あなたはフレックスで見つけるか、ある種の「エコーキャンセル」を実装する必要があります、これは簡単にまたは賢く行うことができます、私はオープンがあると確信していますどこかを調達します。

于 2009-03-10T09:58:20.407 に答える