Speech processing. voice signal

4 views (last 30 days)
Yousef Aljehani
Yousef Aljehani on 11 Oct 2019
Commented: Star Strider on 11 Oct 2019
I have speech signal of my voice and i want to divide the voice signal into frames of 30 milliseconds. And the frame rate = 10 miiliseconds.
The sampling frequency should be = 8000 Hz.
fs = 8000;
q = 16;
rec = audiorecorder(fs,q,1);
disp('Start speaking ');
recordblocking(rec,3);
disp('End of recording ');
play(rec);
y = getaudiodata(rec);
plot(y);
audiowrite(f,y,fs,Name,Value);

Answers (1)

Star Strider
Star Strider on 11 Oct 2019
See if the buffer function will do what you want.
  2 Comments
Yousef Aljehani
Yousef Aljehani on 11 Oct 2019
can you explain more ?
Star Strider
Star Strider on 11 Oct 2019
Please see the documentation I linked to.
For example, I would do something like this:
fs = 8000; % Sampling Frequency (Hz)
ts = 1/fs; % Sampling Interval (s)
n30ms = 30E-3*fs; % Samples / 30ms
rec = rand(1,randi([8000 10000])); % Simulate Single-Channel Recording
nrseg = round(numel(rec)/n30ms); % Number Of Segments
bufrec = buffer(rec, nrseg); % Matrix Of Recorded Segments
Experiment to get the result you want.

Sign in to comment.

Categories

Find more on Simulation, Tuning, and Visualization in Help Center and File Exchange

Community Treasure Hunt

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

Start Hunting!