How to record voice in uint8 format without telling the number of seconds in advance?
2 ビュー (過去 30 日間)
古いコメントを表示
Hi,
I want to record voice and then have to do some processing on the recorded voice. The output samples of the recorded voice should be in uint8 format.
I have used wavrecord function as given below. It gives me uint8 samples but I have to tell the seconds of recording in advance.
y = wavrecord(recording_duration*Fs,Fs,'uint8');
I have also found another function called audiorecorder as given below. It helps me start a recording and stop a recording and I don't need to give the recording duration in advance but the output samples are not in uint8 format.
recorder = audiorecorder(Fs,nBits,nChannels)
Now, what I want is that:
1. I don't have to give recording duration in advance. 2. I should get the samples in uint8 format.
How can I achieve this?
Thank you.
0 件のコメント
回答 (2 件)
Daniel Shub
2011 年 6 月 23 日
doc getaudiodata
Will tell you
y = getaudiodata(recorder, dataType) converts the signal data to the specified data type: 'double', 'single', 'int16', 'int8', or 'uint8'
4 件のコメント
Daniel Shub
2011 年 6 月 24 日
@walter, I believe wavwrite automatically writes with the file with the same type as the input (if not, you can definitely specify the type to be written).
@Muhammad, you use getaudiodata with the audiorecoder object.
Matlab Help Seeker
2011 年 6 月 24 日
@Daniel: Could you please tell me how to create an audiorecorder object. Can you please provide me a code that fulfills my two requirements?
Thank you.
Walter Roberson
2011 年 6 月 24 日
Working from Daniel's answer:
recorder = audiorecorder(Fs,8,nChannels);
Then when ready,
record(recorder);
and when done,
stop(recorder);
Then to get the data as uint8,
samples = getaudiodata(recorder,'uint8');
clear recorder
1 件のコメント
Daniel Shub
2011 年 6 月 27 日
It is not obvious to me what the audiorecorder function does with the nbits argument. While at first glance it makes sense to only record with 8 bit resolution if you want the result as an int8, but if audiorecorder or the soundcard does anything funky, you might be better off using
recorder = audiorecorder(Fs,16,nChannels);
参考
カテゴリ
Help Center および File Exchange で Audio and Video Data についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!