2012-11-22 79 views
0

我正在嘗試錄製語音,然後從用戶提供的時間索引播放語音。問題是這段代碼沒有播放錄製的聲音,並出現「播放選擇無效」錯誤。我究竟做錯了什麼?下面是代碼:在MATLAB中播放錄製的語音

function musiceditor(UserPassedTimeIndex) 

Fs=44110; 

y = wavrecord(5*Fs,Fs,'int16'); 

wavwrite(y,'Alfred.wav'); 

[Magnitude,SampleRate,x]=wavread('Alfred.wav'); 

AudioPlayer=audioplayer(Magnitude,SampleRate,x); 

TotalPlayTime= length(Magnitude)/SampleRate; 

Index= round((UserPassedTimeIndex/TotalPlayTime)*length(Magnitude)); 

play(AudioPlayer,Index); 

問候

回答

0

從方程

(UserPassedTimeIndex/TotalPlayTime)*length(Magnitude), 

UserPassedTimeIndex必須在秒,小於音頻的總記錄時間(否則會報錯)。

通過TotalPlayTime的定義這個方程等效於簡單地

UserPassedTimeIndex * SampleRate 

注意,這是轉換時間(秒)成時間在樣本。由於MATLAB的索引是基於1的,因此您還需要添加1以獲取樣本的索引開始在給定的開始時間。

相關問題