成人在线亚洲_国产日韩视频一区二区三区_久久久国产精品_99国内精品久久久久久久

您的位置:首頁技術(shù)文章
文章詳情頁

python - 怎樣表達(dá)一段語音的強(qiáng)度(響度)?

瀏覽:114日期:2022-07-04 08:53:18

問題描述

我希望通過一段語音分析語音的強(qiáng)度(響度)。

因?yàn)槭枪た乒范抢砜乒罚覍?duì)于音頻信號(hào)分析是外行,只簡(jiǎn)單看了下FFT,所以對(duì)于自己分析語音強(qiáng)度的方法沒有安全感。希望這方面的高手能夠指導(dǎo)下。非常感謝?。?!

以下是我獲取語音信號(hào)數(shù)據(jù)的過程。123.wav語音文件來自于百度合成的mp3轉(zhuǎn)碼,所以這段語音就算存在噪音也應(yīng)該是微量的,這里不用再濾波了(就算濾波也不知道濾波器系數(shù)該用什么)。我猜想到此應(yīng)該是沒有問題的?

# -*- coding: utf-8 -*-import numpy as npimport pylab as plimport wavef = wave.open('/home/dyan/123.wav', 'rb')# 讀取格式信息# (nchannels, sampwidth, framerate, nframes, comptype, compname)params = f.getparams()nchannels, sampwidth, framerate, nframes = params[:4]# 讀取波形數(shù)據(jù)str_data = f.readframes(nframes)f.close()wave_data = np.fromstring(str_data, dtype=np.short)# 在時(shí)間軸上畫波形圖# 以上nchannels=1, sampwidth=2, framerate=16000lenth=len(wave_data)ti=lenth/16000.0t = np.arange(0, ti, ti/lenth)pl.plot(t,wave_data)pl.show()

波形圖(時(shí)間長(zhǎng)度大約1.8s)python - 怎樣表達(dá)一段語音的強(qiáng)度(響度)?我希望在播放這段語音的時(shí)候,通知語音的強(qiáng)度,但是顯然頻率太快了,并不要這么快,比如0.2s一次統(tǒng)計(jì)也許是比較合適的。我有2個(gè)想法,但是不確定,沒有安全感:

1、每0.2s求振幅絕對(duì)值平均值。2、每0.2s取振幅絕對(duì)值最大值。

不了解音頻信號(hào)處理,所以完全不知道這兩種方案中的一種能不能代表語音強(qiáng)度?;蛘邞?yīng)該用其他的方式。

綜上所述,2個(gè)問題:

1、這樣獲取波形數(shù)據(jù)wav_data是否正確?2、怎樣表達(dá)這段語音的強(qiáng)度(響度)?

問題解答

回答1:

聲音就是機(jī)械振動(dòng)波

它的強(qiáng)度就是振幅大小

高音和低音是 頻率

標(biāo)簽: Python 編程
相關(guān)文章: