在MATLAB中播放录制的声音

时间:2012-11-22 07:00:43

标签: matlab playback

我正在尝试录制语音,然后从用户提供的时间索引中播放。问题是此代码未播放录制的语音并提供“无效的播放选择”错误。我究竟做错了什么?这是代码:

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);

此致

1 个答案:

答案 0 :(得分:0)

从等式

(UserPassedTimeIndex/TotalPlayTime)*length(Magnitude), 

UserPassedTimeIndex必须以秒为单位,且小于音频的总录制时间(否则会出错)。

通过TotalPlayTime的定义,这个等式简单地等于

UserPassedTimeIndex * SampleRate

请注意,这是将样本中的时间(以秒为单位)转换为时间。由于MATLAB的索引是基于1的,因此您还需要添加1以在给定的开始时间内将样本的索引设置为 start