gpt4 book ai didi

python - pyaudio有效,但输出播放的时间少于实际时间

转载 作者:行者123 更新时间:2023-12-03 01:20:50 27 4
gpt4 key购买 nike

我是python编程的新手。
我正在处理一个使用pyaudio播放简单音调的脚本。以下脚本应该播放500 Hz的简单1秒音调。我确实听到了一些声音,但是我听不到的声音与在MATLAB中的声音相同(效果很好),更重要的是,它没有播放1秒钟,而是大约200毫秒。

import numpy as np
import pyaudio

fs = 44100
T = 1
N = T*fs
t = np.array(range(N))/fs
f = 500
sig = 0.5*np.sin(2*np.pi*f*t)

p = pyaudio.PyAudio()
stream= p.open(format=pyaudio.paFloat32,
channels=1,
rate=fs,
output=True)

stream.write(sig)

stream.stop_stream()
stream.close()
p.terminate()

我还尝试过在流写入和停止流之间引入暂停。没用
知道问题出在哪里吗?

最佳答案

以下代码应该可以满足您的要求。

import pyaudio
from math import pi
import numpy as np

p = pyaudio.PyAudio()
stream = p.open(format=pyaudio.paFloat32, channels=1, rate=44100, output=1,)


def make_wave(frequency, length, sample_rate=44100):
length = int(length * sample_rate)
factor = float(frequency) * (pi * 2) / sample_rate
waveform = np.sin(np.arange(length) * factor)

return waveform


wave = make_wave(500, 1)

stream.write(wave.astype(np.float32).tostring())
stream.stop_stream()
stream.close()
p.terminate()

关于python - pyaudio有效,但输出播放的时间少于实际时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61216439/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com