問題タブ [amr]

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.

0 投票する
1 に答える
1249 参照

java - 3GP ファイルからの AMR データの抽出

ファイルから生の AMR オーディオ フレームを抽出するのに問題があり.3gpます。「 http://android.amberfog.com/?p=181 」というリンクをたどりましたが、「mdat」ボックスタイプの代わりに「moov」を取得しました。「moov」ボックスと「mdat」ボックスの場所がデバイスによって異なることをどこかで読みました。.3gpヘッダーを正しくスキップして生の AMR データを抽出する方法を知っている人はいますか? 以下はコード スニペットです。

0 投票する
1 に答える
2089 参照

android - Android MediaCodec 3gpp エンコーダの出力バッファに不正なバイトが含まれている

MIC からのオーディオ ストリームを 3gpp (AMR-NB) としてエンコードしようとしています。問題は、出力バッファーに奇妙なデータが含まれていることです。コードと出力は次のとおりです。

メディア エンコーダーの作成:

MIC からの PCM データは正しいようです (ファイルに保存され、Audacity でリッスンされます)

エンコードされたバイトの読み取り (バッファ、スレッドで実行):

出力は次のとおりです。

私はグーグルで検索しましたが、助けが見つかりませんでした。MediaCodec の使用に関する Android ドキュメントも優れていません。出力バッファ コンテキストでの ByteBuffer.clear() の使用に関する多くの試行錯誤です。

よろしく、Ahti。

0 投票する
1 に答える
3461 参照

wireshark - DTX を使用した PCAP から AMR への変換

オクテットで整列された AMR-WB ペイロードを持つ RTP ペイロードを含む PCAP を再生可能な AMR ファイルに変換しようとしています。

https://www.rfc-editor.org/rfc/rfc4867#section-4に記載されている AMR の格納形式については、SID フレーム間に NO_DATA (0x7C) フレームを挿入する必要があります。これは、DTX (不連続送信) モードを使用する場合に特に重要です。

プレーヤーで再生されない Wireshark からの AMR Raw Output の質問は、単一の PCAP UDP パケットを AMR に変換する方法を説明していますが、パケットを連結する必要がある、または DTX の SID フレームの後に NO_DATA フレームを挿入する必要があるパケット フロー全体を考慮していません。モード。

PCAP.net ですべてのパケットを解析して変換することに成功しましたが、出力が正しいかどうか疑問に思っています。ただし、DTX モードで AMR-WB をサポートしているオーディオ プレーヤーに関する情報は見つかりませんでした。

VLC プレーヤーは音声の一時停止を含めて正しく再生しますが、ファイルの合計時間が間違って表示され、(VLC を使用して) *.wav に変換すると、音声の一時停止がなくなります。

音のスペクトルを示す audacity などのツールを使用して、音声データを分析したいと思います。残念ながら、大胆さはスピーチの一時停止で大きな音を立てます(写真を参照). したがって、audacity が DTX をサポートしていないだけなのか、出力が壊れているのかわかりません。

お役に立てれば幸いです。

スピーチの一時停止での Audacity Bangs (SID+NO_DATA フレーム)

ここに出力サウンドファイルがあります (16 進エディタを使用して *.amr と呼びます):

そう、

  1. DTX フレームを解釈しないため、Audacity の問題ですか? 他にどのプレーヤーが正しくプレイできるでしょうか?

  2. 私の AMR ファイルは間違っていますか?

よろしく

0 投票する
0 に答える
822 参照

android - オーディオレコード AMR

MIC から周期的な通知を取得し、サンプリングされた振幅の RMS を取得する必要があります。現在、サウンドを WAV 形式で保存する AudioRecord を使用して実行しています (ここのように)。しかし、これはファイルサイズに関して非常に効果的ではないことが判明しました.pcmデータをamr形式のファイルに保存することは可能ですか?

参照は非常に高く評価されます...

ところで、私は MediaRecorder でそれをやろうとしましたが、getMaxAmplitude は、クエリが 1 秒間に約 32 回未満の場合、期待どおりに機能しないようです (騒がしい部屋でも多くのゼロを返します)。これに遭遇する方法はありますか?または、AudioRecord から周期的な通知を取得し、MediaRecorder に同時に amr ファイルを保存させる方法はありますか?

他の提案はありますか?

0 投票する
2 に答える
2536 参照

c#-4.0 - c#.net を使用して amr ファイルをデコードする方法

amr 形式を pcm 形式にデコードする必要があり、後で c#.net を使用して mp3 に変換されます。しかし、そうするためのライブラリを見つけることはほとんどありません。NAudio ではできないようです。この形式のファイルをデコードするために使用できる c# ベースのオープン ソース ライブラリはありますか? 現在、私はWindowsサーバー2012(64ビット)に取り組んでいます。

NAudio コード:

0 投票する
1 に答える
2813 参照

c#-4.0 - C# を使用して amr ファイルを mp3 に変換する方法

NAudio MFT を使用して、さまざまなオーディオ形式を MP3 に変換しています。今、私はNaudio MFTを使ってamrファイルをMP3に変換したいと思っています。しかし、amr ファイルを MFT への入力として指定すると、「HRESULT からの例外: 0xC00D36C4」という例外がスローされました。これを達成する方法はありますか?

私のC#コード:

Windows Server 2012 64 ビット プラットフォームで作業しています。

前もって感謝します。

0 投票する
0 に答える
231 参照

c++ - AMR サイレント パケットを見つける

リアルタイム プロジェクトで opencoreamr ライブラリを使用しています。このライブラリには、ノイズ パケットを無音にする一種の VAD 機能があることがわかりました。無音パケットにデコードされる音声パケットとノイズ パケットを区別したいのですが、どうすればよいでしょうか。どうすれば AMR サイレント パケットを区別できますか (処理しないようにするため)?