現在、私はPythonでサウンドを生成することを実験していますが、波形を表す配列(44100 Hzのサンプルレート)をどのように取ることができるのか不思議です。それを再生する。私は純粋なPythonをここで探しています。ただ単に.wavフォーマット以上のものをサポートするライブラリに頼るのではなく、配列に格納された波形からサウンドを再生する
6
A
答えて
5
お客様はライブラリを使用してください。純粋なpythonでそれをすべて書くことは、オーディオハードウェアとインターフェースするために、何千ものコード行になる可能性があります。
ライブラリ(例: audiere、それはこのような単純なものになります。
import audiere
ds = audiere.open_device()
os = ds.open_array(input_array, 44100)
os.play()
、pygameのをpyglet、および多くの他にもあります。..
3
私はそれが作業のために多くの有用なツールをリストあなたが http://wiki.python.org/moin/PythonInMusic このリストを見てかもしれないと思います音。
3
与えられた音を再生するにはinput_array 16ビットサンプル。これはpyadio documentation page
import pyaudio
# instantiate PyAudio (1)
p = pyaudio.PyAudio()
# open stream (2), 2 is size in bytes of int16
stream = p.open(format=p.get_format_from_width(2),
channels=1,
rate=44100,
output=True)
# play stream (3), blocking call
stream.write(input_array)
# stop stream (4)
stream.stop_stream()
stream.close()
# close PyAudio (5)
p.terminate()
2
又はsounddeviceモジュールを使用し、実施例を変更しています。 pip install sounddevice
を使用してインストールしますが、最初にこれを必要とする:sudo apt-get install libportaudio2
基本的な絶対:もっと
import numpy as np
import sounddevice as sd
sd.play(myarray)
#may need to be normalised like in below example
#myarray must be a numpy array. If not, convert with np.array(myarray)
いくつかのオプション:
import numpy as np
import sounddevice as sd
#variables
samplfreq = 100 #the sampling frequency of your data (mine=100Hz, yours=44100)
factor = 10 #incr./decr frequency (speed up/slow down by a factor) (normal speed = 1)
#data
print('..interpolating data')
arr = myarray
#normalise the data to between -1 and 1. If your data wasn't/isn't normalised it will be very noisy when played here
sd.play(arr/np.max(np.abs(arr)), samplfreq*factor)
+0
Eclipse内でサウンドデバイスが動作しないことに注意してください。 –
関連する問題
- 1. サウンドとしての波形(フロート配列)の再生
- 2. Flash:アップロードされたサウンドのサウンド波形を生成/表示
- 3. 生成された波形データを使用して.NETでサウンドを再生
- 4. NSDataに格納されたビデオを再生する
- 5. Parseからローカル配列に配列を格納する
- 6. グループ化されたUITableViewを配列に格納する
- 7. 二重配列のサウンドを再生
- 8. 生成された波形をFlashでサウンドとして再生するにはどうすればよいですか?
- 9. orc形式でhdfsに格納されたファイルからハイブテーブルを作成する
- 10. 配列をデータテーブルに格納
- 11. sharedpreferencesに配列を格納
- 12. DWORDSの配列に格納された文字列を出力する
- 13. C#URLからサウンドを再生する
- 14. ビューコントローラがロードされたときにサウンドが再生される
- 15. Solrに配列を格納する
- 16. データベースに配列を格納する
- 17. derbyデータベースに配列を格納する
- 18. MIPS:整数データをファイルから配列に格納する
- 19. オブジェクトを配列に格納してからアクセスする
- 20. アンドロイドでさまざまな周波数のサウンドを再生する方法は?
- 21. バイト配列に格納されたイメージをWebViewにロードするには?
- 22. Google Maps InfoBoxを配列に格納されたポイントに使用する
- 23. 値が配列に格納されていませんか?
- 24. ABRecordRefの配列を格納
- 25. ファイルから読み込んで配列に格納するC++
- 26. データベースから選択して配列に格納する
- 27. jquery配列の格納されたチェックボックスが応答しない
- 28. postgres配列に格納されたQUERY行の値を取得する
- 29. 変数に格納されている連想配列のアクセスキー
- 30. Ember.jsバインディングモデルが配列内に格納されている
'audiere'は非常に古いプロジェクトであるように思われる...ラスト2006年にリリースされ、Pythonバインディングのreadmeは2002年であり、Python 2.2を参照しています... –
私はPython 2.7でそれを使っていますが、それでも問題なく動作しています。 audiereモジュールはhttp://pyaudiere.org/です。http://audiere.sourceforge.net/を見ている可能性があります。 pyaudiereはAudiere APIを使用します – wim
pyaudiereのWebサイトは存在しなくなりましたが、audiereは2006年以降更新されていません。これはもはや良い答えです。 – jozzas