Writing an audio file

조회 수: 1 (최근 30일)
Yanjika O
Yanjika O 2020년 6월 26일
댓글: Yanjika O 2020년 6월 26일
Dear people,
I am trying to write an audio which consists of part of 2500Hz 17 sec long and another silent part of 1 min in length.
FrequencySampling = 2500;
duration = 17;
repeats=5;
filename='shock.wav';
t = linspace(0, duration, FrequencySampling*duration+1);
t(end) = [];
w = 2*pi*1000;
for i=1:repeats
for k=1:duration
s = sin(w*t);
sound(s,FrequencySampling);
end
pause(77);
end
audioWrite(filename,s,FrequencySampling);
When I use this code I am only able to write it for single 17 sec long 2500Hz tone. I want to inlcude 4 silent periods between 5 repeats of 17 sec long 2500Hz tone. How to do it? Please suggest.

답변 (1개)

Walter Roberson
Walter Roberson 2020년 6월 26일
FrequencySampling = 2500;
duration = 17;
repeats = 5;
filename='shock.wav';
s = cell(2, repeats);
t = linspace(0, duration, FrequencySampling*duration+1);
t(end) = [];
w = 2*pi*1000;
n = sin(w*t);
z = zeros(1, 77*FrequencySampling);
s(1,:) = {n};
s(2,:) = {z};
s(end) = []; %delete final silence
s = horzcat(s{:});
audioWrite(filename, s, FrequencySampling);
Repeating for duration is not needed, as your time vector already extends for the entire duration.
  댓글 수: 1
Yanjika O
Yanjika O 2020년 6월 26일
IDK why but I a getting this error tho,
Cannot find an exact (case-sensitive) match for
'audioWrite'

댓글을 달려면 로그인하십시오.

카테고리

Help CenterFile Exchange에서 Audio and Video Data에 대해 자세히 알아보기

태그

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by