dsp. AudioFileReader

Поток от звукового файла

Описание

Система dsp.AudioFileReader object™ читает аудиосэмплы из звукового файла.

Считать аудиосэмплы из звукового файла:

  1. Создайте объект dsp.AudioFileReader и установите его свойства.

  2. Вызовите объект с аргументами, как будто это была функция.

Чтобы узнать больше, как Системные объекты работают, смотрите то, Что Системные объекты? MATLAB.

Создание

Синтаксис

afr = dsp.AudioFileReader
afr = dsp.AudioFileReader(File name)
afr = dsp.AudioFileReader(Name,Value)

Описание

afr = dsp.AudioFileReader возвращает Системный объект читателя звукового файла, afr, который читает аудио из звукового файла.

пример

afr = dsp.AudioFileReader(File name) возвращает объект читателя звукового файла, afr, с набором свойств Filename к File name.

пример

afr = dsp.AudioFileReader(Name,Value) возвращает Системный объект читателя звукового файла, afr, с каждым заданным набором свойств к заданному значению. Заключите каждое имя свойства в одинарные кавычки. Незаданные свойства имеют значения по умолчанию.

Свойства

развернуть все

Если в противном случае не обозначено, свойства являются ненастраиваемыми, что означает, что вы не можете изменить их значения после вызова объекта. Объекты блокируют, когда вы вызываете их, и функция release разблокировала их.

Если свойство является настраиваемым, можно изменить его значение в любое время.

Для получения дополнительной информации об изменении значений свойств смотрите Разработку системы в MATLAB Используя Системные объекты (MATLAB).

Задайте имя звукового файла как вектор символов или скаляр строки. Задайте полный путь для файла, только если файл не находится на пути MATLAB®. Имя файла может быть http веб-адресом, как 'http://audio.wgbh.org:8004/'. Для примера смотрите Рида и Воспроизведите Звуковой файл от http веб-адреса.

В следующей таблице перечислены поддерживаемые форматы аудиофайла:

ПлатформыРасширения файла
Windows® .wav, .wma, .avi, .aif, .aifc, .aiff, .mp3, .au, .snd, .mp4, .m4a, .flac, .ogg, .mov
Не-Windows.avi, .mp3, .mp4, .m4a, .wav, .flac, .ogg, .aif, .aifc, .aiff, .au, .snd, .mov

Задайте положительное целое число как число раз, чтобы проигрывать файл.

Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

Это свойство доступно только для чтения.

Это свойство отображает уровень выборки, в Гц, звукового файла.

Типы данных: double

Задайте количество выборок в аудио кадре как положительное, скалярное целочисленное значение.

Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

Установите тип данных аудиоданных вывод от объекта читателя звукового файла. Задайте тип данных как 'double', 'single', 'int16' или 'uint8'.

Задайте демонстрационный диапазон, из которого можно читать как вектор в форме [StartSample EndSample], где StartSample является выборкой, на которой запускается чтение файла, и EndSample является выборкой, на которой останавливается чтение файла.

Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

Использование

Для версий ранее, чем R2016b, используйте функцию step, чтобы запустить алгоритм Системного объекта. Аргументы к step являются объектом, который вы создали, сопровождаемый аргументами, показанными в этом разделе.

Например, y = step(obj,x) и y = obj(x) выполняют эквивалентные операции.

Синтаксис

audio = afr()
[audio,eof] = afr()

Описание

пример

audio = afr() выводит один кадр аудиосэмплов, audio. Можно задать число раз, чтобы проигрывать файл с помощью свойства PlayCount. После проигрывания файла для числа раз вы задаете, audio содержит тишину.

[audio,eof] = afr() возвращает индикатор конца файла, eof. eof верен каждый раз, когда вывод audio содержит последний аудиосэмпл в файле.

Выходные аргументы

развернуть все

Один кадр аудиосэмплов, возвращенных как вектор-столбец длины, равняется значению, которое вы задаете в свойстве SamplesPerFrame. Тип данных аудиовыхода задан в свойстве OutputDataType.

Типы данных: single | double | int16 | uint8

Индикатор конца файла, возвращенный или как 1 или как 0. Значение 1 выводится, когда audio содержит последний аудиосэмпл в файле.

Типы данных: логический

Функции объекта

Чтобы использовать объектную функцию, задайте Системный объект как первый входной параметр. Например, чтобы выпустить системные ресурсы Системного объекта под названием obj, используйте этот синтаксис:

release(obj)

развернуть все

infoИнформация об определенном звуковом файле
isDone(Логическое) состояние конца файла
stepЗапустите алгоритм Системного объекта
releaseВысвободите средства и позвольте изменения в значениях свойств Системного объекта и введите характеристики
resetСбросьте внутренние состояния Системного объекта

Примеры

развернуть все

Читайте и воспроизведите звуковой файл с помощью стандартного устройства аудиовыхода.

Примечание: Если вы используете R2016a или более ранний релиз, заменяете каждый вызов объекта с эквивалентным синтаксисом step. Например, obj() становится step(obj).

Можно принять решение считать целые данные или задать область значений данных, чтобы читать из использования свойства ReadRange. По умолчанию ReadRange установлен в [1 inf], указав на средство чтения файлов, чтобы считать целые данные из источника. В этом примере, набор ReadRange к 3 Фс, указывая на средство чтения файлов, чтобы считать первые 3 секунды данных.

afr = dsp.AudioFileReader('speech_dft.mp3','ReadRange',[1 3*22050]);
adw = audioDeviceWriter('SampleRate', afr.SampleRate);

while ~isDone(afr)
    audio = afr();
    adw(audio);
end
release(afr); 
release(adw);

Считайте аудиоданные из http веб-адреса с помощью Системы dsp.AudioFileReader object™. Воспроизведите данные с помощью Системного объекта audioDeviceWriter.

Инициализация

Создайте читателя звукового файла, который считывает данные из http://audio.wgbh.org:8004/. Установите частоту дискретизации средства записи аудио устройства совпадать с тем из читателя звукового файла.

afr = dsp.AudioFileReader('http://audio.wgbh.org:8004/')
afr = 
  dsp.AudioFileReader with properties:

           Filename: 'http://audio.wgbh.org:8004/'
          PlayCount: 1
    SamplesPerFrame: 1024
     OutputDataType: 'double'
         SampleRate: 44100
          ReadRange: [1 Inf]

adw = audioDeviceWriter(afr.SampleRate)
adw = 
  audioDeviceWriter with properties:

        Driver: 'DirectSound'
        Device: 'Default'
    SampleRate: 44100

  Show all properties

Читайте и воспроизведите

Считайте определенный объем данных из веб-адреса непосредственно и проигрывайте данные назад с помощью средства записи аудио устройства.

for i = 1:1000 
    audio = afr();
    adw(audio);
end

Закройте входной файл и устройство аудиовыхода.

release(afr)
release(adw)

Ограничения

Для MP3, MPEG-4 AAC и звуковых файлов AVI на Windows 7 или позже и платформы Linux®, объект dsp.AudioFileReader может считать меньше выборок, чем ожидалось. На платформах Windows это происходит из-за ограничения в базовой среде Основы СМИ. На платформах Linux это происходит из-за ограничения в базовой среде GStreamer. Если вы требуете демонстрационных точных показаний, работаете с файлами FLAC или WAV.

Алгоритмы

Этот объект реализует алгоритм, входные параметры и выходные параметры, описанные на странице с описанием блока From Multimedia File. Свойства объектов соответствуют параметрам блоков, кроме:

  • Объект не имеет никакого соответствующего свойства для параметров блоков Inherit sample time from file. Объект всегда наследовал шаг расчета от файла.

  • Объект не имеет никакого соответствующего свойства для параметра Output end-of-file indicator. Объект всегда выходные параметры EOF как последний вывод.

  • Объект не имеет никакого соответствующего свойства для параметра Multimedia Outputs, потому что аудио является единственный поддерживаемый вывод.

  • Объект не имеет никакого соответствующего свойства для параметров блоков Image signal.

  • Объект не имеет никакого соответствующего свойства для параметра Output color format.

  • Объект не имеет никакого соответствующего свойства для параметра Video output data type.

Расширенные возможности

Представленный в R2012a