python - 在Python中获得图频语音时如何识别语音?
问题描述
我有一个项目可以识别 person 的声音。在那个项目中,我得到了频率语音图,但现在我不知道在我得到频率图语音后该怎么做才能识别语音。这是我的代码。
import numpy as np
import matplotlib.pyplot as plt
from scipy.io import wavfile
from python_speech_features import mfcc, logfbank
frequency_sampling, audio_signal = wavfile.read("cello.wav")
print('\nSignal shape:', audio_signal.shape)
print('Signal Datatype:', audio_signal.dtype)
print('Signal duration:', round(audio_signal.shape[0] /
float(frequency_sampling), 2), 'seconds')
audio_signal = audio_signal / np.power(2, 15)
length_signal = len(audio_signal)
half_length = np.ceil((length_signal + 1) / 2.0).astype(int)
signal_frequency = np.fft.fft(audio_signal)
signal_frequency = abs(signal_frequency[0:half_length]) / length_signal
signal_frequency **= 2
len_fts = len(signal_frequency)
if length_signal % 2:
signal_frequency[1:len_fts] *= 2
else:
signal_frequency[1:len_fts-1] *= 2
# signal_power = 10 * np.log10(signal_frequency)
signal_power = 10 * np.log10(signal_frequency)
x_axis = np.arange(0, half_length, 1) * (frequency_sampling / length_signal) / 1000.0
plt.figure()
plt.plot(x_axis, signal_power, color='black')
plt.xlabel('Frequency (kHz)')
plt.ylabel('Signal power (dB)')
# plt.show()
frequency_sampling, audio_signal = wavfile.read("111.wav")
audio_signal = audio_signal[:15000]
features_mfcc = mfcc(audio_signal, frequency_sampling)
print('\nMFCC:\nNumber of windows =', features_mfcc.shape[0])
print('Length of each feature =', features_mfcc.shape[1])
features_mfcc = features_mfcc.T
plt.matshow(features_mfcc)
plt.title('MFCC')
filterbank_features = logfbank(audio_signal, frequency_sampling)
print('\nFilter bank:\nNumber of windows =', filterbank_features.shape[0])
print('Length of each feature =', filterbank_features.shape[1])
filterbank_features = filterbank_features.T
plt.matshow(filterbank_features)
plt.title('Filter bank')
# features_mfcc1 = features_mfcc.T
# plt.matshow(features_mfcc1)
# plt.title('MFCC')
# filterbank_features = logfbank(audio_signal, frequency_sampling)
#
plt.show()
和图2的声音。
现在!当我运行图 1 的声音时,我必须做什么才能识别人图 1。任何人都可以帮助我!
解决方案
推荐阅读
- c# - 用于捕获可选命名组的正则表达式
- sql - 连续值之和
- c# - 在核心控制台应用程序中查找 ServiceUrl 以使用机器人连接器组件连接到机器人时出现问题
- firebase - 在 Firebase 函数 URL 上托管的 Nuxt 应用程序在查询前以“/”结尾
- java - 编辑 System.in 和 System.out 的使用方法
- javascript - 每次单击角度按钮时,如何关闭已经打开的窗口然后打开一个新窗口?
- maven - 如何在主 pom 文件中导入或使用 Maven pom 片段或宏?
- android - 像向右滑动一样实现 Instagram 以查看相机
- java - 使用 XML 标记在 Saxonica 中检索 XPath 结果
- python - 相当于 sns.distplot(data, fit=scipy.stats.norm) 与 plotly