現在、私は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. 配列に格納されたアドレス
- 5. NSDataに格納されたビデオを再生する
- 6. 描画された矩形を配列に格納する方法は?
- 7. 二重配列のサウンドを再生
- 8. オブジェクトから別の配列に置換された値を格納する
- 9. Parseからローカル配列に配列を格納する
- 10. グループ化されたUITableViewを配列に格納する
- 11. 配列に格納された値を出力する方法
- 12. 配列に格納されたリストを取得する
- 13. オブジェクトに格納されたコールバックからの配列を呼び出す
- 14. 生成された波形をFlashでサウンドとして再生するにはどうすればよいですか?
- 15. 配列に格納された値によるSQLグループ
- 16. 削除配列は、SQL Serverの列に格納された
- 17. C#URLからサウンドを再生する
- 18. 配列に格納されたテキストボックスに値を書き込む
- 19. orc形式でhdfsに格納されたファイルからハイブテーブルを作成する
- 20. プロパティファイルに格納された配列をJSP変数に配置する方法
- 21. C++配列に間違った値が格納される
- 22. C#WPFプロジェクトにインポートされたサウンドを再生するには?
- 23. ビューコントローラがロードされたときにサウンドが再生される
- 24. サウンドが約30回再生されてから停止する
- 25. アンドロイドでさまざまな周波数のサウンドを再生する方法は?
- 26. 文字列に格納されたJson値をクラス値に割り当ててからSQLに格納する
- 27. PSQL Railsに格納された配列にアクセス
- 28. sharedpreferencesに配列を格納
- 29. 配列をデータテーブルに格納
- 30. php配列をjavascript配列に格納
'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