9

PCMWAVファイルの一部をサンプルレベルまで正確に抽出することに興味があります。ほとんどのオーディオモジュールは、プラットフォーム固有のオーディオライブラリに依存しているようです。このクロスプラットフォームを作りたいのですが、速度は問題ではありません。これを実行できるネイティブのPythonオーディオモジュールはありますか?

そうでない場合は、PCMバイナリを解釈する必要があります。PCM仕様をかなり簡単に掘り下げることができ、raw形式は簡単に歩けると確信していますが、Pythonでバイナリデータを実際に扱ったことはありません。これを行う方法を説明する良いリソースはありますか?特にオーディオに関連するのはアイシングです。

4

5 に答える 5

7

私は質問と回答を読みましたが、次の2つのモジュールについて誰も言及していなかったため、完全に明白な何かが欠けているに違いないと感じています。

  • audioop:生のオーディオデータを操作する
  • wave:WAVファイルの読み取りと書き込み

おそらく私はパラレルユニバースから来ており、Guidoのタイムマシンは実際には時空マシンです:)

サンプルコードが必要な場合は、お気軽にお問い合わせください。

PSサンプリングレートを48kHzとすると、24 / 1.001 == 23.976023976…fpsのビデオフレームの長さは2002オーディオサンプルで、25fpsのビデオフレームの長さは1920オーディオサンプルです。

于 2009-05-08T19:15:37.147 に答える
5

私はC++とJavaでPCMリーダーを書いただけですが、フォーマット自体はかなり単純です。まともな説明はここで見つけることができます:http://ccrma.stanford.edu/courses/422/projects/WaveFormat/

それを過ぎると、それを読み込んで(バイナリファイルの読み取り、 http://www.johnny-lin.com/cdat_tips/tips_fileio/bin_array.html)、結果の配列を処理できるはずです。アラインメントを正しくするためにビットシフトを使用する必要があるかもしれませんが(https://docs.python.org/reference/expressions.html#shifting-operations)、それをどのように読み取るかによっては、そうする必要がない場合があります。

そうは言っても、私はまだデビッドのアプローチに傾倒しているでしょう。

于 2009-05-08T18:28:15.123 に答える
1

ソリューションが純粋なPythonであることが本当に重要ですか、それともさまざまなプラットフォームでネイティブオーディオライブラリと連携できるものを受け入れますか(したがって、効果的にクロスプラットフォームになります)?後者の例はhttp://wiki.python.org/moin/PythonInMusicにいくつかあります。

于 2009-05-08T18:11:09.517 に答える
1

open(...、 "rb")、struct module、およびwav / riffファイル形式に関するいくつかの詳細(おそらくそこにあるより良い参照)の組み合わせがその仕事をするようです。

不思議なことに、生のサンプルデータで何をするつもりですか?

于 2009-05-08T18:20:07.873 に答える
0

私はこれを調べていて、これを見つけました:http : //www.swharden.com/blog/2009-06-19-reading-pcm-audio-with-python/ Numpy(およびグラフ化する場合はmatplotlib)が必要です)。

import numpy
data = numpy.memmap("test.pcm", dtype='h', mode='r')
print "VALUES:",data

詳細については、元の作者のサイトを確認してください。

于 2015-07-28T18:46:59.543 に答える