语音识别
Posted hichens
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了语音识别相关的知识,希望对你有一定的参考价值。
可视化音频信号 - 从文件读取并进行处理 import numpy as np import matplotlib.pyplot as plt from scipy.io import wavfile frequency_sampling, audio_signal = wavfile.read("C:\\Users\\Administrator\\Desktop\\test.wav") #标准化 audio_signal = audio_signal / np.power(2, 15) audio_signal = audio_signal[21000:22000] time_axis = 1000 * np.arange(0, len(audio_signal), 1) / float(frequency_sampling) plt.plot(time_axis, audio_signal, color=‘blue‘) plt.xlabel(‘Time (milliseconds)‘) plt.ylabel(‘Amplitude‘) plt.title(‘Input audio signal‘) plt.show() 表征音频信号:转换到频域 import numpy as np import matplotlib.pyplot as plt from scipy.io import wavfile #读取音频文件, 返回采样频率和音频信号 frequency_sampling, audio_signal = wavfile.read(‘C:\\Users\\Administrator\\Desktop\\test.wav‘) audio_signal = audio_signal / np.power(2, 15)#标准化 length_signal = len(audio_signal)#信号长度 half_length = np.ceil((length_signal+1)/2).astype(np.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)#以分贝(dB)为单位提取功率 x_axis = np.arange(0, len_fts, 1) * (frequency_sampling/length_signal)/1000#X轴以kHz为单位 #特征可视化 plt.plot(x_axis, signal_power, color=‘blue‘) plt.xlabel(‘Frequency (kHz)‘) plt.ylabel(‘Signal power (dB)‘) plt.title(‘Characterize audio signals: convert to frequency domain‘) plt.show()
以上是关于语音识别的主要内容,如果未能解决你的问题,请参考以下文章
Unity语音识别(百度AI长语句语音识别&Unity原生短语语音识别)