Почитайте!

Нас читают

Статьи о программировании и не только

Mail.Ru

Rambler's Top100

Programming Blogs - BlogCatalog Blog Directory

Караоке в домашних условиях

28.11.2007 от Иван Ширко

Бывают в жизни моменты, когда душа требует песни, притом собственного исполнения. Но обеспечить себе достойное музыкальное сопровождение могут далеко не все, да и слова не всегда вспоминаются в нужный момент. А если и слова знаешь и можешь примерно в тему побренчать на гитаре, то в минуты особого веселья бывает трудновато перемещать непослушные пальцы по грифу в поисках нужного аккорда… Все эти проблемы решает караоке: музыка играет без твоего участия, слова перед глазами, к тому же показывается, когда эти слова нужно петь. Караоке можно организовать по-разному: начиная с сопровождающего оркестра с бегающими перед носом людьми с плакатами с текстом и заканчивая крутым музыкальным автоматов, который даст почувствовать себя талантливым певцом даже при полном отсутствии музыкального слуха. Мы же рассмотрим реализацию караоке на домашнем компьютере в виде специальных программ. Сейчас песни-караоке наиболее часто встречаются в виде файлов *.kar, но бывают, разумеется, и альтернативные форматы. Например, довольно популярным является формат *.st3.
vanBasco's Karaoke Player
Эта программа для проигрывания караоке, несмотря на свою нулевую стоимость и маленький размер, обладает довольно большими возможностями. Присутствуют все основные возможности хорошего аудио-плеера: управление проигрыванием (пауза, перемотка и т.п.), работа с playlist'ами, анализатор спектра. Кроме этого есть и "навороты": притягивание окон (как в Winamp'e), управление скоростью воспроизведения, преобразование караоке в midi-файл, есть даже виртуальное пианино… Правда, программа умеет проигрывать только файлы форматов *.kar и *.mid, но проблему воспроизведения других караошек можно решить при помощи специальных программ-преобразователей. Скачать этот плеер можно здесь: www.vanBasco.com (796 кБ).
Karakan
Этот пакет состоит из двух бесплатных программ:
1) KPlay – служит для воспроизведения караошек в формате *.kar. В отличие от vanBasco's KarPlayer, это очень простенький проигрыватель, который делает только свою основную функцию. В принципе, довольно удобный. На мой взгляд, отображение слов песни у него реализовано даже лучше, чем у вышеописанного конкурента, но возможность перемотки караошки была бы, конечно, не лишней.
2) Karakan – а это уже редактор караошек, точнее не редактор, а создатель, т.к. редактирование готовых *.kar не поддерживается. Караошки создаются на основе midi-файлов, а текст и разметка песни вводятся в формате STF (Song Text Format). С этим форматом легко разобраться после прочтения его описания в системе помощи программы, но всё же создание караоке здесь напоминает создание HTML-документа в Блокноте. Как говорится, дело вкуса, но некая автоматизация всё же не помешала бы…
"Весит" этот пакет 540 кБ – www.geocities.com/takawadanl/karakan.html
VocalJam
Эта программа не похожа на предыдущие. Нет, здесь тоже играет музыка, и нужные слова появляются в нужный момент на экране. И дело даже не в том, что за полную версию программы надо платить, нет… VocalJam не просто даёт возможность спеть какую-нибудь песню, но она может ещё и научить петь и даже выслушать певца, а потом выставить ему оценку за исполнение. Разумеется, никакого сложного анализа пения пользователя не происходит: баллы ставятся лишь за попадание в такт музыке и за правильность высоты пения. Конечно, не очень приятно от компьютера получать нелестные отзывы о своих певческих способностях, поэтому можно в настройках программы отключить вывод всяких комментариев, а оставить одни баллы. Только не забудьте оставить вылючённой для записи все громкости, кроме микрофона, иначе за ваше пение будет приниматься музыка. В демо-версии программы также есть поддержка "скинов" интерфейса, анализатор частот и даже нотная интерпретация песни. Также имеется немаленькая (несколько десятков) подборка популярных композиций, а если понадобится ещё, то зайдите на сайт программы – www.VocalJam.narod.ru. Идея VocalJam хорошая, но мне программа показалась скорее любительской, чем профессиональной разработкой. Демо-версия VocalJam занимает 7.7 МБ.
Когда мне попалась на глаза ещё одна программа для проигрывания караоке – RealOrche – то я понял, что что-то здесь не так. Дело в том, что это практически программы близнецы: одинаковый интерфейс, примерно одинаковые возможности, VocalJam даже не запускается вместе с RealOrche, считая её своей копией, и наоборот! Либо работают над программами одни и те же люди, либо плагиат налицо. На мой взгляд RealOrche выглядит намного профессиональней, чем VocalJam, но если хочется петь русские песни, то придётся выбрать вторую программу, ведь она "сделана в России". Кстати, RealOrche умеет не только проигрывать все популярные форматы караошек, но и редактировать их. Скачать RealOrche можно на сайте программы: www.realorche.com.br, размер, в зависимости от версии, 4-5 МБ.
Где взять караошки?
В большом количестве песни в виде караоке можно найти на www.karaoke.ru. Но если этого окажется мало, то загляните сюда: www.parkov6.narod.ru (иностранные песни) и www.parkov7.narod.ru (русские песни).
Ну что ж, остаётся только пожелать приятных вам песнопений и терпения вашим соседям.
Иван Ширко
ishirko@gmail.com

Рубрики: Прочее | Комментариев нет »

Microsoft Agent. Часть I

28.11.2007 от Иван Ширко

Microsoft, несмотря на всю льющуюся на них критику, постоянно предоставляет разработчикам новые возможности. Несколько лет назад появилась очень интересная технология – Microsoft Agent. Где можно было наблюдать её применение? Например, в популярном переводчике Magic Gooddy. Основной "фишкой" данной программы является утёнок Gooddy, который свободно может говорить на русском и английском языках. Более того, этот утёнок может ещё и "понимать" некоторые голосовые команды, произнесённые в микрофон. У Gooddy, ко всему прочему, всё время меняется настроение: если долго не пользоваться его услугами, то он начинает грустить, а при переводе он выглядит самым счастливым утёнком в мире. Этот утёнок со всеми его возможностями является наглядным примером применения технологии MsAgent.

Вот таким вступлением я открыл небольшую серию статей, посвящённых Microsoft Agent. В первой части мы рассмотрим аспекты использования MsAgent в web-страницах. Представьте себе, сидите вы в интернете, открываете некую web-страничку, а тут из лампы вылазит Джин из мультфильма "Аладдин" и начинает что-нибудь вам рассказывать. А если вы вдруг наведёте курсор мыши на какую-нибудь гиперссылку, то Джин подлетит к ней и доходчиво объяснит, куда вы попадёте, нажав на ссылку… Здорово? Вот приблизительно такую страничку мы и сотворим в данной статье.

Теперь самое время установить MsAgent. Для этого нужно отправиться на страницу http://www.microsoft.com/msagent/ и скачать оттуда следующие файлы:
1) Сам Microsoft Agent – http://activex.microsoft.com/activex/controls/agent2/MSagent.exe (395 кб), обязательно;
2) Перевод на русский язык различных диалогов, надписей и т.п. – http://activex.microsoft.com/activex/controls/agent2/AgtX0419.exe (128 кб), необязательно;
3) один из персонажей (например, Джин из мультфильма "Аладдин") – http://download.microsoft.com/download/0/0/c/00cde5f8-321d-4325-baae-eb27f1bde85f/Genie.exe (1.6 Mb), необязательно, можно работать и с другим персонажем;
4) компонент для произношения текстов (для русского языка) – http://activex.microsoft.com/activex/controls/agent2/lhttsrur.exe (2.9 Mb), необязательно;
5) Поддержка SAPI (нужна для произношения текстов, в Win2000 должна быть установлена изначально) – http://activex.microsoft.com/activex/controls/sapi/spchapi.exe (824 кб), необязательно.

После установки всех этих компонентов можно приступать к разработке приложений, использующих технологию MsAgent. Начнём мы, как уже было сказано, с web-страниц. Сразу замечу, что MsAgent накладывает некоторые ограничения на пользователя:
– MsAgent не будет работать ни в одном web-браузере, кроме Internet Explorer (разработчик ведь Microsoft). Версия IE должна быть не ниже, чем 3.02;
– у посетителя должно быть установлено необходимое программное обеспечение (его мы уже скачали).
Теперь сделаем маленькую пробную страничку. Откройте самый продвинутый HTML-редактор с названием Блокнот (некоторым он известен как NotePad). Запишите в нём следующие строки:

<html>   

<head>   

 <title>Microsoft Agent</title>   

 <Object ID="Agent" Width=0 Height=0   

 ClassID="CLSID:D45FD31B-5C6E-11D1-9EC1-00C04FD7081F"   

 CodeBase="#VERSION=2,0,0,0">   

 </Object>   

 <script language=javascript>   

 <!--   

  var Genie;   

  function LoadAgent()   

   {   

    Agent.Characters.Load ("Genie", "Genie.acs");   

    Genie = Agent.Characters.Character("Genie");   

    Genie.Show();   

//А здесь можно написать другие команды   

   }   

  function UnLoadAgent()   

   { Agent.Characters.Unload("Genie");}   

 //-->   

 </script>   

</head>   

<body   

 onload="LoadAgent()"   

 onunload="UnLoadAgent()">   

<html>

Теперь сохраните данный код в файл *.html и откройте полученную страничку при помощи Internet Explorer. После загрузки страницы из дыма появится Джин, поприветствует вас поклоном и произнесёт на русском языке приветственную фразу. Давайте посмотрим, как мы добились такого результата.
В тэге <object> мы подключили к нашей странице объект AGENT, который предоставит нам все возможности технологии MsAgent. После этого на языке JavaScript записали две функции – LoadAgent и UnLoadAgent. А затем в тэге указали, что эти функции должны вызываться при загрузке и закрытии страницы соответственно. После строчек


Agent.Characters.Load ("Genie", "Genie.acs");
Genie = Agent.Characters.Character("Genie");

мы можем "давать команды" Джину: Genie.Show; Genie.Play; Genie.Speak; и т.д. Давайте рассмотрим некоторые команды более подробно:
Команда Пояснения
Show Служит для появления персонажа на экране
Hide Скрывает персонажа
MoveTo(X, Y) Перемещает персонажа в точку с координатами (X; Y), координаты задаются в пикселях
Play("Имя анимации"); Проигрывает заданную анимацию.
GestureAt(X, Y) Персонаж указывает рукой в точку с координатами (X; Y)
Think("Мысль") Персонаж "думает Мысль", т.е. звука нет, но над персонажем появляется текст Мысли.
Speak("Фраза") Персонаж произносит Фразу.
Вот несколько анимаций для персонажа "Джин":

MsAgent - персонаж Джинн

Пример: Genie.Play("Write");

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

Тэг Значения и описание
\Chr="значение"\ Изменяет голос персонажа:
"Normal" (по умолчанию) – нормальный голос
"Monotone" – монотонный голос
"Whisper" – шёпот
\Emp\ На следующем за тэгом слове делается ударение
\Map="spokentext"="balloontext"\
Персонаж вслух произносит строку "spokentext", а над ним отображается строка "balloontext". Т.е. персонаж как бы думает одно, а говорит совершенно другое.
\Pau=значение\
Делает паузу, которая длится "значение" миллисекунд
\Pit=значение\
Устанавливает частоту произношения в Герцах
\Rst\ Устанавливает все параметры в исходное состояние
\Spd=значение\ Устанавливает скорость произношения текста в "словах в минуту"
\Vol=значение\ Устанавливает громкость произношения текста (от 0 до 65535)

Пример для JavaScript: Genie.Speak("\\chr=\"Whisper\"\\\\Pit=18400\\\\Spd=100\\Привет!");

С помощью представленных команд можно создать довольно эффектную и интерактивную страничку. Про другие команды и свойства мы поговорим в следующей части, когда перейдём к Delphi, а пока рассмотрим несколько аспектов использования MsAgent в web-страничках. Предположим, вы поместили страничку в интернете. Тогда её могут просматривать три вида пользователей:

1) С браузером Internet Explorer и установленной MsAgent;
2) С браузером Internet Explorer без установленной MsAgent;
3) С другим браузером.

Именно эти три случая мы должны обрабатывать в нашей страничке. Сделать это не так и сложно. Вначале запишем функцию HaveAgent, которая будет определять, установлены ли компоненты MsAgent в системе:

Function HaveAgent()
  Dim agent
  HaveAgent = False
  On Error Resume Next
  Set agent = CreateObject("Agent.Control.1")
  HaveAgent = IsObject(agent)
End Function

Теперь на основе этой функции можно написать шаблон странички, которая будет предусматривать все возможные варианты:

<SCRIPT LANGUAGE=VBSCRIPT>   

 If HaveAgent() Then   

  document.write "<H2 align=center>MsAgent найден</H2>"   

 Else   

'Microsoft Agent control was not found.   

  document.write "<H2 align=center> MsAgent не найден</H2>"   

 End If   

 Function HaveAgent()   

  Dim agent   

  HaveAgent = False   

  On Error Resume Next   

  Set agent = CreateObject("Agent.Control.1")   

  HaveAgent = IsObject(agent)   

 End Function   

</SCRIPT>

Вот и всё! По этому небольшому шаблону можно писать web-странички с использованием MsAgent, которые будут корректно отображаться во всех браузерах. Для примера я создал страничку, которую можно найти по адресу http://www.agentsample.narod.ru

На этом мы заканчиваем рассмотрение использования технологии Microsoft Agent в web-страничках. В следующей части мы перейдём к Delphi.

Иван Ширко
ishyrko@gmail.com

Рубрики: MsAgent | Комментариев нет »

Позже »