2016-08-14 6 views
-1

私は.rawファイルを記録していますが、これはJavaクラスAudioOutputStream(私はバイトを書きました)の書き込みメソッドによって書き込まれました。Pythonで生のオーディオファイルを読み込んでフィルタリングする方法は?

このオーディオファイルをPythonフィルタでフィルタリングしたいとします。 Hereそれは私が使用しているガイドです、それは浮動小数点数(ガイドの変数x)のリストをフィルタリングします。

私の問題はさまざまなタイプ、バイト、浮動小数点数です。このフィルタは、.rawオーディオで動作させる方法はありますか?

私は何か提案を感謝します。ありがとう。

答えて

0

2つの便利なJavaクラスが見つかりました:DataInputStreamDataOutputStream私のPythonスクリプトを使用するためのフロートを書きます。

最初にfloatとして4バイトを読み取るreadFloatメソッドを使用して.rawファイルからfloat値を読み取りました。

FileInputStream is = new FileInputStream(inputName); 
DataInputStream dis = new DataInputStream(is); 

ArrayList<Float> fbuffer = new ArrayList<Float>(); 

try { 
    while(dis.available()>0){ 
     float f = dis.readFloat(); //read 4 bytes as float 
     // this fails if it is not 4x 
     fbuffer.add(f); 
    } 
} catch (IOException e) { 
    //nothing happens, there are 1,2 or 3 bytes at the end we are going to ignore 
    //e.printStackTrace(); 
} 
dis.close(); 
is.close(); 

このようにして、float値を持つファイルを作成します。このファイルはpythonスクリプトによって読み込まれます。ここで私は、私は、浮動小数点数のリストを取得hereのようにフィルタを実行し、山車の新しいリストを取得

fin = open('fileWithFloatsName') 
floatList = [line.rstrip('\n') for line in fin] 
floatList = destringifyList(floatList) 
fin.close() 

を使用しています。この結果をJavaがScannerオブジェクトで読み取る新しいファイルに書きます。

最後に、新しい.rawファイルを作成し、floatをwriteFloatメソッドでバイトとして書き込みます。

それだけです。誰かが何か良いことを示唆すれば(部分的にもそうでなくても)、私はそれを感謝します。

関連する問題