dsp.AudioFileWriter

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

Описание

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

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

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

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

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

Создание

Описание

afw = dsp.AudioFileWriter возвращает Системный объект средства записи звукового файла, afw. Этот объект пишет аудиосэмплы в звуковой файл.

afw = dsp.AudioFileWriter(File name) возвращает Системный объект средства записи звукового файла, afw. Этот объект имеет Filename набор свойств к File name.

пример

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

Свойства

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

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

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

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

Задайте имя звукового файла как вектор символов или строковый скаляр.

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

Задайте, какой формат аудиофайла объект пишет. На Microsoft® платформы, выберите один из 'AVI', 'WAV', 'FLAC', 'OGG', 'MPEG4', 'WMA'. На Linux® платформы, выберите один из 'AVI', 'WAV', 'FLAC', или 'OGG'. На macOS платформах выберите один из 'AVI', 'WAV', 'FLAC', 'OGG', или 'MPEG4'. Эти сокращения соответствуют следующим форматам файлов:

  • 'AVI': Чередование аудио и видео

  • 'WAV': Microsoft WAVE Files

  • 'WMA': Windows Media® Аудио

  • 'FLAC': Бесплатный кодек без потерь

  • 'OGG': Ogg/Vorbis Сжатый Звуковой файл

  • 'MPEG4': Файл MPEG-4 AAC — можно использовать оба .m4a и .mp4 расширения

Значением по умолчанию является 'WAV'.

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

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

Задайте тип алгоритма сжатия использование средства записи звукового файла, чтобы сжать аудиоданные. Сжатие уменьшает размер звукового файла. Выберите 'None (uncompressed)' сохранить несжатые аудиоданные в файл. Другие опции доступное отражение алгоритмы сжатия звука установлены в вашей системе. Можно использовать заполнение клавишей Tab, чтобы запросить допустимый Compressor опции для вашего компьютера путем ввода H.Compressor = ' и затем нажатие клавиши TAB.

Зависимости

Это свойство применяется при записи WAV или файлов AVI на Windows® платформы.

Задайте тип несжатых аудиоданных, записанных в файл как 'int16''double'единственный, 'inherit', 'int24'int32, или 'uint8'.

Зависимости

Это свойство только применяется когда записывающие несжатые файлы WAV.

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

Синтаксис

Описание

пример

afw(audio) записи одна система координат аудиосэмплов, audio, к выходному файлу, заданному Filename. audio или вектор для моно аудиовхода или M-by-N матрица для N - аудиовход канала соответственно.

Входные параметры

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

Одна система координат аудиосэмплов, возвращенных как вектор-столбец или матрица. Вход вектор-столбца указывает на моно аудиовход. M-by-N матрица указывает на N - аудиовход канала.

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

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

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

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

release(obj)

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

stepЗапустите алгоритм Системного объекта
releaseВысвободите средства и позвольте изменения в значениях свойств Системного объекта и введите характеристики
resetСбросьте внутренние состояния Системного объекта

Примеры

свернуть все

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

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

afr = dsp.AudioFileReader('OutputDataType',...
   'double');
firdec = dsp.FIRDecimator; % decimate by 2
afw = dsp.AudioFileWriter...
   ('speech_dft.wav', ...
   'SampleRate', afr.SampleRate/2);

while ~isDone(afr)
     audio = afr();
     audiod = firdec(audio);
     afw(audiod);
end

release(afr);
release(afw);

Сгенерируйте файл 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');

Ограничения

Следующие специфичные для платформы ограничения применяются при записывании этих файлов:

Windows 7 macOS
  • Только частоты дискретизации 44 100 Гц и 48 000 Гц поддерживаются для формата файла MPEG-4 AAC. Для других форматов файлов нет никакого ограничения на частоту дискретизации.

  • Только моно или выходные параметры стерео позволены для формата файла MPEG-4 AAC. Для всех других форматов позволены больше чем два канала аудиовыхода.

  • Только моно или выходные параметры стерео позволены для формата файла MPEG-4 AAC. Для всех других форматов позволены больше чем два канала аудиовыхода.

  • Выходные данные дополнены на обоих передняя и задняя часть сигнала с дополнительными выборками тишины.

    Энкодер Windows AAC помещает резкое постепенное появление и постепенное исчезновение на звуковых сигналах, вызывая сигналы быть немного более длинным в выборках, когда записано в диск.

  • Не все частоты дискретизации поддерживаются, несмотря на то, что API Audio Toolbox Mac явным образом не задает ограничение.

  • Минимум 1 025 выборок на канал должен быть записан в файл MPEG-4 AAC.

Алгоритмы

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

  • Объект FileFormat свойство не поддерживает форматы файлов только для видео.

  • Объект не имеет никакого соответствующего свойства для параметра Write. Объект пишет только звуковое содержимое в файлы.

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

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

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

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

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