【问题标题】:Adding noise to speech signal向语音信号中添加噪声
【发布时间】:2013-04-12 16:24:13
【问题描述】:

我正在尝试使用以下方法在 matlab 中为语音信号(.wav 文件)添加噪声:

load handel.mat;

hfile= 'noisy.wav';

y = wavread('daveno.wav');
y = y + randn(size(y)) * (1/100);
wavwrite(y, Fs, hfile);
nsamples=Fs;

这增加了噪音,但是,它消除了实际的语音,因此只包含噪音。我是否需要乘以更大的数字,或者,有人可以提出解决此问题的方法吗?

【问题讨论】:

  • 如果你在添加噪音的地方不加线,它会起作用吗?如果是这样,那么您可能只需要幅度较小的噪声。也许你可以试试y = y + randn(size(y)) * (max(abs(y)/100));
  • @Dan 感谢您的回复。当我离开添加噪音的线路时,它会完全扰乱信号,因为它听起来像一个机器人,而且时间完全没有了。有什么建议吗?
  • Fs 是什么,可能您的采样频率不够高。也许尝试[y, Fs] = wavread('daveno.wav') 得到一个好的Fs
  • @Dan 你可能是对的。有没有办法在读取时读取采样率,并保持它,然后以相同的采样频率写入?
  • @Dan 知道了 :) 请将您的评论作为答案,我会接受!感谢您的帮助

标签: matlab file-io signal-processing noise


【解决方案1】:

问题在于您以错误的采样频率写入文件。使用wavread 的第二个输出找到正确的采样频率(即Fs 的值)

   [y, Fs] = wavread('daveno.wav')

【讨论】:

  • 感谢您花时间帮助我,非常感谢。享受您白天/晚上/夜晚的其余时间:)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-03-31
  • 2018-07-18
  • 2015-09-27
相关资源
最近更新 更多