2014-11-05 111 views
0

我想知道是否有方法來設置音頻音調。一定的基調會成爲基調。我想知道如何讓球場上升或下降。謝謝。在python中合成音頻音調

另外,您如何播放音頻音調。同樣,如果你知道任何這樣做的模塊,我想知道他們謝謝。

我的目標是創建一個盲人可以玩的乒乓球遊戲。球越高,球場越高。球越低,球場越低。最好是蟒蛇。在此先感謝

回答

1

如果你想嘗試pyaudio庫,那麼你可以使用這個功能我前幾天創建的一段代碼!

import pyaudio 
import struct 
import math 

SHRT_MAX=32767 # short uses 16 bits in complement 2 

def my_sin(t,frequency): 
    radians = t * frequency * 2.0 * math.pi 
    pulse = math.sin(radians) 
    return pulse 

#pulse_function creates numbers in [-1,1] interval 
def generate(duration = 5,pulse_function = (lambda t: my_sin(t,1000))): 
    sample_width=2 
    sample_rate = 44100 
    sample_duration = 1.0/sample_rate 
    total_samples = int(sample_rate * duration) 
    p = pyaudio.PyAudio() 
    pformat = p.get_format_from_width(sample_width) 
    stream = p.open(format=pformat,channels=1,rate=sample_rate,output=True) 
    for n in range(total_samples): 
     t = n*sample_duration 
     pulse = int(SHRT_MAX*pulse_function(t)) 
     data=struct.pack("h",pulse) 
     stream.write(data) 

#example of a function I took from wikipedia. 
major_chord = f = lambda t: (my_sin(t,440)+my_sin(t,550)+my_sin(t,660))/3 

#choose any frequency you want 
#choose amplitude from 0 to 1 
def create_pulse_function(frequency=1000,amplitude=1): 
    return lambda t: amplitude * my_sin(t,frequency) 

if __name__=="__main__": 
    # play fundamental sound at 1000Hz for 5 seconds at maximum intensity 
    f = create_pulse_function(1000,1) 
    generate(pulse_function=f) 
    # play fundamental sound at 500Hz for 5 seconds at maximum intensity 
    f = create_pulse_function(500,1) 
    generate(pulse_function=f) 
    # play fundamental sound at 500Hz for 5 seconds at 50% intensity 
    f = create_pulse_function(500,0.5) 
    generate(pulse_function=f) 
+0

哪條線改變音調/音調?感謝這個代碼 – 2014-11-05 22:53:15

+0

你需要向谷歌學習哪些音調/音調是常見的,並從那裏開始。你只能改變聲音強度和頻率。如果我是你,我會玩價值。我編輯了代碼示例 – 2014-11-05 23:03:15

+0

感謝您接受!我這是你第一次做乒乓球比賽? – 2014-11-05 23:13:36