Найти в Дзене
Tehno_lab

Функции записи и воспроизведения звуковых сигналов в LabView

Функции записи и воспроизведения звуковых сигналов позволяют считывать (вводить) сигнал со входа звуковой карты в массив данных и записывать (выводить) сигнал из массива данных на выход звуковой карты, записывать данные в звуковой файл с расширением .wav или считывать такой файл, а также воспроизводить звуковой файл с расширением .wav на выходе звуковой карты. В палитру функций (рис. 1а) входят подпалитры функций вывода (Output) (рис. 1б), ввода (Input) (рис. 1в) и функции записи-считывания звуковых файлов (File) (рис. 1г). В каждую подпалитру входят функции высокого и низкого уровней.

Рис.1.Вид основной палитры (а) и дополнительных подпалитр (б)-(г) функций записи и воспроизведения звуковых сигналов.
Рис.1.Вид основной палитры (а) и дополнительных подпалитр (б)-(г) функций записи и воспроизведения звуковых сигналов.
-2

Виртуальный прибор (ВП) вызывает воспроизведение системой звукового сигнала. Вход частота (Гц) (frequency (Hz)) определяет частоту звука в герцах. Вход длительность (мс) (duration (msec)) задает длительность звука в миллисекундах. LabVIEW игнорирует эти параметры, если на входе использовать системное предупреждение? (use system alert?) установлено состояние ИСТИНА (по умолчанию). При установке на входе использовать системное предупреждение? значения ЛОЖЬ этот ВП формирует синхронный звуковой сигнал, используя заданные частоту и длительность.

· Воспроизвести осциллограмму (Play Waveform)

Рис. 2. Вариант возможного  подключения Экспресс ВП
Рис. 2. Вариант возможного подключения Экспресс ВП
Рис.3. Вид диалогового окна конфигурирования Экспресс ВП 
Воспроизвести осциллограмму (Play Waveform)
Рис.3. Вид диалогового окна конфигурирования Экспресс ВП Воспроизвести осциллограмму (Play Waveform)

Экспресс‑ВП воспроизводит конечную выборку данных на выходе звукового устройства. Он автоматически конфигурирует задачу вывода и освобождает ее после завершения вывода. Вид диалогового окна конфигурирования Экспресс‑ВП показан на рис. 3. При нажатии кнопки проверить устройство (Test Device) на выходе звукового устройства воспроизводится сигнал с частотой 500 Гц в течение приблизительно 1/4 с. Если с помощью контекстного меню иконки Экспресс‑ВП перейти от Экспресс‑ВП к стандартному подприбору (SubVI) (строка Open Front Panel), а затем, последовательно открывая лицевые панели и переходя к блок‑диаграммам подприборов, дойти до блок‑диаграммы ВП Sound Output Write Simple (DBL2) (рис. 4), то можно увидеть, что она содержит последовательно соединенные элементарные функции управления звуковым устройством, входящие в состав подпалитры Вывод (Output). Ниже приведены пояснения к исполнению этих функций.

Рис.4. Блок диаграмма ВП Sound Output Write Simple (DBL2)
Рис.4. Блок диаграмма ВП Sound Output Write Simple (DBL2)

1. ВП FormatFromData (DBL) выделяет из массива осциллограмм первую и извлекает из нее информацию о частоте и объеме выборок, а также о числе каналов.

2. ВП Конфигурировать выходное звуковое устройство (Sound Output Configure) конфигурирует выходное звуковое устройство для генерации данных.

-6

number of samples/ch - количество выборок/ch определяет количество выборок на канал в буфере.

sample mode - режим выборки определяет, собираетесь ли вы записывать только один раз (конечные выборки) или непрерывно (непрерывные выборки).

device ID (идентификатор устройства) - это устройство ввода или вывода, к которому вы обращаетесь для выполнения звуковой операции. Как правило, большинству пользователей следует выбрать значение по умолчанию, равное 0. Значение колеблется от 0 до n–1, где n - количество устройств ввода или вывода на компьютере.

sound format (звуковой формат) задает скорость воспроизведения, количество каналов и количество битов на выборку звуковой операции. Значения для каждого из этих элементов управления зависят от вашей звуковой карты.

error in (no error) — описывает условия ошибки, которые возникают перед запуском этого узла. Этот ввод выдает стандартную ошибку в функциональности.

task ID —идентификатор задачи возвращает идентификационный номер, связанный с конфигурацией на указанном устройстве.

error out —этот вывод обеспечивает стандартную функциональность вывода ошибок.

3. ВП Записать данные в выходное звуковое устройство (Sound Output Write (DBL)) записывает данные в звуковое устройство. ВП является полиморфным.

-7

task ID (идентификатор задачи) - возвращает идентификационный номер, связанный с конфигурацией определенного устройства. Этот номер может быть передан другим ВП для выполнения звуковых операций.

data —данные записывают любые звуковые данные во внутренние буферы. Для многоканальных звуковых данных данные представляют собой массив сигналов, где каждый элемент массива представляет собой один канал.

timeout (sec) — определяет максимальную длительность ожидания в секундах выполнения звуковой операции. Этот ВП возвращает ошибку при истечении времени. По умолчанию значение на этом входе равно 10. При установке –1 ВП ожидает неопределенно долго. При установке 0 ВП немедленно возвращает ID задачи, в то время как звук продолжает воспроизводиться.

task ID out — является обработанной звуковой операцией, первоначально переданной параметру task ID.

4. ВП Начать вывод данных выходного звукового устройства (Sound Output Start) начинает воспроизведение данных. Этот ВП необходим, если только перед этим был вызван ВП Sound Output Stop.

-8

5. ВП Ожидать завершения вывода данных (Sound Output Wait) ожидает завершения вывода всего звукового колебания на выходе звукового устройства.

-9

6. ВП Освободить выходное звуковое устройство (Sound Output Clear) останавливает воспроизведение звука устройством, очищает буфер, возвращает задачу в начальное состояние и освобождает ресурсы, связанные с задачей. Задача становится неактивной.

-10
-11

ВП возвращает информацию о текущем состоянии выходного звукового устройства. Выход воспроизводится? (is playing?) показывает состояние воспроизведения выходного звукового устройства. Выход громкость (volume) возвращает громкость звуковой операции, одно значение на канал. 0 соответствует отсутствию звука, а 100 – максимальной громкости.

-12

ВП устанавливает громкость на выходе звукового устройства. ВП является полиморфным и имеет опции установки громкости для одного или двух каналов. Вход громкость (volume) устанавливает громкость звуковой операции, одно значение на канал. 0 соответствует отсутствию звука, а 100 – максимальной громкости.

-13

ВП открывает файл и начинает немедленное его воспроизведение.

Ниже приведены краткие описания функций из подпалитры ввод.

Рис.5. Вариант возможного подключения Экспресс ВП
Рис.5. Вариант возможного подключения Экспресс ВП
Рис.6. Вид диалогового окна конфигурирования Экспресс ВП Получить звуковое колебание (Acquire Sound)
Рис.6. Вид диалогового окна конфигурирования Экспресс ВП Получить звуковое колебание (Acquire Sound)

Экспресс‑ВП получает данные из звукового устройства. Он автоматически конфигурирует задачу ввода, получает данные и освобождает задачу после завершения ввода. Вид диалогового окна конфигурирования Экспресс‑ВП показан на рис. 6.

Если с помощью контекстного меню иконки Экспресс‑ВП перейти от Экспресс‑ВП к стандартному подприбору (SubVI) (строка Open Front Panel), а затем, последовательно открывая лицевые панели и переходя к блок‑диаграммам подприборов, дойти до блок‑диаграммы ВП subSoundAcquire (рис. 7), то можно увидеть, что она содержит последовательно соединенные элементарные функции управления звуковым устройством, входящие в состав подпалитры Ввод (Input). Ниже приведены пояснения к исполнению этих функций.

Рис.7. Блок диаграмма ВП subSoundAcquire
Рис.7. Блок диаграмма ВП subSoundAcquire

1. ВП Конфигурировать входное звуковое устройство (Sound Input Configure) конфигурирует входное звуковое устройство для сбора и передачи данных в буфер.

-17

2. ВП Считать данные входного звукового устройства (Sound Input Read (DBL)) считывает данные из входного звукового устройства. Пользователь должен выбрать необходимую реализацию полиморфного ВП.

-18

3. ВП Остановить входное звуковое устройство (Sound Input Stop) останавливает сбор данных из устройства. Для повторного запуска сбора данных после выполнения этого ВП необходимо использовать ВП Начать накопление данных входного звукового устройства (Sound Input Start).

-19
-20

4. ВП Освободить входное звуковое устройство (Sound Input Clear) останавливает сбор данных, очищает буфер, возвращает задачу в начальное состояние и освобождает ресурсы, связанные с задачей. Задача становится неактивной.

-21

Для создания и извлечения файлов с расширением .wav служат ВП из подпалитры Файлы (Files).

-22

ВП записывает данные из массива осциллограмм в файл с расширением .wav. Этот ВП автоматически открывает, производит запись и закрывает wav‑файл. Вход путь (path) определяет абсолютный путь путь к звуковому файлу. ВП возвращает ошибку, если путь относительный или недостоверный. По умолчанию на вход подается Не путь (<No A Path>).

Вход данные(data) записывает любые звуковые данные во внутренние буферы. Каждый элемент массива осциллограмм представляет кластер, содержащий следующие элементы:

· t0 – игнорируется;

· dt – интервал выборки данных звукового файла;

· Y – звуковые данные.

Вход бит на выборку (bits per sample) устанавливает качество каждой выборки в битах. Возможна установка 8 бит и 16 бит (по умолчанию). Блок‑диаграмма ВП (рис.8) содержит последовательно включенные ВП Открыть звуковой файл (Sound File Open), Записать звуковой файл (Sound File Write) и Закрыть звуковой файл (Sound File Close).

Рис.8. Блок диаграмма ВП Простая запись звукового файла (Sound File Write Simple)
Рис.8. Блок диаграмма ВП Простая запись звукового файла (Sound File Write Simple)
-24

ВП считывает данные из файла с расширением .wav в массив осциллограмм. Этот ВП автоматически открывает, считывает и закрывает wav‑файл. Вход число выборок на канал (number of samples/ch) определяет число выборок на канал, считываемых из файла. –1 делает считывание всех выборок. Вход режим позиции (position mode) вместе со входом смещение позиции (position offset) устанавливает начало операции считывания. Абсолютный (Absolute) начинает операцию с начала файла и смещения позиции, поэтому смещение отсчитывается относительно начала файла. Относительный (Relative) (по умолчанию) начинает операцию с текущего положения метки файла и смещения позиции. Выход данные (data) содержит те же компоненты, что и одноименный вход рассмотренной выше функции Простая запись звукового файла. Отличие компонента t0 заключается в том, что он содержит начальное время осциллограммы. LabVIEW устанавливает в отметке времени значение 00:00 1 января 1904 года по Гринвичу. Выход смещение (offset) показывает новое положение метки файла относительно начала файла в единицах выборок. По умолчанию значение равно 0.

Блок‑диаграмма ВП приведена на рис. 9. Она также включает ВП открытия и закрытия звукового файла и ВП Считывание звукового файла Считывание звукового файла (Sound File Read).

-25

Рис.9. Блок диаграмма ВП Простое считывание звукового файла (Sound File Read Simple)
Рис.9. Блок диаграмма ВП Простое считывание звукового файла (Sound File Read Simple)

ВП Информация о звуковом файле (Sound File Info) извлекает данные о файле .wav. Этот ВП принимает либо путь, либо номер ссылки.

-27

total number of samples/ch- возвращает общее количество выборок на канал в файле .wav.

sound format- возвращает частоту дискретизации, количество каналов и количество битов на выборку в файле .wav.

Ниже на рис. 10 и 11 в качестве примеров использования функций записи и воспроизведения звуковых сигналов и файлов приведены блок-диаграммы ВП Генерировать звук (Generate Sound) и Запись звукового колебания в файл (Sound Input to File) из библиотеки примеров Sound2 NI Example Finger.

Рис.10. Блок диаграмма ВП Генерировать звук (Generate Sound).
Рис.10. Блок диаграмма ВП Генерировать звук (Generate Sound).

Пояснения к рисунку:

1. Конфигурирует звуковое устройство для непрерывной работы.

2. До нажатия пользователем кнопки остановки ВП или прихода ошибки:

· генерирует осциллограмму с заданной частотой и амплитудой;

· отображает сгенерированную осциллограмму на графике;

· устанавливает громкость выходного устройства на заданном уровне;

· воспроизводит сгенерированную осциллограмму путем записи данных в выходное устройство.

3. Очищает выходное звуковое устройство и отображает ошибки при их появлении.

Рис.11. Блок-диаграмма ВП Запись звукового колебания в файл (Sound Input to File).
Рис.11. Блок-диаграмма ВП Запись звукового колебания в файл (Sound Input to File).

Пояснения к рисунку:

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

2. конфигурирует устройство для непрерывного ввода звукового сигнала;

3. до нажатия пользователем кнопки стоп или поступления ошибки:

· принимает с микрофона количество выборок, заданное на входе число выборок и отображает их на графическом индикаторе;

· записывает собранные данные в файл;

4. очищает входное звуковое устройство и закрывает файл. Отображает ошибки в случае их возникновения.