日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

python音频 降噪_python - 使用pyaudio对音频播放进行降噪 - 堆栈内存溢出

發(fā)布時間:2024/1/8 python 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python音频 降噪_python - 使用pyaudio对音频播放进行降噪 - 堆栈内存溢出 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

我正在用Python為Raspberry Pi寫一個聲碼器,這使聲音無法識別。 我錄制音頻并使用回調(diào)功能實時播放-它可以工作。 現(xiàn)在,我需要對輸入進行去噪,以Numpy數(shù)組表示(像大多數(shù)教程和SO上的文章一樣,沒有.wav文件!)。 它對我不起作用。

我的main.py:

from copy import copy

import numpy as np

import pyaudio as pa

import time

import noisereduce as nr

p = pa.PyAudio()

FORMAT = pa.paFloat32

NP_FORMAT = np.float32

CHANNELS = 2

CHUNK = 1024

RATE = int(p.get_default_input_device_info()['defaultSampleRate'])

NOISE_SAMPLE = None

# function for manipulating input data

def callback(in_data, frame_count, time_info, flag):

data = copy(np.frombuffer(in_data)) # copy, since original is read-only

# here everything is ok for first time

# print("X")

out_data = nr.reduce_noise(audio_clip=data, noise_clip=NOISE_SAMPLE)

# print("Y")

# I get here only once

return out_data, pa.paContinue

def get_noise():

audio = pa.PyAudio()

stream = audio.open(format=FORMAT, channels=CHANNELS,

rate=RATE, input=True,

frames_per_buffer=CHUNK)

frames = []

RECORD_SECONDS = 1

for i in range(0, int(RATE / CHUNK * RECORD_SECONDS)):

data = stream.read(CHUNK)

frames.append(np.frombuffer(data))

# stop Recording

stream.stop_stream()

stream.close()

audio.terminate()

return np.array(frames, dtype=NP_FORMAT).flatten()

def main():

global NOISE_SAMPLE

NOISE_SAMPLE = get_noise()

stream = p.open(format=FORMAT,

rate=RATE,

channels=CHANNELS,

input=True,

output=True,

frames_per_buffer=CHUNK,

stream_callback=callback)

stream.start_stream()

# main input loop

while True:

time.sleep(1)

stream.stop_stream()

stream.close()

p.terminate()

if __name__ == "__main__":

main()

我記錄了1秒鐘的噪聲樣本,然后進入無限的記錄播放循環(huán),在這里我想對輸入進行降噪并將其輸出。 由于某種原因,它只能運行一次:長時間(為什么?)后,我會打印一次“ X”和“ Y”,然后程序繼續(xù)運行,但是不再輸入回調(diào)函數(shù)。 有什么想法嗎? 任何建議,其他易于使用的庫,等等。

總結(jié)

以上是生活随笔為你收集整理的python音频 降噪_python - 使用pyaudio对音频播放进行降噪 - 堆栈内存溢出的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。