dsp.AudioFileReader

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

Описание

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

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

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

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

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

Создание

Описание

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

пример

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

пример

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

Свойства

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

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

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

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

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

Filename свойство является настраиваемым в сгенерированном коде. Таким образом, можно передать имя звукового файла как вход при выполнении кода, сгенерированного от этого объекта. Атрибуты файла, такие как формат аудио, количество звуковых каналов, частоты дискретизации и битрейта не являются настраиваемыми и должны совпадать с атрибутами прототипного звукового файла, который вы задаете через CodegenPrototypeFile свойство. Заданный прототипный звуковой файл определяет атрибуты и тип звуковых файлов, которые могут быть считаны сгенерированным кодом. Для примера смотрите Настраиваемое Имя Звукового файла в Сгенерированном коде.

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

ПлатформыРасширения файла
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

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

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

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

Установите это свойство на true, чтобы включить приспособляемость Filename в сгенерированном коде C/C++. Файл с заданным Filename должен или существовать в текущем каталоге, или необходимо задать полный путь к файлу.

Если FilenameIsTunableInCodegen установлен в true, атрибуты файла, такие как формат аудио, количество звуковых каналов, частоты дискретизации и битрейта не являются настраиваемыми и должны совпадать с атрибутами прототипного звукового файла, который вы задаете через CodegenPrototypeFile свойство. Заданный прототипный звуковой файл определяет атрибуты и тип звуковых файлов, которые могут быть считаны сгенерированным кодом. Например, если заданным прототипным файлом является .wav файл, затем сгенерированный код может только считать .wav файлы. Если заданная прототипная частота дискретизации файла составляет 44 100 Гц, то сгенерированный код может считать файлы с частотой дискретизации 44 100 Гц.

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

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

Атрибуты звукового файла заданы в Filename (такие как формат аудио, количество звуковых каналов, частоты дискретизации и уровня укуса), должен совпадать с атрибутами звукового файла, заданного в CodegenPrototypeFile. Заданный прототипный звуковой файл определяет атрибуты и тип звуковых файлов, которые могут быть считаны сгенерированным кодом. Например, если заданным прототипным файлом является .wav файл, затем сгенерированный код может только считать .wav файлы. Если заданная прототипная частота дискретизации файла составляет 44 100 Гц, то сгенерированный код может считать файлы с частотой дискретизации 44 100 Гц.

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

ПлатформыРасширения файла
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

Зависимости

Это свойство применяется только когда FilenameIsTunableInCodegen свойство установлено в true.

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

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

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

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

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

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

Описание

пример

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)

Сгенерируйте файл MEX от функции с именем writeAudio. Эта функция читает звуковой сигнал из funky-stereo.wav файл, десятикратно уменьшает сигнал на коэффициент 2 и пишет подкошенный сигнал в заданный выходной файл.

dsp.AudioFileReader возразите читает звуковой сигнал из funky-stereo.wav файл. funky-stereo.wav файл имеет два канала, частоту дискретизации 44 100 Гц и немного уровня 1 411 Кбит/с. CodegenPrototypeFile свойство объекта установлено в rock-stereo.wav файл. rock-stereo.wav файл имеет те же атрибуты файла, такие как количество звуковых каналов, частоты дискретизации и битрейта, как funky-stereo.wav файл. dsp.FIRDecimator объект десятикратно уменьшает входной звуковой сигнал на коэффициент 2. dsp.AudioFileWriter возразите пишет подкошенный сигнал в выходной файл myoutput.wav. Из-за процесса децимации, выходной файл имеет частоту дискретизации 22 050 Гц и немного уровня 2 822 Кбит/с.

type writeAudio.m
function writeAudio(readfile,writefile)

afr = dsp.AudioFileReader('FilenameIsTunableInCodegen',true,...
    'CodegenPrototypeFile','rock-stereo.wav');
afr.Filename = readfile;
% Filename is funky-stereo.wav and CodegenPrototypeFile is
% rock-stereo.wav.

firdec = dsp.FIRDecimator(2,'auto'); % decimate by 2

afw = dsp.AudioFileWriter('SampleRate',22050);
afw.Filename = writefile;
while ~isDone(afr)
    audio = afr();
    audiod = firdec(audio);
    afw(audiod);
end

release(afr);
release(afw);
end

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

readfilename = coder.typeof('a',[1 500],[0 1]);
writefilename = coder.typeof('b',[1 500],[0 1]);

Сгенерируйте файл MEX с помощью codegen функция.

codegen writeAudio -args {readfilename,writefilename}
Code generation successful.
writeAudio_mex('funky-stereo.wav','myoutput.wav');

Ограничения

Для 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