この質問に正しく答えるには、VoIP の重要な概念のいくつかを説明する必要があると思います。
まず、UDP はVoIPで最も一般的で広く使用されている方法です。IP ネットワークはパケット交換であり、非リアルタイム データ通信に最適であり、リアルタイム VoIP 用には設計されていないことに注意してください。
この問題を解決するために、UDP が使用されます。UDP は信頼性が低く、コネクションレス プロトコルです。UDP はパケットを失いますが、スピーチの音声は理解できますが、脳はエラーを効果的に補正します。そのため、信号の 3 本のバーでも電話で誰かと話すことができます。
パケット損失とバースト長
パケットロスは輻輳が原因で発生することが多いため、パケットロスの量はネットワークの設備状況によって異なります。UDP を使用した VoIP でのパケット損失は、ほとんどの場合、バースト長で発生します。バースト長は、送信中に連続して失われたパケットの数であるため、バースト長が 3 の場合は、連続して 3 つのパケットが失われたことを意味します。
パケットロス補償
パケット損失が発生した場合、単純なパケット損失補償技術が表面化し、サービスの品質に重大な影響が及ぶことはありません。パケットの 20 ~ 30% が失われた場合でも、音声は理解できます。方法は次のとおりです。
最後に正常に受信されたパケットを繰り返します。
Fill in - ギャップに沈黙を再生します。
スプライシング - 事実上、これはギャップの始点と終点を一緒に押すことによって、バーストの長さによって生じるギャップを取り除くことと考えることができます。
- 補間 - バースト長の前後で正常に受信されたパケット間の平均など、ギャップ内で失われたパケットを補間するために前後の音声の知識を使用します。
バースト長のサイズを縮小する優れた方法はインターリービングとして知られているため、QoS を向上させる方法はインターリービングです。ブロック インターリーブ機能は、音声を受け取り、それを一連のパケットに分割します。これらのパケットは、行列の形状 (例: 4 x 4) のバッファーにロードされます。関数を使用してバッファーを回転または転置し、パケットが順序どおりにならないようにします。受信者側では、この関数の逆を使用してパケットを並べ替えます。この方法は簡単で効果的です。下の図を参照してください。
代替テキスト http://img688.imageshack.us/img688/3962/capturevnk.png
最近、小さな VoIP アプリを作成しました。UDPを使用した無線LAN経由。アプリケーションの正確な要件についてはよくわかりませんが、一般に、(2 つのホスト間の) VoIP アプリケーションは次のように実装できます。
代替テキスト http://img338.imageshack.us/img338/6566/captureec.png
図では、アプリケーションが独自のパケット設計を定義しています。ヘッダーはパケット番号 (1 バイトを使用) であり、ペイロードは音声データ (n バイト、ペイロードのサイズ) です。これを定義すると、より優れたパケット補正技術が可能になり、プログラミングの論理フローが可能になります。
TCP は、いくつかの理由から VoIP には適していません。「TCP VoIP」をグーグルで検索すると、最初の結果がこの見解を支持する理由が明らかになります。
TCP は信頼性の高い接続指向のプロトコルです。これは、送信中に失われたパケットがある時点で他のホストから再送信されることを意味します。この再送信は、リアルタイム サービスには実用的ではなく、ジッターや遅延が増加し、場合によってはパケット損失が増加する可能性があります。
ご質問への回答
私が得るのは基本的にただのノイズです。20%は録音された音で残りはただの変なノイズです。
TCP はノイズを導入してはならず、ジッタとレイテンシを導入する必要があります。ソケットにはタイムアウト時間が自動的に定義される傾向がありますが、タイムアウト時間を定義していますか? そうでない場合、再生前に正しいパケットを受信できないのはなぜですか?
私は正しい軌道に乗っていますか?この種のアプリケーション (ある種の音声会議) に TCP/IP を使用することは良い考えでしょうか?
いいえ、TCP/IP を使用しないでください。これは良い考えではありません。あなたのマネージャーは、パケット損失がひどいものであると誤って想定しているようです.
概要
ここでは、この特定の問題に対して可能な限り役立つように、いくつかの一般的な重要な概念を示していますが、これですべてを網羅していると見なすべきではありません。VoIP システムが音声コーディング/信号処理技術の基本原則を使用していることを確認してください。
覚えておくべき重要なポイントは次のとおりです。
これが役立つことを願っています。