亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > Python > 正文

譜減法語音降噪的Python實現

2019-11-06 08:09:45
字體:
來源:轉載
供稿:網友

譜減法語音降噪的Python實現

本文是參考 [投稿]譜減法語音降噪原理 Matlab版本的代碼,采用Python實現的。具體的降噪原理請參閱上文。

下面是譜減法語音降噪的Python實現

文件speech_enhanced.py

#!/usr/bin/env pythonimport numpy as npimport waveimport nextpow2import math# 打開WAV文檔f = wave.open("filename.wav")# 讀取格式信息# (nchannels, sampwidth, framerate, nframes, comptype, compname)params = f.getparams()nchannels, sampwidth, framerate, nframes = params[:4]fs = framerate# 讀取波形數據str_data = f.readframes(nframes)f.close()# 將波形數據轉換為數組x = np.fromstring(str_data, dtype=np.short)# 計算參數len_ = 20 * fs // 1000PERC = 50len1 = len_ * PERC // 100len2 = len_ - len1# 設置默認參數Thres = 3Expnt = 2.0beta = 0.002G = 0.9# 初始化漢明窗win = np.hamming(len_)# normalization gain for overlap+add with 50% overlapwinGain = len2 / sum(win)# Noise magnitude calculations - assuming that the first 5 frames is noise/silencenFFT = 2 * 2 ** (nextpow2.nextpow2(len_))noise_mean = np.zeros(nFFT)j = 0for k in range(1, 6): noise_mean = noise_mean + abs(np.fft.fft(win * x[j:j + len_], nFFT)) j = j + len_noise_mu = noise_mean / 5# --- allocate memory and initialize various variablesk = 1img = 1jx_old = np.zeros(len1)Nframes = len(x) // len2 - 1xfinal = np.zeros(Nframes * len2)# ========================= Start PRocessing ===============================for n in range(0, Nframes): # Windowing insign = win * x[k-1:k + len_ - 1] # compute fourier transform of a frame spec = np.fft.fft(insign, nFFT) # compute the magnitude sig = abs(spec) # save the noisy phase information theta = np.angle(spec) SNRseg = 10 * np.log10(np.linalg.norm(sig, 2) ** 2 / np.linalg.norm(noise_mu, 2) ** 2) def berouti(SNR): if -5.0 <= SNR <= 20.0: a = 4 - SNR * 3 / 20 else: if SNR < -5.0: a = 5 if SNR > 20: a = 1 return a def berouti1(SNR): if -5.0 <= SNR <= 20.0: a = 3 - SNR * 2 / 20 else: if SNR < -5.0: a = 4 if SNR > 20: a = 1 return a if Expnt == 1.0: # 幅度譜 alpha = berouti1(SNRseg) else: # 功率譜 alpha = berouti(SNRseg) ############# sub_speech = sig ** Expnt - alpha * noise_mu ** Expnt; # 當純凈信號小于噪聲信號的功率時 diffw = sub_speech - beta * noise_mu ** Expnt # beta negative components def find_index(x_list): index_list = [] for i in range(len(x_list)): if x_list[i] < 0: index_list.append(i) return index_list z = find_index(diffw) if len(z) > 0: # 用估計出來的噪聲信號表示下限值 sub_speech[z] = beta * noise_mu[z] ** Expnt # --- implement a simple VAD detector -------------- if SNRseg < Thres: # Update noise spectrum noise_temp = G * noise_mu ** Expnt + (1 - G) * sig ** Expnt # 平滑處理噪聲功率譜 noise_mu = noise_temp ** (1 / Expnt) # 新的噪聲幅度譜 # flipud函數實現矩陣的上下翻轉,是以矩陣的“水平中線”為對稱軸 # 交換上下對稱元素 sub_speech[nFFT // 2 + 1:nFFT] = np.flipud(sub_speech[1:nFFT // 2]) x_phase = (sub_speech ** (1 / Expnt)) * (np.array([math.cos(x) for x in theta]) + img * (np.array([math.sin(x) for x in theta]))) # take the IFFT xi = np.fft.ifft(x_phase).real # --- Overlap and add --------------- xfinal[k-1:k + len2 - 1] = x_old + xi[0:len1] x_old = xi[0 + len1:len_] k = k + len2# 保存文件wf = wave.open('outfile.wav', 'wb')# 設置參數wf.setparams(params)# 設置波形文件 .tostring()將array轉換為datawave_data = (winGain * xfinal).astype(np.short)wf.writeframes(wave_data.tostring())wf.close()

以上代碼中用到了nextpow2,其中n = nextpow2(x) 表示最接近x的2的n次冪,這里就不在貼出,有需要的朋友可以聯系(QQ:437482772)


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
国产91精品久久久| 色噜噜狠狠色综合网图区| 国产成人一区二区在线| 日韩精品极品在线观看播放免费视频| 中文字幕日韩av综合精品| 91成人在线观看国产| 91老司机在线| 两个人的视频www国产精品| 欧美专区福利在线| 国产99视频精品免视看7| 日韩精品在线私人| 国产脚交av在线一区二区| 久久69精品久久久久久国产越南| 尤物yw午夜国产精品视频明星| 国产精品99久久久久久久久| 日产精品久久久一区二区福利| 色老头一区二区三区| 欧美成人免费小视频| 久久久久久久97| 欧美国产精品人人做人人爱| 亚洲在线观看视频| 国产精品www色诱视频| 欧美日韩国产黄| 红桃视频成人在线观看| 日韩亚洲欧美中文高清在线| 亚洲精品美女免费| 中文欧美日本在线资源| 欧美性极品少妇精品网站| 欧美日本高清一区| 精品电影在线观看| 欧美电影免费观看电视剧大全| 91产国在线观看动作片喷水| 亚洲天堂av高清| 欧美日韩午夜激情| 国产精品久久久久久久久久三级| 亚洲一区亚洲二区| 欧美日韩爱爱视频| 丁香五六月婷婷久久激情| 91豆花精品一区| 成人午夜激情免费视频| 不卡在线观看电视剧完整版| 日本国产欧美一区二区三区| 成人精品网站在线观看| 欧美日韩国产在线播放| 精品国产精品三级精品av网址| 精品久久久视频| www欧美xxxx| 国产精品久久久久久久久| 中文字幕日韩av综合精品| 日韩中文字幕在线视频| 91免费福利视频| 亚洲电影免费观看高清完整版在线| 久久久最新网址| 亚洲老头老太hd| 久久精视频免费在线久久完整在线看| 欧美在线影院在线视频| 国产精品扒开腿做爽爽爽男男| 亚洲精品一区二区在线| 国产精品海角社区在线观看| 欧美成在线视频| 亚洲自拍偷拍福利| 在线观看久久av| 国产狼人综合免费视频| 国产色视频一区| 亚洲精品第一国产综合精品| 中文字幕久久精品| 久久久亚洲精品视频| 国产精品国产自产拍高清av水多| 日韩精品极品视频免费观看| 97视频色精品| 欧美激情精品久久久| 国产在线精品成人一区二区三区| 欧美精品videossex性护士| 国产精品久久久久久久一区探花| 正在播放亚洲1区| 国产日韩欧美视频| 91麻豆国产语对白在线观看| 日韩高清电影好看的电视剧电影| 91在线精品视频| 亚洲视频一区二区三区| 中文字幕在线成人| 91国产中文字幕| 中文字幕在线看视频国产欧美在线看完整| 国产一区二区三区网站| 国产成人精品视频在线观看| 国产男人精品视频| 精品国产91乱高清在线观看| 国产精品尤物福利片在线观看| 欧美在线观看日本一区| 亚洲高清在线观看| 久久久久久69| 97视频com| 亚洲网站在线观看| 国产亚洲欧美另类中文| 91久久久久久久久久久久久| 性色av一区二区三区免费| 日韩电影在线观看中文字幕| 亚洲成人久久电影| 日韩一区视频在线| 国产欧美日韩精品专区| 国产精品老女人精品视频| 在线播放亚洲激情| 在线国产精品播放| 亚洲aⅴ男人的天堂在线观看| 91亚洲精品在线观看| 在线视频亚洲欧美| 亚洲欧洲在线免费| 亚洲午夜性刺激影院| 亚洲国产精彩中文乱码av| 麻豆国产va免费精品高清在线| 亚洲国产成人91精品| 日韩精品免费观看| 成人免费看黄网站| 日韩精品极品视频免费观看| 国产精品久久久精品| 国产在线拍偷自揄拍精品| 91亚洲国产成人精品性色| 国产欧美精品va在线观看| 中文字幕在线观看日韩| 欧美在线视频一区二区| 大伊人狠狠躁夜夜躁av一区| 8090理伦午夜在线电影| 午夜免费在线观看精品视频| 成人夜晚看av| 久久影院模特热| 2018日韩中文字幕| 欧美激情成人在线视频| 欧美色视频日本版| 日韩国产精品亚洲а∨天堂免| 久久国产精品电影| 欧美怡春院一区二区三区| 中文字幕欧美视频在线| 亚洲色图综合网| 欧美日韩成人在线观看| 亚洲国产欧美一区二区丝袜黑人| 色偷偷9999www| xxxxx91麻豆| 日韩电影中文字幕av| 国产成人精品av在线| 亚洲午夜女主播在线直播| 日韩国产高清视频在线| 亚洲一区美女视频在线观看免费| 国产精品va在线播放我和闺蜜| 456国产精品| 九九热99久久久国产盗摄| 91免费在线视频| 国产性猛交xxxx免费看久久| 国产精品一区二区性色av| 中文字幕少妇一区二区三区| 亚洲欧美精品一区| 狠狠操狠狠色综合网| 国产精品视频永久免费播放| 午夜精品福利在线观看| 日本精品久久久久影院| 欧美激情精品久久久久久久变态| 国产做受69高潮| 久久久亚洲国产| 国产欧美精品va在线观看| 亚洲电影在线观看| 欧美亚洲激情在线| 懂色av一区二区三区| 久热精品视频在线| 久精品免费视频| 欧美性猛交xxxx乱大交蜜桃|