![](/img/trans.png)
[英]How can I estimate the pitch of audio that I am currently recording in python?
[英]How can I get Frequency, pitch, lowdness, etc of audio in python vlc?
似乎真的沒有任何函數來獲取這些值
import vlc
p = vlc.MediaPlayer(path/to/file.mp3)
p.play()
這里我需要獲取聲音的頻率、音高和其他屬性。 我不確定這是否可以使用 vlc-python,任何其他解決方案也會有所幫助
我認為您可能需要一個額外的庫來實現您想要的。 這是關於如何使用 Python 構建音頻頻譜分析儀的視頻教程: https : //youtu.be/AShHJdSIxkY
這是來自該視頻評論者的最終 --python2-- 代碼(感謝用戶 Hey Jose!)
#! /usr/bin/python
import pyaudio
import struct
import numpy as np
import matplotlib.pyplot as plt
import time
#%matplotlib tk
CHUNK = 4000
FORMAT = pyaudio.paInt16
CHANNELS = 1
RATE = 16000
p = pyaudio.PyAudio()
chosen_device_index = -1
for x in xrange(0,p.get_device_count()):
info = p.get_device_info_by_index(x)
#print p.get_device_info_by_index(x)
if info["name"] == "pulse":
chosen_device_index = info["index"]
print "Chosen index: ", chosen_device_index
stream = p.open(format=FORMAT,
channels=CHANNELS,
rate=RATE,
input_device_index=chosen_device_index,
input=True,
output=True,
frames_per_buffer=CHUNK
)
plt.ion()
fig, ax = plt.subplots()
x = np.arange(0, CHUNK)
data = stream.read(CHUNK)
data_int16 = struct.unpack(str(CHUNK) + 'h', data)
line, = ax.plot(x, data_int16)
#ax.set_xlim([xmin,xmax])
ax.set_ylim([-2**15,(2**15)-1])
while True:
data = struct.unpack(str(CHUNK) + 'h', stream.read(CHUNK))
line.set_ydata(data)
fig.canvas.draw()
fig.canvas.flush_events()
本教程使用 PyAudio ( https://people.csail.mit.edu/hubert/pyaudio/docs/ )
我還沒有完成教程,但閱讀示例代碼,他們似乎采取了分塊讀取音頻流並將字節映射到繪圖的 y 軸的方法。
如果這不適合您的應用程序,您可以查看
這個問題的答案暗示了這個圖書館: http : //digitalmusics.dartmouth.edu/~mcasey/bregman/
使用AudioEqualizer
獲取頻率信息https://www.olivieraubert.net/vlc/python-ctypes/doc/vlc.AudioEqualizer-class.html
音軌將包含頻道和速率信息https://www.videolan.org/developers/vlc-branch/doc/doxygen/html/structlibvlc__audio__track__t.html
而libvlc_media_stats_t
結構也有更多信息https://www.videolan.org/developers/vlc-branch/doc/doxygen/html/structlibvlc__media__stats__t.html像
int i_read_bytes
float f_input_bitrate
int i_demux_read_bytes
float f_demux_bitrate
int i_demux_corrupted
int i_demux_discontinuity
int i_decoded_video
int i_decoded_audio
int i_displayed_pictures
int i_lost_pictures
int i_played_abuffers
int i_lost_abuffers
int i_sent_packets
int i_sent_bytes
float f_send_bitrate
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.