exponenta event banner

Вход и выход звука

В этом примере показано, как считывать аудио из файла и записывать аудио в динамики.

Чтение и запись целых аудиофайлов

Чтобы прочесть весь аудиофайл в рабочую область и затем записать весь аудиосигнал в динамики, используйте 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("Filename","SpeechDFT-16-8-mono-5secs.wav")
fileReader = 
  dsp.AudioFileReader with properties:

           Filename: '/mathworks/devel/bat/BR2021ad/build/matlab/toolbox/audio/samples/SpeechDFT-16-8-mono-5secs.wav'
          PlayCount: 1
    SamplesPerFrame: 1024
     OutputDataType: 'double'
         SampleRate: 8000
          ReadRange: [1 Inf]

Создание audioDeviceWriter объект для записи звука в динамики. Установка частоты дискретизации audioDeviceWriter возражает против частоты дискретизации аудиофайла.

deviceWriter = audioDeviceWriter("SampleRate",fileReader.SampleRate)
deviceWriter = 
  audioDeviceWriter with properties:

        Device: 'Default'
    SampleRate: 8000

  Show all properties

В цикле считывайте из файла и записывайте на устройство. Во время цикла звук воспроизводится на аудиоустройстве по умолчанию.

while ~isDone(fileReader)
    
    % Read one frame of audio data from the file.
    audioData = fileReader();
    
    % Write one frame of audio data to your speakers.
    deviceWriter(audioData);
    
end

Рекомендуется выпустить файл и аудиоустройство по завершении.

release(fileReader)
release(deviceWriter)

Сведения о том, как реализовать другие конфигурации аудио ввода-вывода, такие как считывание с микрофона или запись на динамик, см. в разделе Аудио в реальном времени в MATLAB.

См. также

| | | | | |

Связанные темы