Speech processing. voice signal

5 ビュー (過去 30 日間)
Yousef Aljehani
Yousef Aljehani 2019 年 10 月 11 日
コメント済み: Star Strider 2019 年 10 月 11 日
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);

回答 (1 件)

Star Strider
Star Strider 2019 年 10 月 11 日
See if the buffer function will do what you want.
  2 件のコメント
Yousef Aljehani
Yousef Aljehani 2019 年 10 月 11 日
can you explain more ?
Star Strider
Star Strider 2019 年 10 月 11 日
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.

サインインしてコメントする。

カテゴリ

Help Center および File ExchangeSimulation, Tuning, and Visualization についてさらに検索

Community Treasure Hunt

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

Start Hunting!

Translated by