gpt4 book ai didi

python - 如何访问音频输出以在 python 3 中进行分析

转载 作者:太空宇宙 更新时间:2023-11-03 11:39:35 28 4
gpt4 key购买 nike

我正在尝试播放一首歌,在播放时为它制作一个音频可视化工具,我希望可视化工具基于输出信号,以便它更加模块化并且更容易同步,但我不知道如何无需制作特殊硬件即可访问我计算机的音频输出。我如何通过编程来做到这一点。

我一直在研究 pyaudio,这是我到目前为止的代码。我认为它正在访问输入和输出信号,但我不知道如何删除前者。我所有的尝试都使程序崩溃了。

最后,这段代码主要来自这篇关于该主题的精彩文章: https://www.swharden.com/wp/2016-07-19-realtime-audio-visualization-in-python/

import pyaudio
import numpy as np
maxValue = 2**16
bars = 35
p=pyaudio.PyAudio()
stream=p.open(format=pyaudio.paInt16,channels=2,rate=44100,
input=True, output=True, frames_per_buffer=256
)
while True:
data = np.fromstring(stream.read(1024),dtype=np.int16)*100
#print(type(data))
dataL = data[0::2]
dataR = data[1::2]
#print(dataR.shape)
peakL = np.abs(np.max(dataL)-np.min(dataL))/maxValue
peakR = np.abs(np.max(dataR)-np.min(dataR))/maxValue
lString = "#"*int(peakL*bars)+"-"*int(bars-peakL*bars)
rString = "#"*int(peakR*bars)+"-"*int(bars-peakR*bars)
#print(dataL)
print("L=[%s]\tR=[%s]"%(lString, rString))
#if lString != rString:
# print('here')

最佳答案

这里有三个想法:

  1. 将您的输出路由到 JACK ,在 pyaudio 中处理(使用 pyjack ),然后输出到扬声器。
  2. 使用麦克风,这正是文章中所做的。
  3. 如果可以在与可视化相同的应用程序中播放音乐,那么您就有很多选择。我可能会检查例如PyGame ,因为它提供了实时播放音乐和制作视觉效果所需的一切。否则,可以在 Python In Music 中找到很多资源.

请注意,如果您的想法是在某些播放器中播放音乐并让 Python 以某种方式捕获流,那将是相当具有挑战性的。为了一个好的目的,进程和流被隔离。访问不属于自己的内存空间很容易导致段错误。

关于python - 如何访问音频输出以在 python 3 中进行分析,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52310631/

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