我正在尝试播放一首歌,在它播放时为它制作一个音频可视化工具,我希望可视化工具基于输出信号,以便它更模块化和更容易同步,但我不知道如何在不制作特殊硬件的情况下访问我的计算机的音频输出。我怎么做,只要编程。在
我一直在研究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')
这里有三个想法:
请注意,如果您的想法是在某个播放器中播放音乐,并让Python以某种方式捕捉流,这将是相当具有挑战性的。为了达到良好的目的,过程和流被隔离。访问不属于您的内存空间很容易导致分段错误。在
相关问题 更多 >
编程相关推荐