我需要您的帮助,因为目前我使用的是“ pyttsx3”中的“ engine.say()”,因此我的程序与我“对话”。那已经可以了,但是现在我想要一个声音可视化器,我该怎么做?
import pyttsx3
engine = pyttsx3.init()
engine.say("Hello World")
engine.runAndWait()
import pyaudio
import struct
import matplotlib.pyplot as plt
import numpy as np
mic = pyaudio.PyAudio()
FORMAT = pyaudio.paInt16
CHANNELS = 1
RATE = 5000
CHUNK = 3000#int(RATE/20)
stream = mic.open(format=FORMAT, channels=CHANNELS, rate=RATE, input=True, output=True, frames_per_buffer=CHUNK)
fig, ax = plt.subplots(figsize=(14,6))
x = np.arange(0, 2 * CHUNK, 2)
ax.set_ylim(-500, 500)
ax.set_xlim(0, CHUNK)
line, = ax.plot(x, np.random.rand(CHUNK))
while True:
data = stream.read(CHUNK)
data = np.frombuffer(data, np.int16)
line.set_ydata(data)
fig.canvas.draw()
fig.canvas.flush_events()
plt.pause(0.01)
这已经可视化了我的麦克风音频,但是如何使声音成为源呢? 希望你能帮助我,非常感谢!
答案 0 :(得分:1)
我认为您需要的是-Realtime_PyAudio_FFT
这样做的好处之一就是
启动stream_reader,使用PyAudio(声卡,麦克风等)从任何来源提取实时音频数据
由于您将使用pyttsx3
播放音频,因此它可以从声卡中提取音频并显示实时可视化图像。对于您的情况,这是一个更好的选择,而不是通过麦克风将其提取。
此外,如果音频是由同一线程执行的,则可能需要启用线程处理或多处理功能以可视化音频。这是一个很好的指南-threading or multiprocessing