这个示例演示了如何从文件中读取音频并将音频写入扬声器。
要将整个音频文件读入工作空间,然后将整个音频信号写入扬声器,请使用audioread
和soundsc
功能。调用audioread
用文件名读取整个音频文件和音频的采样率。调用soundsc
与音频数据和采样率播放音频到您的默认扬声器。
[audioData, fs] = audioread (“SpeechDFT-16-8-mono-5secs.wav”);soundsc (audioData fs)
要将音频一帧一帧地读取到工作空间中,然后将音频一帧一帧地写入到扬声器中,请使用dsp。AudioFileReader
和audioDeviceWriter
功能。
创建一个dsp。AudioFileReader
对象从文件逐帧读取音频。音频文件读取器将音频文件的采样率保存到SampleRate
财产。
fileReader = dsp。AudioFileReader (“文件名”,“SpeechDFT-16-8-mono-5secs.wav”)
fileReader = dsp。AudioFileReaderwith properties: Filename: '/mathworks/devel/bat/Bdoc21b/build/matlab/toolbox/audio/samples/SpeechDFT-16-8-mono-5secs.wav' PlayCount: 1 SamplesPerFrame: 1024 OutputDataType: 'double' FilenameIsTunableInCodegen: 0 SampleRate: 8000 ReadRange: [1 Inf]
创建一个audioDeviceWriter
对象写入音频到您的扬声器。设置的采样率audioDeviceWriter
对象的音频文件采样率。
deviceWriter = audioDeviceWriter (“SampleRate”fileReader.SampleRate)
deviceWriter = audioDeviceWriter with properties: Device: 'Default' SampleRate: 8000显示所有属性
在循环中,从文件中读取并写入设备。当循环运行时,音频将播放到默认音频设备。
而~结束(fileReader)%从文件中读取一帧音频数据。audioData = fileReader ();%向扬声器中写入一帧音频数据。deviceWriter (audioData);结束
作为一个最佳实践,当您完成时,释放文件和音频设备。
发布(fileReader)发布(deviceWriter)
要学习如何实现其他音频I/O配置,如从麦克风读取或写入扬声器,请参阅MATLAB中的实时音频。
audioDeviceReader
|audioDeviceWriter
|audioPlayerRecorder
|dsp。AudioFileWriter
|dsp。AudioFileReader
|asiosettings
|getAudioDevices