正在开发音调生成器程序。'duration'变量(以秒为单位)无法正确确定提示音播放的时间



这就是我所拥有的。持续变量设置为4秒钟,但是当代码运行时,仅播放约1.5秒。我有点撞墙。任何帮助将不胜感激。

import pyaudio
import numpy as np
p = pyaudio.PyAudio()
volume = 0.5     # range [0.0, 1.0]
fs = 44100       # sampling rate, Hz, must be integer
duration = 4.0   # in seconds, may be float
f = 440.0        # sine frequency, Hz, may be float
# generate samples, note conversion to float32 array
samples = (np.sin(2*np.pi*np.arange(fs*duration)*f/fs)).astype(np.float32)
# for paFloat32 sample values must be in range [-1.0, 1.0]
stream = p.open(format=pyaudio.paFloat32,
                channels=1,
                rate=fs,
                output=True)
# play. May repeat with different volume values (if done interactively) 
stream.write(volume*samples)
stream.stop_stream()
stream.close()
p.terminate()

stream.write的数组大小检测似乎有些故障。我猜它除了不应该的格式大小而划分。

呼叫stream.write(volume*samples, len(samples))对我有用。

最新更新