在日常生活中,我们经常需要使用 MATLAB 来处理音频数据,比如语音识别、语音处理等。假设你正在开发一个语音识别应用程序,需要采集一些训练数据。为了方便,你决定使用 MATLAB 来录制一些简短的语音片段作为训练样本,本文将介绍如何使用 MATLAB 调用计算机麦克风录制声音,并将录制的音频数据保存为文件,并播放和绘制波形图。
% 清除工作空间、关闭图形窗口、清除命令窗口
clc
clear all
close all
% 提示用户设置录音时长和采样频率
prompt = {'设定录制时长(秒):','设定采样频率(Hz):'};
dlg_title = '设置录音参数';
num_lin = 2;
def_t_f = {'5','16000'}; % 默认录制时长5秒,采样频率16000Hz
record_par = inputdlg(prompt, dlg_title, num_lin, def_t_f);
此时让你输入设定的参数,按需输入即可
% 将用户输入的时长和频率转换为数字
record_t = str2double(record_par{1});
Fs = str2double(record_par{2});
% 创建音频录制器对象
record_speech = audiorecorder(Fs, 16, 1); % 16位,单声道
% 提示用户开始录音
msg0 =msgbox('请开始录音');
h = waitbar(0,'Start speaking') ; % 给用户准备时间
% 开始录音
for step=1:1
recordblocking(record_speech , record_t);
waitbar(step)
end
% 提示录音结束
msg1 = msgbox('录音结束');
pause(2);
close(h)
这个时候就开始录制音频了,按照你的场景需求进行录制。
% 获取录音数据
speech_data = getaudiodata(record_speech);
% 播放录音
sound(speech_data, Fs);
plot( speech_data);
xlabel('采样时间');
ylabel('幅值');
title('采集的音频信号波形');
这是将你采集的音频信号绘制出波形图。后期可根据需要进行删除。
通过这个简单的 MATLAB 实现,你可以方便地调用计算机麦克风录制声音,并将录制的音频保存为文件。这个功能在语音处理、语音识别等应用中有着广泛的用途,希望对你的工作有所帮助!