1

アプリケーションを、speex を使用してオーディオをエンコードする別のアプリケーションと統合しようとしています。ただし、最初のアプリケーションから 2 番目のアプリケーションに送信されたオーディオをデコードすると、ノイズが発生します (静的ではなく、ビープ音のように)。

問題を探す場所を知る必要があります。

最初のアプリケーションは、それ自体の他のインスタンスと通信できます。2 番目のアプリケーションは、それ自体の他のインスタンスと通信できます。彼らはお互いに話すことができません。

Speex の設定が明らかに一致していませんが、どの設定かわかりません。ソースを 1 行ずつ比較したところ、同じ設定を行っているようです。どちらも狭帯域モードを使用します。どちらも、エンハンサー (1)、可変ビット レート (0)、品質 (3)、複雑さ (1)、およびサンプル レート (8000) に同じパラメーターを使用します。エンコードされたフレームの観察された長さも一致します。

参考までに、呼び出しの開始から 6 フレームをカバーするサンプル オーディオ データを次に示します (うまくいけば、私が言及したパラメーターでデコードするのに十分です)。

1dde5c800039ce70001ce7207b60000a39242d95
e8bda0cf21b6ec4629ad0f3b04290474110e70fb
1bdd3a9dfc211845e0ed90dabde11451e191186c
0ba5de5bea933ed1d3675f786947444781407e17
1bd5549fefa91b63d4968b299bf603d7e533b98c
6351b7953f4470d63bbb2b8c49be650ee89488b5
// at this point I get:
// notification: More than two wideband layers found. The stream is corrupted."

私は少し負けています。次に何を確認すればよいかわかりません。

あるコンピューターから別のコンピューターに転送され、Speex でエンコードされたオーディオ データが誤って解釈される可能性がある他の理由は何ですか? 私は愚かな理由に特に興味があります。

4

1 に答える 1

1

自問自答: データ パス全体を端から端までチェックし、各ポイントでログを記録します。

私たちが抱えていた問題は、オーディオが AES CTR モードで暗号化されていたのに、アプリがカウンターで異なるエンディアンを使用していたことです音声の最初の 32 バイトは正常に処理され、ノイズがないためエンコードの問題のように見えましたが、残りのデータは文字化けしていました。

于 2013-09-26T18:38:47.937 に答える