Since this is a follow-up of your previous question and you are already getting advice there, I think it makes more sense to close this as duplicate.
Info
此问题已关闭。 请重新打开它进行编辑或回答。
How to play sound from data
1 次查看(过去 30 天)
显示 更早的评论
Hello,
I'm trying to run the folowing algorithm using Matlab R2019b. I'm able to run it and I'm getting good results, but I can see only the plots, and cannot hear the clean outputed audio.
main algorithms function declaration:
function [esTSNR,esHRNR]=WienerNoiseReduction(ns,fs,IS)
Authors remarks on the main function:
% [esTSNR,esHRNR]=WIENERNOISEREDUCTION(ns,fs,IS)
%
% Title : Wiener Noise Suppressor with TSNR & HRNR algorithms
%
% Description : Wiener filter based on tracking a priori SNR using Decision-Directed
% method, proposed by Plapous et al 2006. The two-step noise reduction
% (TSNR) technique removes the annoying reverberation effect while
% maintaining the benefits of the decision-directed approach. However,
% classic short-time noise reduction techniques, including TSNR, introduce
% harmonic distortion in the enhanced speech. To overcome this problem, a
% method called harmonic regeneration noise reduction (HRNR)is implemented
% in order to refine the a priori SNR used to compute a spectral gain able
% to preserve the speech harmonics.
%
%
% Reference : Plapous, C.; Marro, C.; Scalart, P., "Improved Signal-to-Noise Ratio
% Estimation for Speech Enhancement", IEEE Transactions on Audio, Speech,
% and Language Processing, Vol. 14, Issue 6, pp. 2098 - 2108, Nov. 2006
%
% Input Parameters :
% ns Noisy speech
% fs Sampling frequency (in Hz)
% IS Initial Silence (or non-speech activity) Period (in number of samples)
%
% Output Parameters : enhanced speech
% esTSNR enhanced speech with the Two-Step Noise Reduction method
% esHNRN enhanced speech with the Harmonic Regeneration Noise Reduction method
%
%Author : LIU Ming, 2008
%Modified : SCALART Pascal october, 2008
%
I'm calling the main function like this:
[data, fs] = audioread('noisy.wav');
l = length(data);
samples = (l/fs);
[esTSNR,esHRNR] = WienerNoiseReduction(data,fs,samples);
the output esTSNR,esHRNR has the type 637920x1 double
and I'm trying to play the sound like this:
playerTSNR = audioplayer(esTSNR, fs);
playblocking(playerTSNR);
playerHRNR = audioplayer(esHRNR, fs);
playblocking(playerHRNR);
I've also tried:
sound(esTSNR);
sound(esHRNR);
when I used the sound function I've heared a little bit of the audio, but not all of it.
How can I hear the outputed clean audio?
Thank you.
1 个评论
回答(0 个)
此问题已关闭。
另请参阅
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!