AI人工智能 可視化音頻信號(hào) - 從文件讀取并進(jìn)行處理

2020-09-24 11:00 更新

這是構(gòu)建語音識(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è)問題,機(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ù),如圖所示 -

img

Signal shape: (132300,)
Signal Datatype: int16
Signal duration: 3.0 seconds
以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)