dsp. Audioplayer

Проигрывайте аудиоданные с помощью аудио устройства компьютера

Совместимость

Примечание

Объект dsp.AudioPlayer будет удален в будущем релизе. Существующие экземпляры объекта продолжают запускаться. Для нового кода используйте объект audioDeviceWriter вместо этого.

Описание

Объект AudioPlayer проигрывает аудиоданные с помощью аудио устройства компьютера.

Проигрывать аудиоданные с помощью аудио устройства компьютера:

  1. Задайте и настройте свой объект аудиоплеера. Смотрите Конструкцию.

  2. Вызовите step, чтобы проигрывать аудиоданные согласно свойствам dsp.AudioPlayer. Поведение step характерно для каждого объекта в тулбоксе.

Эта Система object™ буферизует данные из аудио устройства с помощью процесса, проиллюстрированного следующей фигурой.

Примечание

При запуске в R2016b, вместо того, чтобы использовать метод step, чтобы выполнить операцию, заданную Системным объектом, можно вызвать объект с аргументами, как будто это была функция. Например, y = step(obj,x) и y = obj(x) выполняют эквивалентные операции.

Конструкция

H = dsp.AudioPlayer возвращает объект аудиоплеера, H, который проигрывает аудиосэмплы с помощью устройства аудиовыхода в режиме реального времени.

H = dsp.AudioPlayer('PropertyName',PropertyValue, ...) возвращает объект аудиоплеера, H, с каждым набором свойств к заданному значению.

H = dsp.AudioPlayer(SAMPLERATE,'PropertyName',PropertyValue, ...) возвращает объект аудиоплеера, H, с набором свойств SampleRate к SAMPLERATE и другим заданным набором свойств к заданным значениям. Этот Системный объект поддерживает вход переменного размера. Если вы используете сигналы переменного размера с этим Системным объектом, можно испытать звуковых уволенных, когда размер входа структурирует увеличения. Чтобы избежать этого поведения, используйте сигнал максимального ожидаемого размера, когда вы сначала вызовете step, чтобы начать пробегать этот Системный объект.

Свойства

DeviceName

Устройство, в которое можно отправить аудиоданные

Задайте устройство, в которое можно отправить аудиоданные. Значением по умолчанию является Default, который является устройством стандартного вывода компьютера. Можно использовать заполнение клавишей Tab, чтобы запросить допустимые присвоения DeviceName для компьютера путем ввода H.DeviceName = ' и затем нажатия клавиши TAB.

SampleRate

Количество выборок в секунду отправляется в аудио устройство

Задайте количество выборок в секунду в сигнале как целое число. Значением по умолчанию является 44100. Это свойство является настраиваемым.

DeviceDataType

Тип данных используется устройством

Задайте тип данных, используемый аудио устройством, чтобы получить аудиоданные как Determine from input data type, 8-bit integer, 16-bit integer, 24-bit integer или 32-bit float. Значением по умолчанию является Determine from input data type.

BufferSizeSource

Источник Buffer Size

Задайте, как определить buffer size как Auto или Property. Значением по умолчанию является Auto. Когда это свойство установлено в Auto, соответствующий buffer size на основе SampleRate вычисляется.

BufferSize

Buffer size

Задайте размер буфера, который аудиоплеер возражает использованию, чтобы передать с аудио устройством как целое число. BufferSize является половиной размера буфера звуковой карты. Кадр данных не может быть передан очереди, пока устройство не освобождает буфер, который вводит latency. Задержка является временем, это берет устройство, чтобы освободить очередь и буфер. BufferSize должен быть меньшим, чем эффективная длительность очереди. Это свойство является настраиваемым. Настройка этого свойства включает баланс между задержкой устройства и возможностью понижающихся данных (недостаточное наполнение буфера).

Это свойство применяется, когда вы устанавливаете свойство BufferSizeSource на Property. Значением по умолчанию является 4096. Чтобы установить BufferSize на значение кроме значения по умолчанию, сначала измените BufferSizeSource на 'Property'. Можно выбрать BufferSize в списке свойств.

QueueDuration

Размер очереди в секундах

Задайте длину аудио-очереди в секундах. Значением по умолчанию является 1.0. Это свойство является настраиваемым. Цель очереди состоит в том, чтобы управлять компромиссом между уволенным данных и задержкой. Задержка вычисляется следующим уравнением: latency=QueueDuration×SampleRate+2×BufferSizeSampleRate.

Чтобы минимизировать задержку, понизьте QueueDuration или установите его на 0. Однако имейте в виду, что уволенные данных или потеря системной робастности могут закончиться. Свойство QueueDuration задает длительность сигнала в секундах, которые могут быть буферизованы во время симуляции. Это значение является максимальным отрезком времени, что предоставление данных Системного объекта может изолировать требование данных устройства. Если уровень пропускной способности MATLAB® ниже, чем уровень пропускной способности устройства, недостаточное наполнение буфера происходит. Можно использовать OutputNumUnderrunSamples, чтобы контролировать недогрузку. Чтобы исправить недогрузку, сделайте длительность очереди больше, чем буфер. Если уровень пропускной способности MATLAB выше, чем уровень пропускной способности устройства, переполнение буфера происходит, заставляя Системный объект ожидать прежде, чем записать данные очереди. Чтобы свести к минимуму вероятность уволенных, проверки Системного объекта, чтобы проверить длительность очереди являются, по крайней мере, столь же большими как максимум buffer size и формата кадра. Если это не, длительность очереди автоматически установлена в это максимальное значение. В начале симуляции очередь переполнена тишиной. На каждом временном шаге Системный объект отправляет буфер выборок от верхней части очереди к аудио устройству. Если очередь не содержит достаточно данных, чтобы полностью заполнить буфер, Системный объект заполняет остающийся фрагмент буфера с нулями.

OutputNumUnderrunSamples

Включите вывод количества недогрузки

Установите на true, чтобы вывести количество нулевых выборок, вставленных из-за недогрузки очереди начиная с последней возможности к методу step. Значением по умолчанию является false.

ChannelMappingSource

Источник отображения канала устройства

Задайте, определить ли канал, сопоставляющий как 'Auto' или как 'Property'. Если вы устанавливаете значение ChannelMappingSource к 'Auto', поле ChannelMapping представляется неактивное. Если вы устанавливаете это свойство на 'Property', вектор, заданный в поле ChannelMapping, используется, чтобы направить вывод.

ChannelMapping

Отображение канала данных к устройству

Вектор допустимых индексов канала, чтобы представлять отображение между данными и устройством выходные каналы. Термин Channel Mapping относится к 1 к 1 отображению, которое сопоставляет каналы на выбранном аудио устройстве к каналам данных. Когда вы проигрываете аудио, отображение канала позволяет вам задавать который канал аудиоданных вывести определенный канал аудиоданных. По умолчанию поле ChannelMapping [1:MAXOUTPUTCHANNELS], где MAXOUTPUTCHANNELS зависит от выбранного устройства.

Методы

шагЗапишите аудио в устройство аудиовыхода
Характерный для всех системных объектов
release

Позвольте изменения значения свойства Системного объекта

Примеры

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

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

Примечание: dsp.AudioFileReader и Системные объекты audioDeviceWriter не поддержаны в MATLAB Online.

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

AFR = dsp.AudioFileReader; % points to a default audio file
AP = audioDeviceWriter('SampleRate',AFR.SampleRate);
while ~isDone(AFR)
  audio = AFR();
  nUnderrun = AP(audio);
  if nUnderrun > 0
    fprintf('Audio player queue underrun by %d samples.\n'...
	     ,nUnderrun);
  end
end
release(AFR);            % close the input file
release(AP);             % close the audio output device

Поиск и устранение проблем

Выполнение исполняемого файла вне MATLAB

Чтобы запустить ваше сгенерированное приложение независимого исполняемого файла в Shell, необходимо установить среду на следующее:

ПлатформаКоманда
Mac

setenv DYLD_LIBRARY_PATH $LD_LIBRARY_PATH: $MATLABROOT/bin/maci64 (csh/tcsh)

export DYLD_LIBRARY_PATH $LD_LIBRARY_PATH: $MATLABROOT/bin/maci64 (Bash)

Linux

setenv LD_LIBRARY_PATH $LD_LIBRARY_PATH: $MATLABROOT/bin/glnxa64 (csh/tcsh)

export LD_LIBRARY_PATH $LD_LIBRARY_PATH: $MATLABROOT/bin/glnxa64 (Bash)

Windows

set PATH = $MATLABROOT\bin\win64;%PATH%

Алгоритмы

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

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