2017-04-25 12 views
0

私の質問はこの投稿に尋ねられた質問に似ています:How to change continuously the frequency of a sinusoidal sound? しかし、解決策は少し混乱することがわかりました。私は、トーンが連続的になるように複数のトーン(異なる周波数にある)を連結したい。私は全体の位相シフトの事を把握しようとしていますが、私はちょうど失われています。私は現在、ここからコードを使用しています:http://milkandtang.com/blog/2013/02/16/making-noise-in-python/トーンを生成します。 ありがとうございました!任意の洞察力が評価されますpyaudioで周波数を変更している間の連続音

答えて

0

あなたはpyaudioで作業していますが、別のライブラリを開いている場合は、pydubを使用すると簡単に解決できます。

あなたの質問は2倍です。

  • 音声トーンを生成するにはどうすればよいですか?
  • 複数のトーンを連結するにはどうすればよいですか?

pydubは、オーディオファイルを操作するための簡単で高レベルなインターフェースを提供します。もし、pydubは1K、2Kの正弦波を生成するために、試料の例で以下使われている正弦波発生器を提供し、したがって、最初の部分のため
pip install pydub

を使用してあなたがpydubインストールすることができ、より詳細/例here

を見つけることができ3秒間の3k。

これらをaudio_segmentsに変換します。その後、各セグメントを他のセグメントに簡単に追加するだけで連結します。

crossfadeは、マージポイントでのクラック音を防ぐために2.5秒間隔で使用されます。私はリアルタイムで音を生成しようとしている場合

from pydub import AudioSegment 
from pydub.generators import Sine 
from pydub.playback import play 


#Generate 1k,2k,3k tones of 3 sec duration 
tone1 = Sine(1000).to_audio_segment(duration=3000) 
tone2 = Sine(2000).to_audio_segment(duration=3000) 
tone3 = Sine(3000).to_audio_segment(duration=3000) 

#Append each tone onto other with crossfade 
multitone = tone1.append(tone2, crossfade=2500).append(tone3, crossfade=2500) 


# Play final tone 
play(multitone) 
+0

仕事をpydubになります。ここでは

は、コードが動作していますか?私は手の位置を追跡するためにキネクトを使用しています。その位置に応じて、サウンドの周波数を変更したいと思います。ありがとうございました! –

+0

'pydub'は既存のaudiframesで動作します。録音するには、パイオニアのデータをフレームに変換することができます。しかし、あなたのアプリケーションから判断すると、事前に、または即座に 'pydub'を使ってオーディオトーンの所定のセットを生成し、kinect座標にミックスして一致させることができます。 –

関連する問題