Главная | Обратная связь | Поможем написать вашу работу!
МегаЛекции

Программные средства работы со звуком

Музыкальные редакторы, синтезаторы звуков, в частности, синтезаторы речи, системы автоматического распознавания речи, звуковые редакторы, голосовые навигаторы, позволяющие реализовать речевой интерфейс пользователя, программы диктовки, позволяющие преобразовывать речь в "письменный" текст, программы для улучшения качества фонограмм и др.

С появлением в 1989 г. звуковых карт, перед пользователями открылись новые возможности. И дело даже не в том, что на порядок улучшилось качество звука. Появилась звуковая подсистема - комплекс программно-аппаратных средств, предназначенный для:

- записи звуковых сигналов, поступающих от внешних источников, например, микрофона или магнитофона. В процессе записи входные аналоговые звуковые сигналы преобразуются в цифровые и далее могут быть сохранены на винчестере ПК;

- воспроизведения записанных ранее звуковых данных с помощью внешней акустической системы или головных телефонов (наушников), воспроизведения звуковых компакт-дисков;

- обработки звуковых сигналов: редактирования, объединения или разделения фрагментов сигнала, фильтрации, изменения его уровня и т.п.;

- генерирования с помощью синтезатора звучания музыкальных инструментов (мелодичных и ударных), а также человеческой речи и любых других звуков;

- микширования (смешивания) при записи или воспроизведении сигналов от нескольких источников;

- управления панорамой стереофонического звукового сигнала (кажущимся расположением источников звука) и уровнем сигнала в каждом канале при записи и воспроизведении;

- управления работой внешних электронных музыкальных инструментов через специальный интерфейс MIDI (Musical Instrument Device Interface);

- управление компьютером и ввод текста с помощью микрофона.

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

Наиболее популярными программными средствами для синтеза, обработки и воспроизведения звука являются Adagio, TiMidity, Playmidi, Tracker, Gmod, MikMod, XAudio, S3mod, Nspmod, Yampmod и др.

Обpаботка звука обычно направлена на получение новых звуков из уже существующих (например, голос робота), либо придание им дополнительных качеств или устранение существующих (например, добавление эффекта хора, удаление шума или щелчков).

Программы обработки цифрового звука (Cool Editor, Sound Forge, Samplitude, Software Audio Workshop) дают возможность прослушивать выбранные участки, делать вырезки и вставки, амплитудные и частотные преобразования, звуковые эффекты (эхо, реверберацию, фленжеp, дистошн), наложение других оцифровок, изменение частоты оцифровки, генерировать различные виды шумов, синтезировать звук.

Монтаж и редактирование. Состоит в вырезании из записи одних участков, вставке других, их замене, размножении и т.п. Практически каждый музыкальный редактор имеет такие возможности редактирования. Все современные звуко- и видеозаписи в той или иной мере подвергаются монтажу.

Амплитудные преобразования, например, усиление или ослабление звука.

Частотные (спектральные) преобразования, например, фильтрация – усиление или ослабление определенных полос частот.

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

Временные преобразования. Заключаются в добавлении к основному сигналу его копий, сдвинутых во времени на различные величины. При небольших сдвигах - это дает эффект размножения источника звука, при больших – эффект эха.

Формантные преобразования оперируют с формантами – характерными полосами частот, встречающимися в звуках, произносимых человеком. Каждому звуку соответствует свое соотношение амплитуд и частот нескольких формант, которое определяет тембр и разборчивость голоса.

Обработка речевой информации включает в себя синтез речи и автоматическое распознавание речи.

В настоящее время сфера применения синтезаторов речи непрерывно расширяется: используются различные автоматизированные информационно-справочные системы, системы автоматизированного контроля, способные голосом предупредить человека о состоянии контролируемого объекта, другие системы.

Разработаны устройства, позволяющие преобразовать письменный текст в соответствующее ему фонемное представление, что позволяет воспроизводить в виде речи произвольный текст, хранящийся в памяти компьютера. Немало усилий было положено на то, чтобы снабдить программы и операционные системы графическим интерфейсом пользователя. Сейчас развивается новое направление – речевой интерфейс пользователя. Голосовые навигаторы (PilotVoice, Listen, Just Voice, Speech Recognizer, QwickSwitchBitWare) управляют программами, в какой-то мере заменяя клавиатуру и мышь.

Растет популярность средств автоматического распознавания речи (Automated Speech Recognition, ASR). Системы ASR (программы диктовки DragonDictate, Office TalkKolvox Communication) преобразуют речь в закодированный "письменный" текст. Для этого производится спектральный анализ оцифрованной речи и определяются при помощи специальных математических методов минимальные звуковые единицы языка – фонемы.

Базы данных

Деятельность человека постоянно связана с накоплением информации об окружающей среде, ее отбором и хранением при решении различных задач. Информационные системы, основное назначение которых – информационное обеспечение пользователя, т.е. предоставление ему необходимых сведений из определенной предметной области, помогают человеку решать задачи быстрее и качественнее.

Любая информационная система предназначена для решения некоторого класса задач, включает в себя как хранилище данных, так и средства для реализации информационных процедур. Данные, хранящиеся в запоминающих устройствах, структурированные таким образом, чтобы их могли использовать различные программы, получили название баз данных (БД). Средства создания и управления этими данными получили название систем управления базами данных (СУБД).

База данных – множество данных, организованных для быстрого и удобного способа поиска и извлечения [4].

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

В состав СУБД входят:

- управляющие программы, обеспечивающие взаимосвязь с ОС, обработку команд пользователя, очередность их выполнения, контроль завершения операций и пр.;

- обрабатывающие программы, включая трансляторы с языков описания данных, языков запросов и языков программирования, редакторы, отладчики;

- сервисные программы, обеспечивающие удобный для пользователя интерфейс;

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

Банки данных хранят сведения из самых разных областей человеческой деятельности: это библиотечное и банковское дело, образование и медицина, управление предприятием и государством, право, экология, транспорт, туризм и многое другое. Количество информации, содержащейся в некоторых банках данных, измеряется миллиардами байт. Internet можно рассматривать как гигантский банк данных.

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

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

Физическая организация – это способ представления, размещения и хранения данных на носителе.

Логическая организация представляет собой модель структуры всей совокупности данных. По сути, это способ объединения данных в записи, это "взгляд" на данные с точки зрения их использования в прикладных программах.

Наиболее распространенными способами логической организации данных в БД являются табличный, древовидный, сетевой. Каждый способ имеет свои преимущества и недостатки. Выбор способа представления данных зависит от особенностей предметной области и тех задач, которые предполагается решать с помощью этих данных.

Системы управления базами данных обычно поддерживают какую-нибудь одну из моделей организации данных, т.е. с их помощью можно создать базу данных вполне определенного типа. Наиболее распространены реляционные СУБД. Это такие известные программные средства, как dBASE, Ребус, Lotus, FoxPro, Clipper, Access, Paradox и многие другие.

К СУБД иерархического типа можно отнести многие системы управления файлами, в частности Norton Commander, Far Manager, Диспетчер файлов и пр. Большинство СУБД, предназначенных для создания и ведения библиотечных баз данных, также иерархического типа.

СУБД сетевого типа используются преимущественно в автоматизированных системах управления и системах управления корпоративными бизнес-процессами. Сетевой тип логической организации данных в наибольшей степени отражает наличие самых разнообразных связей (сырьевых, кадровых, информационных, финансовых и пр.) между элементами производственного процесса.


ЯЗЫКИ ПРОГРАММИРОВАНИЯ

Языки программирования

 

В настоящее время в мире существует несколько сотен реально используемых языков программирования, для каждого из которых существует своя область применения. В зависимости от степени детализации предписаний обычно определяется уровень языка программирования - чем меньше детализация, тем выше уровень языка. По этому критерию можно выделить следующие уровни языков программирования:

- машинные;

- машинно-ориентированные (ассемблеры);

- машинно-независимые (языки высокого уровня).

Машинные языки и машинно-ориентированные языки - это языки низкого уровня, требующие указания мелких деталей процесса обработки данных.

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

Языки высокого уровня делятся на [3]:

- алгоритмические (Basic, Рascal, C и др.), которые предназначены для однозначного описания алгоритмов;

- логические (Рrolog, Lisр и др.), которые ориентированы не на разработку алгоритма решения задачи, а на систематическое и формализованное описание задачи с тем, чтобы решение следовало из составленного описания.

- объектно-ориентированные (Object Рascal, C++, Java и др.), в основе которых лежит понятие объекта, сочетающего в себе данные и действия над нами. Программа на объектно-ориентированном языке, решая некоторую задачу, по сути описывает часть мира, относящуюся к этой задаче. Описание действительности в форме системы взаимодействующих объектов естественнее, чем в форме взаимодействующих процедур.

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

При программировании на машинном языке программист может держать под своим контролем каждую команду и каждую ячейку памяти, использовать все возможности имеющихся машинных операций.

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

Язык Ассемблера – это система обозначений, используемая для представления в удобочитаемой форме программ, записанных в машинном коде.

Он позволяет программисту пользоваться текстовыми мнемоническими (то есть легко запоминаемыми человеком) кодами, по своему усмотрению присваивать символические имена регистрам компьютера и памяти, а также задавать удобные для себя способы адресации. Кроме того, он позволяет использовать различные системы счисления (например, десятичную или шестнадцатеричную) для представления числовых констант, использовать в программе комментарии и др. Перевод программы с языка ассемблера на машинный язык осуществляется специальной программой, которая также называется ассемблером и является, по сути, простейшим транслятором.

Транслятор (англ. translator - переводчик) - это программа-переводчик, которая преобразует программу, написанную на одном из языков высокого уровня, в программу, состоящую из машинных команд [2].

Трансляторы реализуются в виде компиляторов или интерпретаторов. С точки зрения выполнения работы компилятор и интерпретатор существенно различаются.

С помощью языка программирования создается не готовая программа, а только ее текст, описывающий ранее разработанный алгоритм. Чтобы получить работающую программу, надо этот текст либо автоматически перевести в машинный код (для этого служат программы-компиляторы) и затем использовать отдельно от исходного текста, либо сразу выполнять команды языка, указанные в тексте программы (этим занимаются программы-интерпретаторы).

Компилятор (англ. compiler - составитель, собиратель) читает всю программу целиком, делает ее перевод и создает законченный вариант программы на машинном языке, который затем и выполняется [2].

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

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

Интерпретатор (англ. interpreter - истолкователь, устный переводчик) переводит и выполняет программу строка за строкой [2].

Интерпретатор берет очередной оператор языка их текста программы, анализирует его структуру и затем сразу исполняет (обычно после анализа оператор транслируется в некоторое промежуточное представление или даже машинный код для более эффективного дальнейшего исполнения). Только после того как текущий оператор успешно выполнен, интерпретатор перейдет к следующему. При этом, если один и тот же оператор должен выполняться в программе многократно, интерпретатор всякий раз будет выполнять его так, как будто встретил впервые. Вследствие этого, программы, в которых требуется осуществить большой объем повторяющихся вычислений, могут работать медленно. Кроме того, для выполнения такой программы на другом компьютере там также должен быть установлен интерпретатор – ведь без него текст программы является просто набором символов.

По-другому, можно сказать, что интерпретатор моделирует некую виртуальную вычислительную машину, для которой базовыми инструкциями служат не элементарные команды процессора, а операторы языка программирования.

С помощью интерпретатора допустимо в любой момент остановить работу программы, исследовать содержимое памяти, организовать диалог с пользователем, выполнить сколь угодно сложные преобразования данных и при этом постоянно контролировать состояние окружающей программно-аппаратной среды, благодаря чему достигается высокая надежность работы. Интерпретатор при выполнении каждого оператора проверяет множество характеристик операционной системы и при необходимости максимально подробно информирует разработчика о возникающих проблемах. Кроме того, интерпретатор удобен для использования в качестве инструмента изучения программирования, так как позволяет понять принципы работы любого отдельного оператора языка.

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

Откомпилированные программы работают быстрее, но интерпретируемые проще исправлять и изменять.

Каждый конкретный язык ориентирован либо на компиляцию, либо на интерпретацию - в зависимости от того, для каких целей он создавался. Например, Паскаль обычно используется для решения довольно сложных задач, в которых важна скорость работы программ. Поэтому данный язык обычно реализуется с помощью компилятора.

С другой стороны, Бейсик создавался как язык для начинающих программистов, для которых построчное выполнение программы имеет неоспоримые преимущества.

Иногда для одного языка имеется и компилятор, и интерпретатор. В этом случае для разработки и тестирования программы можно воспользоваться интерпретатором, а затем откомпилировать отлаженную программу, чтобы повысить скорость ее выполнения.

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

 

Системы программирования

 

Система программирования - это система для разработки новых программ на конкретном языке программирования

Современные системы программирования обычно предоставляют пользователям мощные и удобные средства разработки программ. В них входят:

1. компилятор или интерпретатор;

2. интегрированная среда разработки;

3. средства создания и редактирования текстов программ;

4. обширные библиотеки стандартных программ и функций;

5. отладочные программы, т.е. программы, помогающие находить и устранять ошибки в программе;

6. "дружественная" к пользователю диалоговая среда;

7. многооконный режим работы;

8. мощные графические библиотеки; утилиты для работы с библиотеками

9. встроенный ассемблер;

10. встроенная справочная служба;

11. другие специфические особенности.

Популярные системы программирования – Turbo Basic, Quick Basic, Turbo Pascal, Turbo C.

В последнее время получили распространение системы программирования, ориентированные на создание Windows-приложений:

1. пакет Borland Delphi (Дельфи) - блестящий наследник семейства компиляторов Borland Pascal, предоставляющий качественные и очень удобные средства визуальной разработки. Его исключительно быстрый компилятор позволяет эффективно и быстро решать практически любые задачи прикладного программирования.

2. пакет Microsoft Visual Basic - удобный и популярный инструмент для создания Windows-программ с использованием визуальных средств. Содержит инструментарий для создания диаграмм и презентаций.

3. пакет Borland C++ - одно из самых распространённых средств для разработки DOS и Windows приложений.

4. система программирования на Java, позволяющая компилировать программы для компьютерной платформы, на которой она стоит в том же ключе как и любая другая,. В этом случае главными отличиями Java-программ или Java-applications является использование библиотеки Java-классов, которые обеспечивают разработку безопасных, распределенных систем. Язык Java предназначен для составления программ, которые работают в сетях. Программы, написанные на языке Java, часто используются для создания динамической рекламы в глобальной сети, которые «оживляют» статические картинки Web-страниц и тем самым привлекают внимание пользователей. Достоинством языка является то, что он независим от конкретной архитектуры ЭВМ, и Java-приложения могут работать на различных типах ЭВМ, под управлением различных операционных систем. При работе интерпретатора языка Java исходные тексты транслируются в псевдокод виртуальной Java-машины, который чаще всего называют байт-кодом.


ЛИТЕРАТУРА

1. Акулов О.А. Информатика: учебник / О.А. Акулов, Н.В. Медведев. – М.: Омега-П, 2007. – 270 с.

2. Алексеев А.П. Информатика 2007 / А.П. Алексеев. – М.: СОЛОН-ПРЕСС, 2007. – 608 с.

3. Вьюхин В.В. Информатика и вычислительная техника: учеб. пособие для инженерных специальностей / В.В. Вьюхин; под ред. В.Н. Ларионова. - М.: Дрофа, 1992. – 286 с.

4. Гейн А.Г. Основы информатики и вычислительной техники / А.Г. Гейн. - М.: Просвещение, 1992. – 245 с.

5. Информатика: практикум по технологии работы на компьютере / под ред. Н.В. Макаровой. - 2-е изд. - М.: Финансы и статистика, 1998. – 384 с.

6. Макарова Н.В. Информатика: практикум по технологии работы на компьютере / Н.В. Макарова, С.Н. Рамин. – М.: Академия, 1997. – 384 с.

7. Макарова Н.В. Информатика: учеб. пособие для вузов / Н.В. Макарова, Н.В. Бройдо. – М.: Академия, 2003. – 768 с.

8. Могилев А.В. Информатика: учеб. пособие для вузов / А.В. Могилев, Н.И. Пак, Е.К. Хеннер; под ред. Е.К. Хеннера. - М.: Академия, 2000. – 346 с.

9. Острейковский В.А. Информатика / В.А. Острейковский. М.: Высш. шк., 2000. – 235 с.

10. Угринович Н.Д. Практикум по информатике и информационным технологиям: учеб. пособие для общеобразовательных учреждений / Н.Д. Угринович,

11. Л.Л. Босова, Н.И. Михайлова. – М.: Бином, 2002. – 400 с.

Поделиться:





Воспользуйтесь поиском по сайту:



©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...