Разработка элементов расширенной архитектуры компьютерной системы работы со звуком
В статье сформулированы требования, выдвигаемые в современных условиях к компьютерной системе для работы со звуком, приведена структурная схема такой системы, рассмотрена организация хранения звуковых данных. В качестве промежуточного результата разработки архитектуры модуля обработчика приведена...
Збережено в:
Дата: | 2010 |
---|---|
Автори: | , |
Формат: | Стаття |
Мова: | Russian |
Опубліковано: |
Інститут проблем штучного інтелекту МОН України та НАН України
2010
|
Назва видання: | Штучний інтелект |
Теми: | |
Онлайн доступ: | http://dspace.nbuv.gov.ua/handle/123456789/56282 |
Теги: |
Додати тег
Немає тегів, Будьте першим, хто поставить тег для цього запису!
|
Назва журналу: | Digital Library of Periodicals of National Academy of Sciences of Ukraine |
Цитувати: | Разработка элементов расширенной архитектуры компьютерной системы работы со звуком / А.В. Жук, С.С. Панфилов // Штучний інтелект. — 2010. — № 3. — С. 204-209. — Бібліогр.: 8 назв. — рос. |
Репозитарії
Digital Library of Periodicals of National Academy of Sciences of Ukraineid |
irk-123456789-56282 |
---|---|
record_format |
dspace |
spelling |
irk-123456789-562822014-02-16T03:13:44Z Разработка элементов расширенной архитектуры компьютерной системы работы со звуком Жук, А.В. Панфилов, С.С. Интеллектуальные речевые технологии. Компьютерная обработка естественно-языковых текстов и семантический поиск В статье сформулированы требования, выдвигаемые в современных условиях к компьютерной системе для работы со звуком, приведена структурная схема такой системы, рассмотрена организация хранения звуковых данных. В качестве промежуточного результата разработки архитектуры модуля обработчика приведена объектная модель цепочки обработчиков звуковых данных. В статті сформульовано вимоги, які висуваються до комп’ютерної системи роботи зі звуком в сучасних умовах, наведено структурну схему такої системи, розглянуто організацію збереження звукових даних. Який проміжний результат створення архітектури модуля-обробника наведено об’єктну модель послі- довності обробників звукових даних. There the requirements to modern computer system for sound processing are formulated in the article, the structure of such a system and sound data storage organization are discussed. Also, object-oriented model of sound data processors sequence is showed as an intermediate milestone towards sound processor module architecture. 2010 Article Разработка элементов расширенной архитектуры компьютерной системы работы со звуком / А.В. Жук, С.С. Панфилов // Штучний інтелект. — 2010. — № 3. — С. 204-209. — Бібліогр.: 8 назв. — рос. 1561-5359 http://dspace.nbuv.gov.ua/handle/123456789/56282 004.934.1'1 ru Штучний інтелект Інститут проблем штучного інтелекту МОН України та НАН України |
institution |
Digital Library of Periodicals of National Academy of Sciences of Ukraine |
collection |
DSpace DC |
language |
Russian |
topic |
Интеллектуальные речевые технологии. Компьютерная обработка естественно-языковых текстов и семантический поиск Интеллектуальные речевые технологии. Компьютерная обработка естественно-языковых текстов и семантический поиск |
spellingShingle |
Интеллектуальные речевые технологии. Компьютерная обработка естественно-языковых текстов и семантический поиск Интеллектуальные речевые технологии. Компьютерная обработка естественно-языковых текстов и семантический поиск Жук, А.В. Панфилов, С.С. Разработка элементов расширенной архитектуры компьютерной системы работы со звуком Штучний інтелект |
description |
В статье сформулированы требования, выдвигаемые в современных условиях к компьютерной системе для работы со звуком, приведена структурная схема такой системы, рассмотрена организация хранения звуковых данных. В качестве промежуточного результата разработки архитектуры модуля обработчика приведена объектная модель цепочки обработчиков звуковых данных. |
format |
Article |
author |
Жук, А.В. Панфилов, С.С. |
author_facet |
Жук, А.В. Панфилов, С.С. |
author_sort |
Жук, А.В. |
title |
Разработка элементов расширенной архитектуры компьютерной системы работы со звуком |
title_short |
Разработка элементов расширенной архитектуры компьютерной системы работы со звуком |
title_full |
Разработка элементов расширенной архитектуры компьютерной системы работы со звуком |
title_fullStr |
Разработка элементов расширенной архитектуры компьютерной системы работы со звуком |
title_full_unstemmed |
Разработка элементов расширенной архитектуры компьютерной системы работы со звуком |
title_sort |
разработка элементов расширенной архитектуры компьютерной системы работы со звуком |
publisher |
Інститут проблем штучного інтелекту МОН України та НАН України |
publishDate |
2010 |
topic_facet |
Интеллектуальные речевые технологии. Компьютерная обработка естественно-языковых текстов и семантический поиск |
url |
http://dspace.nbuv.gov.ua/handle/123456789/56282 |
citation_txt |
Разработка элементов расширенной архитектуры компьютерной системы работы со звуком / А.В. Жук, С.С. Панфилов // Штучний інтелект. — 2010. — № 3. — С. 204-209. — Бібліогр.: 8 назв. — рос. |
series |
Штучний інтелект |
work_keys_str_mv |
AT žukav razrabotkaélementovrasširennojarhitekturykompʹûternojsistemyrabotysozvukom AT panfilovss razrabotkaélementovrasširennojarhitekturykompʹûternojsistemyrabotysozvukom |
first_indexed |
2025-07-05T07:33:30Z |
last_indexed |
2025-07-05T07:33:30Z |
_version_ |
1836791429848891392 |
fulltext |
3Ж
«Искусственный интеллект» 3’2010 204
УДК 004.934.1'1
А.В. Жук, С.С. Панфилов
Институт проблем искусственного интеллекта МОН Украины и НАН Украины, г. Донецк
juk@iai.dn.ua, panfilovss@yandex.ru
Разработка элементов расширенной архитектуры
компьютерной системы работы со звуком
В статье сформулированы требования, выдвигаемые в современных условиях к компьютерной сис-
теме для работы со звуком, приведена структурная схема такой системы, рассмотрена организация
хранения звуковых данных. В качестве промежуточного результата разработки архитектуры модуля
обработчика приведена объектная модель цепочки обработчиков звуковых данных.
Введение
На сегодняшний день разрабатывается множество проектов, связанных с цифровой
обработкой звуковых сигналов и основанных на ней задачах: идентификацией диктора,
распознаванием речи, музыки и т.д. Существует ряд библиотек, которые инкапсулируют
сам процесс обработки [1-3], реализуя некоторую внутреннюю программную среду для
хранения промежуточных результатов и обмена данными. В то же время для исследова-
теля, к примеру, в области распознавания речи, использование подобных библиотек воз-
можно лишь для сравнения качества своих результатов с результатами распознавателя,
реализованного в библиотеке. Исследователь создаёт свою библиотеку, свой програм-
мный комплекс, в котором, и это совершенно естественно, будут использованы специфи-
ческие структуры данных, механизмы обмена ими, механизмы оповещения и т.д. Это
приводит к ситуации, когда результаты разработок по одной и той же тематике, получен-
ные разными исследователями, оказываются несовместимыми на уровне интерфейсов,
и это – в лучшем случае, поскольку несовместимость может находиться выше – на уровне
средств разработки. Решение таких ситуаций требует дополнительных временных и ма-
териальных затрат, причём зачастую, если отсутствует несовместимость на уровне средств
разработки, проблема решается просто путём внедрения части программного кода из
одного проекта в другой проект. В случае взаимодействия двух учреждений в рамках
одного проекта помимо указанных выше сложностей возникает необходимость в сохра-
нении авторских прав на программную реализацию того или иного алгоритма, что авто-
матически исключает возможность слияния части программного кода.
Всё вышесказанное определяет актуальность создания такой архитектуры компью-
терной системы работы со звуком, которая бы:
1) изначально по своей структуре была модульной;
2) предусматривала относительно простое внедрение новых модулей от сторон-
них разработчиков;
3) подразумевала сохранение авторских прав разработчиков модулей;
4) по возможности устраняла проблемы с несовместимостью форматов данных,
используемых в обмене информацией между модулями;
5) обеспечивала обратную совместимость форматов данных и интерфейсов модулей
в различных версиях протокола данной архитектуры;
6) предоставляла возможность избирательного оповещения модулей об измене-
нии обрабатываемых данных;
7) позволяла формировать произвольные последовательности обработки с исполь-
зованием имеющихся в наличии модулей.
Разработка элементов расширенной архитектуры компьютерной системы...
«Штучний інтелект» 3’2010 205
3Ж
Разработка архитектуры компьютерной системы предполагает создание спе-
цификаций на форматы данных, протоколы обмена ими, интерфейсы модулей и т.д.
Целью данной работы является проектирование общей структуры компью-
терной системы работы со звуком, а также определение формата хранения звуковых
данных и разработка объектной модели обработчиков звука в рамках вышеупомяну-
той архитектуры.
Проектирование общей структуры системы
Как было сказано выше, одним из требований, предъявляемых к компьютерной сис-
теме работы со звуком, является её модульная структура. С точки зрения проектируе-
мой архитектуры модулями являются абсолютно все части обычной системы цифровой
обработки звука: отображение, загрузка и сохранение, воспроизведение и запись, обра-
ботка и распознавание и т.д. Эти модули объединяются вокруг ядра системы, которое
реализует функции хранилища данных. В хранилище могут находиться данные как пре-
допределённых, так и пользовательских типов. Предопределённые типы данных предла-
гается сделать расширяемыми. Причём базовые характеристики расширенного типа дан-
ных должны быть доступными модулю, предназначенному для обработки базового типа
данных. Такую расширяемость достаточно легко реализовать через полиморфизм при
наследовании [4]. В качестве предопределённых типов данных для предметной области,
связанной с цифровой обработкой звуковых сигналов, выступают, как минимум:
1) звуковой сигнал;
2) метки, отражающие внутреннюю структуру сигнала.
Основным механизмом взаимодействия между модулями должны быть сообще-
ния, причём каждый модуль должен иметь возможность определять список сообще-
ний, которые он должен получать.
В состав системы должны также входить диспетчер модулей и диспетчер оче-
рёдности обработки. Диспетчер модулей – это подсистема, предназначенная для орга-
низации загрузки модулей в процессе работы системы, а также для перенаправления
сообщений. Диспетчер очерёдности обработки – это подсистема, основным назначением
которой является формирование произвольных последовательностей обработки с испо-
льзованием имеющихся в наличии модулей, а также организация выполнения заданной
последовательности обработки.
Предлагаемая структура компьютерной системы работы со звуком изображена
на рис. 1.
Рисунок 1 – Предлагаемая структура компьютерной системы работы со звуком
3Ж Жук А.В., Панфилов С.С.
«Искусственный интеллект» 3’2010 206
Формат хранения звуковых данных
Современные звуковые карты позволяют захватывать и воспроизводить звуковые
данные в нескольких различных форматах, получаемых как комбинации допустимых зна-
чений частоты дискретизации и глубины квантования. Возможные значения этих пара-
метров приведены в табл. 1.
Таблица 1 – Возможные значения частоты дискретизации и глубины квантования
Частота дискретизации (Гц) Глубина квантования (бит)
8000 8
11025 16
22050 24
44100
48000
96000
Курсивом в табл. 1 обозначены значения параметров, получивших широкое рас-
пространение в последнее время, но не поддерживаемых форматом PCM [5]. Безуслов-
но, оба упомянутых показателя играют важную роль при АЦП и ЦАП [6]. В то же время в
цифровой обработке звука методы работы с частотным представлением сигнала активно
оперируют его частотой дискретизации, а вот глубина квантования в основном влияет на
тип элементов массива, представляющего звуковой сигнал в памяти ЭВМ. Необхо-
димость поддержки разных значений глубины квантования приводит к необходимости
создания нескольких одинаковых функций, принимающих в качестве параметров масси-
вы элементов разного типа. Более того, при запуске обработчика звука нужно выбирать
правильную функцию для текущей глубины квантования. Частично справиться с этим
позволяет использование шаблонных функций, что убирает дублирование кода, однако
необходимость в выборе правильных шаблонных параметров при вызове таких функций
всё равно остаётся. Ещё одним существенным недостатком шаблонных функций является
невозможность их использования в динамических библиотеках в качестве экспортируемых.
В качестве альтернативного подхода можно предложить использование для
описания одного отсчёта звука типа данных, преобразование в который не вызовет
потери информации для любого из используемых на сегодня значений глубины
квантования. Следует заметить, что подобный подход применяется и в современных
звуковых редакторах. Как показала практика, наибольшую общность в данном случае
обеспечивает хранение последовательности отсчётов звука в виде массива чисел с
плавающей точкой, принимающих значения из интервала [-1;1]. Поэтому именно
такое представление предлагается использовать для хранения звуковых данных в
хранилище и при обмене данными между модулями.
В качестве основы для хранилища данных рассматриваемой системы была разра-
ботана иерархия классов, изображенная на рис. 2.
Основным здесь является класс SoundContainer. Он обеспечивает хранение зву-
ковых данных (в виде структуры SoundBuffer), а также удобный доступ к ним. Кроме
того, данный класс способен принимать и возвращать данные разной глубины кванто-
вания. Структура SoundBuffer служит для хранения массива отсчётов звукового сигнала.
Разработка элементов расширенной архитектуры компьютерной системы...
«Штучний інтелект» 3’2010 207
3Ж
Рисунок 2 – Диаграмма классов, обеспечивающих хранение звуковых данных
Список полей этой структуры приведен в табл. 2. Именно SoundBuffer выступает в
качестве основного средства обмена звуковыми данными в рассматриваемой системе
работы со звуком.
Таблица 2 – Поля структуры SoundBuffer
№ п/п Тип данных Имя переменной Описание
1. float* pData Массив отсчётов звуковых данных. Все значения
принадлежат промежутку [-1;1].
2. int iSize Количество элементов в массиве pData.
3. int iSampleRate Частота дискретизации звукового сигнала, содержа-
щегося в данном буфере.
4. bool bDisposable Флаг, указывающий, нужно ли в деструкторе очи-
щать выделенную под pData память.
SoundSerializer – это базовый класс, обеспечивающий интерфейс для работы с муль-
тимедийными файлами. Основные операции – это сохранение и загрузка. Потомки
данного класса должны реализовывать поддержку различных форматов звуковых фай-
лов и методов сжатия звука. Реализация класса SoundSerializer_Wave сделала возмож-
ной работу со звуковыми файлами формата PCM Wave. Классы SoundSerializer_Mp3 и
SoundSerializer_Ogg приведены как примеры возможных расширений функционально-
сти системы.
Классы BasicSoundPlayer и BasicSoundRecorder представляют собой реализации
интерфейсов для записи и воспроизведения звука, в них реализована работа с би-
блиотекой OpenAL [7].
Объектная модель цепочки обработчиков звуковых данных
На данный момент разработана объектная модель последовательности обработчи-
ков звуковых данных, достаточно близко реализующая ту часть приведенной на рис. 1
системы работы со звуком, которая отвечает за подключение модулей и определение
последовательности использования модулей при обработке звука (диспетчер модулей и
диспетчер очередности обработки). В данной модели класс Chain является как диспет-
чером очередности обработки, так и диспетчером модулей. Класс Action является базо-
вым классом для любого обработчика звука и определяет интерфейс, который должен
предоставлять каждый такой обработчик. При разработке этого интерфейса были исполь-
3Ж Жук А.В., Панфилов С.С.
«Искусственный интеллект» 3’2010 208
зованы соображения следующего характера: обработчик звука определяется и опери-
рует тремя характеристиками: типом обработчика, параметрами обработчика и собствен-
но обрабатываемым звуком. Тип обработчика задаётся классом, его реализующим. Таким
образом, обработчику указанного типа необходимо передать параметры обработки и об-
рабатываемый звуковой сигнал. Описание функций, входящих в класс Action, приве-
дено в табл. 3.
Таблица 3 – Функции класса Action
№ п/п Тип возвращаемого
значения
Имя
функции
Принимаемые
параметры Описание
1. void SetParams sActionParams*
newParam
Устанавливает множество пара-
метров обработчика. Содержимое
sActionParams должно соответство-
вать типу обработчика. Копирова-
ние данных при этом не произво-
дится.
2. void Apply SoundBuffer&
sbData
Запускает обработку звука, содержа-
щегося в sbData. Результат обработ-
ки помещается в sbData.
3. sActionParams* GetParams – Возвращает множество парамет-
ров обработчика. Как и в случае с
SetParams, копирование данных не
производится
Диаграмма классов [8] этой объектной модели приведена на рис. 3.
Рисунок 3 – Диаграмма классов объектной модели
последовательности обработчиков звуковых данных
Разработка элементов расширенной архитектуры компьютерной системы...
«Штучний інтелект» 3’2010 209
3Ж
Класс Action содержит единственное поле – указатель на структуру sActionParams.
Возможность передачи различным обработчикам разного набора данных в каче-
стве параметров реализована через иерархию структур, базовой в которой является струк-
тура sActionParams. Эта структура содержит только одно поле данных – переменную
Type. Данная переменная объявлена как защищённая, инициализируется в конструкторе
и предназначена для хранения информации о типе параметризуемого объекта – обра-
ботчика звука. Такой подход позволяет обработчику проверять подаваемые на вход пара-
метры на правильность с точки зрения используемых типов данных. Недостатком такого
подхода на данный момент является невозможность проверить подаваемые данные не
на полное соответствие, а на совместимость. Это можно было бы сделать, реализовав
сохранение в sActionParams легко получаемой информации об иерархии наследования.
В этом случае можно было бы искать первого общего предка, изымать из полученных
данных общую на уровне найденного предка информацию, а все остальные, непроини-
циализированные, значения параметров устанавливать по умолчанию.
Выводы
В работе были рассмотрены требования, выдвигаемые к архитектуре компьютерной
системы работы со звуком, спроектирована структура такой системы, описаны объект-
ные модели хранилища и последовательности обработчиков звуковых данных. Недо-
статком полученных в результате реализации этих моделей частей программного кода
является необходимость их статического включения в проект (хотя даже на этом этапе
стыковка фрагментов кода, написанных разными разработчиками, значительно упрости-
лась). Дальнейшие работы предполагают разработку спецификации сообщений системы,
уточнение модели хранилища данных и спецификаций интерфейсов модулей, добавле-
ние возможности идентификации типов используемых данных во время выполнения.
Литература
1. LADSPA [Электронный ресурс]. – Режим доступа : http://ru.wikipedia.org/wiki/LADSPA
2. Virtual Studio Technology [Электронный ресурс]. – Режим доступа : URL: http://ru.wikipedia.
org/wiki/Virtual_Studio_Technology
3. DirectX [Электронный ресурс]. – Режим доступа : http://ru.wikipedia.org/wiki/DirectX
4. Пол А. Объектно-ориентированное программирование на С++/ Пол А. – СПб. : Бином, 2001. – 464 с.
5. Радзишевский А.Ю. Основы аналогового и цифрового звука / Радзишевский А.Ю. – М. : Издатель-
ский дом «Вильямс», 2006. – 288 с., ил.
6. Рабинер Л.Р. Цифровая обработка речевых сигналов / Л.Р. Рабинер, Р.В. Шафер; [пер. с англ. под
ред. М.В. Назарова и Ю.Н. Прохорова]. – М. : Радио и связь, 1981. – 496 с., ил.
7. OpenAL [Электронный ресурс]. – Режим доступа : URL : http://ru.wikipedia.org/wiki/OpenAL
8. Буч Г. Объектно-ориентированный анализ и проектирование с примерами приложений на С++/
Буч Г. – СПб. : Бином, 1998. – 560 с.
О.В. Жук, С.С. Панфілов
Розробка елементів розширеної архітектури комп’ютерної системи роботи зі звуком
В статті сформульовано вимоги, які висуваються до комп’ютерної системи роботи зі звуком в сучасних
умовах, наведено структурну схему такої системи, розглянуто організацію збереження звукових даних.
Який проміжний результат створення архітектури модуля-обробника наведено об’єктну модель послі-
довності обробників звукових даних.
A. Zhuk, S. Panfilov
Development of Extended Computer System Architecture for Sound Processing
There the requirements to modern computer system for sound processing are formulated in the article, the structure
of such a system and sound data storage organization are discussed. Also, object-oriented model of sound data
processors sequence is showed as an intermediate milestone towards sound processor module architecture.
Статья поступила в редакцию 08.07.2010.
|