Я хочу записать звук на частоте 16000 Гц и получить его спектрограмму. Моя модель принимает данные [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