Python获取语音转文本语音音频数据

时间:2020-10-30 19:46:08

标签: python python-3.x audio

我需要您的帮助,因为目前我使用的是“ pyttsx3”中的“ engine.say()”,因此我的程序与我“对话”。那已经可以了,但是现在我想要一个声音可视化器,我该怎么做?

示例

import pyttsx3

engine = pyttsx3.init()

engine.say("Hello World")
engine.runAndWait()

我想要something like this

我有什么

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)

这已经可视化了我的麦克风音频,但是如何使声音成为源呢? 希望你能帮助我,非常感谢!

1 个答案:

答案 0 :(得分:1)

我认为您需要的是-Realtime_PyAudio_FFT

这样做的好处之一就是

启动stream_reader,使用PyAudio(声卡,麦克风等)从任何来源提取实时音频数据

由于您将使用pyttsx3播放音频,因此它可以从声卡中提取音频并显示实时可视化图像。对于您的情况,这是一个更好的选择,而不是通过麦克风将其提取。

此外,如果音频是由同一线程执行的,则可能需要启用线程处理或多处理功能以可视化音频。这是一个很好的指南-threading or multiprocessing