W3Cschool
恭喜您成為首批注冊(cè)用戶
獲得88經(jīng)驗(yàn)值獎(jiǎng)勵(lì)
這是構(gòu)建語(yǔ)音識(shí)別系統(tǒng)的第一步,因?yàn)樗梢詭椭斫庖纛l信號(hào)的結(jié)構(gòu)。 處理音頻信號(hào)可遵循的一些常見步驟如下所示 -
記錄 當(dāng)必須從文件中讀取音頻信號(hào)時(shí),首先使用麥克風(fēng)錄制。
采樣 用麥克風(fēng)錄音時(shí),信號(hào)以數(shù)字形式存儲(chǔ)。 但為了解決這個(gè)問(wèn)題,機(jī)器需要使用離散數(shù)字形式。 因此,我們應(yīng)該以某個(gè)頻率進(jìn)行采樣,并將信號(hào)轉(zhuǎn)換為離散數(shù)字形式。 選擇高頻采樣意味著當(dāng)人類聽到信號(hào)時(shí),他們會(huì)感覺它是一個(gè)連續(xù)的音頻信號(hào)。
示例
以下示例顯示了使用 Python 存儲(chǔ)在文件中的逐步分析音頻信號(hào)的方法。 這個(gè)音頻信號(hào)的頻率是 44,100HZ。
下面導(dǎo)入必要的軟件包 -
import numpy as np
import matplotlib.pyplot as plt
from scipy.io import wavfile
現(xiàn)在,讀取存儲(chǔ)的音頻文件。 它會(huì)返回兩個(gè)值:采樣頻率和音頻信號(hào)。 提供存儲(chǔ)音頻文件的路徑,如下所示 -
frequency_sampling, audio_signal = wavfile.read("/Users/admin/audio_file.wav")
使用顯示的命令顯示音頻信號(hào)的采樣頻率,信號(hào)的數(shù)據(jù)類型及其持續(xù)時(shí)間等參數(shù) -
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')
這一步涉及如下所示對(duì)信號(hào)進(jìn)行標(biāo)準(zhǔn)化 -
audio_signal = audio_signal / np.power(2, 15)
在這一步中,從這個(gè)信號(hào)中提取出前 100 個(gè)值進(jìn)行可視化。 為此目的使用以下命令 -
audio_signal = audio_signal [:100]
time_axis = 1000 * np.arange(0, len(signal), 1) / float(frequency_sampling)
現(xiàn)在,使用下面給出的命令可視化信號(hào) -
plt.plot(time_axis, signal, color='blue')
plt.xlabel('Time (milliseconds)')
plt.ylabel('Amplitude')
plt.title('Input audio signal')
plt.show()
下面輸出圖形是上述音頻信號(hào)提取的數(shù)據(jù),如圖所示 -
Signal shape: (132300,)
Signal Datatype: int16
Signal duration: 3.0 seconds
Copyright©2021 w3cschool編程獅|閩ICP備15016281號(hào)-3|閩公網(wǎng)安備35020302033924號(hào)
違法和不良信息舉報(bào)電話:173-0602-2364|舉報(bào)郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號(hào)
聯(lián)系方式:
更多建議: