噪音消除模块调研

一.原理

1.1降噪

noisereduce 库的 reduce_noise 函数使用的是一种基于频谱减法的噪声消除算法。它通过分析音频的频谱,识别出噪声成分,并尝试将这些噪声成分从音频信号中去除,从而提升信号的清晰度。

1.2 动态范围压缩(预加重)

预加重(Pre-emphasis)是一种简单的信号处理技术,常用于音频处理中。它通过增强音频信号的高频成分来改善信噪比,特别是在某些编码技术中。预加重可以看作是一种高通滤波操作,通过减少低频成分的能量相对增加高频成分的能量。

1.3 增益处理

增益处理是通过线性放大音频信号的幅值来增加其响度的。增益因子 gain_factor 的大小决定了放大倍数。需要注意的是,过高的增益因子可能会导致音频信号超出其允许的动态范围,从而引起失真。

1.4 信号裁剪

将数组的值限制在指定的范围内。这里将音频信号限制在 [-1.0, 1.0] 之间,以防止因增益处理导致的信号失真(即音频信号过大或过小,超出了标准音频信号的范围)。

.库安装

复制代码
pip install  pydub`
`pip install noisereduce`
`

.测试代码

复制代码
import numpy as np
from pydub import AudioSegment
import librosa
import noisereduce as nr
import librosa.effects as effects
# 加载音频文件
librosa_audio, sr = librosa.load("zhibo60s.wav", sr=16000)

# 使用noisereduce库进行噪声消除
reduced_noise_audio = nr.reduce_noise(y=librosa_audio, sr=sr)

# 使用librosa的动态范围压缩进行音频增强
compressed_audio = effects.preemphasis(reduced_noise_audio)  # 使用预加重作为简单的压缩方式

# 增加增益,提升音量
gain_factor = 1  # 增益因子,可根据实际情况调整
enhanced_audio = compressed_audio * gain_factor
enhanced_audio = enhanced_audio * 2
# 确保音频信号在[-1, 1]范围内
enhanced_audio = np.clip(enhanced_audio, -1.0, 1.0)

# 将处理后的人声转换回AudioSegment对象
vocals_audio_segment = AudioSegment(
    data=np.array(enhanced_audio * 32767, dtype=np.int16).tobytes(),
    sample_width=2,
    frame_rate=sr,
    channels=1
)
# 使用pydub调整增益
gain_db = 5  # 增益量,以dB为单位
enhanced_audio_segment = vocals_audio_segment.apply_gain(gain_db)

# 导出处理后的人声
enhanced_audio_segment.export("zhibo60sout.wav", format="wav")

三.测试结果

|--------|-------|----------------------------------------------------------------------------|----------------------------------------------------------------------------|
| 测试原始文件 | 输出文件 | 原始波形图 | 输出文件波形图 |
| 见上传资源 | 见上传资源 | | |

相关推荐
未来之窗软件服务5 天前
AI人工智能(二十三)错误示范ASR 语音识别C#—东方仙盟练气期
人工智能·c#·语音识别·仙盟创梦ide·东方仙盟
山河君5 天前
四麦克风声源定位实战:基于 GCC-PHAT + 最小二乘法实现 DOA
算法·音视频·语音识别·信号处理·最小二乘法·tdoa
colicode6 天前
安卓Android语音验证码接口API示例代码:Kotlin/Java版App验证开发
android·java·前端·前端框架·kotlin·语音识别
EasyDSS6 天前
从“听见”到“理解”:EasyDSS视频会议系统智能字幕、语音转写技术的深度剖析
音视频·语音识别·语音转写·ai摘要·点播技术·流媒体直播·智能字幕
开开心心就好8 天前
文字转语音无字数限,对接微软接口比付费爽
java·linux·开发语言·人工智能·pdf·语音识别
OBS插件网8 天前
OBS弹幕助手使用教程:OBS语音读弹幕语音播报插件下载安装教程
人工智能·语音识别
阿林来了9 天前
Flutter三方库适配OpenHarmony【flutter_speech】— 持续语音识别与长录音
flutter·语音识别·harmonyos
开开心心就好9 天前
免费音频转文字工具,绿色版离线多模型可用
人工智能·windows·计算机视觉·计算机外设·ocr·excel·语音识别
OBS插件网13 天前
OBS直播如何给人脸加口罩特效?OBS口罩特效插件下载安装教程
人工智能·数码相机·语音识别·产品经理
阿林来了14 天前
Flutter三方库适配OpenHarmony【flutter_speech】— 语音识别停止与取消
flutter·语音识别·harmonyos