我有一个可以将WAV音频帧生成列表的功能。有什么方法可以播放列表中的音频而无需使用中间文件来生成AudioSegment
对象?
编辑:供参考,this是我的代码。
答案 0 :(得分:0)
答案 1 :(得分:0)
我建议像这样直接实例化AudioSegment()
对象:
from pydub import AudioSegment
sound = AudioSegment(
# raw audio data (bytes)
data=b'…',
# 2 byte (16 bit) samples
sample_width=2,
# 44.1 kHz frame rate
frame_rate=44100,
# stereo
channels=2
)
附录:我看到您在链接的代码片段中正在生成声音。您可能对pydub's audio generators
感兴趣from pydub.generators import Sine
from pydub import AudioSegment
sine_generator = Sine(300)
# 0.1 sec silence
silence = AudioSegment.silent(duration=100)
dot = sine_generator.to_audio_segment(duration=150)
dash = sine_generator.to_audio_segment(duration=300)
signal = [dot, dot, dot, dash, dash, dash, dot, dot, dot]
output = AudioSegment.empty()
for piece in signal:
output += piece + silence
和最后一条注释:像这样反复扩展AudioSegment
可能会变慢。您可能想要做类似this Mixer example