RNNoise降噪训练

本文详细介绍了如何使用RNNoise库进行音频降噪,包括从下载源码到编译、训练以及实际应用的全过程。重点提到了训练过程中对pip依赖的版本要求,特别是TensorFlow版本必须与特定的CUDA版本匹配。此外,还提供了一个音频文件合并处理的Python脚本,用于读取和处理.wav文件。

1.下载源码点击下载rnnoise代码,或者去github下载
2.编译源码

  • sudo apt-get install autoconf automake libtool
  • ./autogen.sh
  • ./configure
  • make3

3.训练

  • pip依赖
    pip install numpy h5py
    pip install grpcio==1.36.1
    pip install keras==2.2.4 tensorflow==1.12.0  #版本必须对应 tensorflow-gpu==1.12.0
    pip install protobuf==3.8.0  
    
  • cd src ; ./compile.sh
  • ./denoise_training signal.raw noise.raw 10000 > training.f32
  • cd training ; ./bin2hdf5.py …/src/training.f32 10000 87 training.h5
  • ./rnn_train.py
  • ./dump_rnn.py weights.hdf5 …/src/rnn_data.c rnn_data.h orig

4.降噪

  • ./rnnoise_demo noise.raw out.raw

附:

tensorflow: Your CPU supports instructions that this TensorFlow binary was not compiled to use: FMA
遇到了这个问题,意思是你的 CPU 支持AVX2 FMA(加速CPU计算),但安装的 TensorFlow 版本不支持


如果是初学者 或者 没有太大计算速度的需求,在开头加上这两行忽略这个提示即可

	import os
	os.environ['TF_CPP_MIN_LOG_LEVEL'] = '2'
PS:
	os.environ["TF_CPP_MIN_LOG_LEVEL"] = '1' # 默认,显示所有信息 
	os.environ["TF_CPP_MIN_LOG_LEVEL"] = '2' # 只显示 warning 和 Error 
	os.environ["TF_CPP_MIN_LOG_LEVEL"] = '3' # 只显示 Error	
音频文件合并处理脚本
#coding: utf-8

import os 
import os.path 
import binascii

out_file_name='1.raw'

ignore_filename = [".raw", ".py"]

def ignore_check_file(file):
	for ignore in ignore_filename:
		if file.find(ignore) > 0:
			return True
	return False

#字符串 >> 二进制 >> hex >> hex 字符串
def str_to_hexStr(string):
    str_bin = string #string.encode('utf-8')
    return binascii.hexlify(str_bin).decode('utf-8')
#hex 字符串 >> hex >> 二进制 >> 字符串
def hexStr_to_str
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值