問題タブ [pcm]

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 投票する
3 に答える
3303 参照

java - signed int (2 バイト、16 ビット) を double 形式に変換します。Javaで

問題があります。Java では、wav ファイルからサンプルを読み取る必要があります。ファイル形式は次のとおりです。wav、PCM_SIGNED、2 バイトの符号付き整数 = 16 ビット、リトル エンディアン... オブジェクトはオーディオ サンプルを BYTES 単位で読み取り、この 2 バイトを 1 つの double 値に変換する必要があります。この式を使用しようとしましたが、完全には正しくありません。

結果を Matlab と比較すると、Matlab の実際の値と Java で変換された値の違いにいつも気付きます。誰でも私を助けてもらえますか?ありがとう、デイブ

0 投票する
3 に答える
8149 参照

java - 16ビットPCMWaveデータをfloatに変換する正しい方法

16ビットPCM形式のWaveファイルがあります。生データbyte[]とサンプルを抽出する方法があり、フロート形式、つまりfloat[]フーリエ変換を行うためにそれらが必要です。これが私のコードです、これは正しく見えますか?私はAndroidで作業しているので、javax.sound.sampledなどは利用できません。

0 投票する
3 に答える
5127 参照

iphone - リニア PCM からのオーディオ チャンネルの抽出

LPCM RAW ファイルからチャネル オーディオを抽出したいと思います。つまり、ステレオ LPCM ファイルの左右のチャネルを抽出します。LPCM は 16 ビット深度、インターリーブ、2 チャネル、リトルエンディアンです。私が収集したものから、バイトの順序は {LeftChannel,RightChannel,LeftChannel,RightChannel...} であり、16 ビット深度であるため、各チャンネルのサンプルは 2 バイトですよね?

私の質問は、左チャネルを抽出したい場合は、0,2,4,6...n*2 アドレスのバイトを取得しますか? 一方、右チャンネルは 1,3,4,...(n*2+1) になります。

また、オーディオ チャンネルを抽出した後、抽出したチャンネルのフォーマットを 16 ビット深度、1 チャンネルに設定する必要がありますか?

前もって感謝します

これは、AssetReader から PCM オーディオを抽出するために現在使用しているコードです。このコードは、チャネルを抽出せずに音楽ファイルを書き込むことで正常に動作するため、フォーマットまたは何かが原因である可能性があります...

audiofileservices を使用した出力形式は次のとおりです。

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

iphone - insz エラーによる AudioConverterConvertBuffer の問題

この関数 AudioConverterConvertBuffer に問題があります。基本的にはこの形式から変換したい

この形式に

私がやりたいことは、入力フォーマットに基づいてLPCMバッファからオーディオチャンネル(左チャンネルまたは右チャンネル)を抽出して、出力フォーマットでモノラルにすることです。変換するロジック コードは次のとおりです。

これは、PCM 出力ファイルのチャンネル マップを設定するためのものです。

これはwhileループでバッファを変換することです

しかし、insz の問題が存在するため、変換できません。ご意見をいただければ幸いです

前もって感謝します

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

java - AudioTrack ストリームからの通知メッセージ

AudioTrackオブジェクトに書き込む PCM デコーダーを実装しました。

AudioTrackすべてが素晴らしいように見えますが、最後に書き込まれたチャンクの再生が停止したときに、オブジェクトから何らかの通知を受け取る必要があります。

などのコールバック メソッドがあることに気付きましたがsetNotificationMarkerPosition,、それらの使用方法に関する詳細なドキュメントは見つかりませんでした。

前もって感謝します!

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

c++ - C ++でvoid *配列からfloat、int16、int32などのデータを効率的にアンパックする方法は?

PCM データの配列があります。16 ビット、24 ビット パック、32 ビットなどです。符号付きまたは符号なし、32 ビットまたは 64 ビット浮動小数点のいずれかです。現在、void**マトリックスとして格納されており、最初にチャネルごと、次にフレームごとにインデックスが付けられています。目標は、指定された構造に合わせてデータを操作する必要なく、ライブラリが任意の PCM 形式を取り込んでバッファリングできるようにすることです。A/D コンバーターがインターリーブされた PCM の 24 ビットにパックされた配列を出力した場合、それを適切に受け入れる必要があります。また、16 ビットの非インターリーブ、および上記の形式の順列もサポートする必要があります。

実行時のビット深度やその他の情報を把握しており、コードを複製せずに効率的にコーディングしようとしています。私が必要としているのは、行列をキャストし、PCM データを行列に入れ、後でそれを引き出す効果的な方法です。

行列をint32_t、またはint16_t32 ビットと 16 ビットの符号付き PCM にそれぞれキャストできます。おそらく、24 ビットの PCMint32_tを 32 ビット、8 ビットのバイト システムにも格納する必要があります。

データをこの配列に入れ、後で引き出す良い方法を誰かが推奨できますか? 次のような大きなコード セクションは避けたいと思います。

制限: 私は C/C++ で作業しており、テンプレートも RTTI も STL もありません。埋め込まれていると考えてください。これを 16 ビット バイトの DSP に移植しなければならない場合、事態はさらに複雑になります。

誰かが喜んで共有できる便利なマクロを持っていますか?

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

winapi - Windows 7 での PC スピーカーのシミュレーション?

最近、Windows API の Beep( ) 関数が、Windows 7 (および Visa x64?) でサウンド カードに再ルーティングされていることを知り、非常に驚​​きました。私は現在 2D ビデオ ゲーム エンジンに取り組んでおり、PC スピーカーを使用できるようにするのはクールな機能だと思いました。Windows 7 で PC スピーカーをプログラムで呼び出す方法はありますか? そうでない場合、サウンド カードを介した PC スピーカーのシミュレーションに役立つリソースはありますか? 私はDOSBOXが後でできることを知っています...助けていただければ幸いです。

---ダン

0 投票する
4 に答える
17189 参照

android - Android AudioRecordの質問?

私はAndroidAPIのAudioRecord機能をいじり回していて、それでいくつかの奇妙な振る舞いを見つけました。

背景情報:私の電話はHTCIncredibleです。エミュレーターでAndroid開発用のEclipseプラグインを使用しています。ターゲットプラットフォームまたはOSは2.2です...それは私の電話が使用しているものだからです。

いくつかのコード:

これは、AudioRecordAPIをセットアップするために使用するコードです。さて、エミュレーターの場合、それが機能するためにFREQUENCYを8000に設定するのが好きです。バッファサイズ640で戻ってきます。私が44100を使用している電話の場合、ここでの1つの問題は、ウェーブの結果のPCMデータが8ビットの符号付きウェーブのように見えることです。-127から128までの値を取得します。この値AudioFormat.ENCODING_PCM_16BITは別の値を生成すると思いました。

音声をスレッドで処理します。

を使用して、対応するウェーブをリアルタイムでグラフィカルに表示する方法がありSurfaceViewます。MICからのノイズが多いようです。このノイズは、エミュレーターと電話からも発生します。ある種のフィルターを介してデータを実行する必要がありますか?このデータを使用して、波をいじくり回すための楽しいFFTなどを計算したいと思います。しかし、私はどうにかしてノイズを減らす必要があります。

他の誰かもこれを経験していますか?誰かが解決策を持っていますか?

私はあなたの時間と応答に感謝します、ありがとう、dk

0 投票する
3 に答える
17323 参照

java - PCM Wave ファイル - ステレオからモノラルへ

ステレオのオーディオ ファイルがあります。モノラルに変換するのは、(ヘッダーの後) 1 つおきのバイトをスキップする場合だけですか? 16 ビット署名付き PCM 形式でエンコードされています。私はjavax.sound.sampled利用可能です。

動作しなかった私が試したコードは次のとおりです。

このコードは、.oggJorbis を使用してファイルを読み込んだ後、PCM データに変換するために使用されます。唯一の問題は、結果がステレオであり、モノラルにする必要があることです。別の解決策があれば、それを聞いてうれしいです!

0 投票する
3 に答える
3246 参照

pcm - PCM 16 ビット波からのノイズをフィルタリングするための最適なアルゴリズムは?

PCM 波から FFT を作成しました。ノイズを除去する最良の方法は何ですか?

お時間とご回答ありがとうございます、dk