我想录制16000Hz的音频,并得到它的频谱图。我的模型接受[null.1998.101]的输入。我无法用javascript实现它
const mic = await tf.data.microphone({
fftSize: 256,
columnTruncateLength: 101,
numFramesPerSpectrogram: 1998 ,
sampleRateHz:16000,
includeSpectrogram: true,
includeWaveform: true
});
const audioData = await mic.capture();
console.log(audioData)
const spectrogramTensor = audioData.spectrogram;
console.log(spectrogramTensor)
spectrogramTensor.print();
const waveformTensor = audioData.waveform;
waveformTensor.print();
mic.stop();
我的模型是触发字检测。 在Python中,我使用了以下代码
def graph_spectrogram(wav_file):
rate, data = get_wav_info(wav_file)
print(data)
print(len(data))
nfft = 200 # Length of each window segment
fs = 8000 # Sampling frequencies
noverlap = 120 # Overlap between windows
nchannels = data.ndim
if nchannels == 1:
pxx, freqs, bins, im = plt.specgram(data, nfft, fs, noverlap = noverlap)
elif nchannels == 2:
pxx, freqs, bins, im = plt.specgram(data[:,0], nfft, fs, noverlap = noverlap)
return pxx
浏览器具有音频录制采样率的默认值和固定值。下面将输出浏览器的
frequency
速率引发错误的原因是
16000
与浏览器采样率不匹配。当前无法从浏览器更改音频录制的采样率。 可以做的是/etc/pulse/daemon.conf
文件中设置录制频率相关问题 更多 >
编程相关推荐