Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Общие вопросы > Научить приложение в Делфи говорить


Автор: Alex103 6.3.2005, 08:56
Как можно научить приложение в Делфи разговаривать на Русском языке с помощью Speech или чего-то другого. Подскажите Реально ли это!!!

Автор: Pakshin A. S. 6.3.2005, 10:34
Sorry, за тупой вопрос... но что такое Speech
Добавлено @ 10:40
Так... нашел... smile
У меня в XP все рабтает по самому простому методу..
Код

program Project1;

uses windows, ComObj, ActiveX;

var voice: OLEVariant;

begin
CoInitialize(nil);
voice := CreateOLEObject('SAPI.SpVoice');
voice.Speak('Hello World!', 0);
end.

Delphi 7

Кстати, кайфная вещь!!!! Лично долго ржал над голосом...

Автор: Alex 6.3.2005, 12:12
Pakshin A. S., если я не ошибаюсь, человек хотел что бы ему русский текст читали. smile

Автор: Pakshin A. S. 6.3.2005, 12:51
М-да... не усмотрел.. smile
Кстати, а что это за параметр "0"

Автор: The MASTER 6.3.2005, 13:56
Кажется я в арсенал кидал пример, используй TMicrosoftAgent:

Для начала добавить компонент TMicrosoftAgent, для этого нажимаем:
Component -> Import ActiveX Control -> ищешь "Microsoft Agent Control 2" или что-то вэтом роде, далее нажимаешь Install, затем заходишь на вкладку компонентов ActiveX, оттуда кидаешь на форму компонент TAgent и далее код:

Код

uses
   Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
   Dialogs, StdCtrls, OleCtrls, AgentObjects_TLB; //Добавить AgentObjects_TLB;


Код

private
   { Private declarations }
   Offcat: IAgentCtlCharacter; //Добавить Offcat: IAgentCtlCharacter;


В событие формы onCreate добавить:

Код

procedure TForm1.FormCreate(Sender: TObject);
begin
Agent1.Characters.Load('Offcat',ExtractFilePath(Application.ExeName)+'\Offcat.acs');
Offcat:=Agent1.Characters.Character('Offcat');
Offcat.Show(False);
end;


Далее создать новую кнопку и ввести:

Код

procedure TForm1.Button1Click(Sender: TObject);
begin
Offcat.Speak(edit1.text,'');
end;


Взять персоонажа можно либо из приложения Microsoft Office, либо из папки: C:\WINDOWS\srchasst\chars, от туда в папку со своим проектом копируй файл rover.acs, переименуй его в Offcat, первая буква "О" обязательно большая! Всё удачи, если будут проблемы пиши сюда!


Автор: Pakshin A. S. 6.3.2005, 13:58
Вот пролема: НЕ ГОВОРИТ! Даже гудди брал... smile

Автор: The MASTER 6.3.2005, 14:05
А Мерлина? По идеи Мерлин говорит но его нужно или взять из офиса или скачать 2 МБ!

Автор: Pakshin A. S. 6.3.2005, 14:10
Я поставил обычного Гудди... smile Прямо из переводчика...

Автор: The MASTER 6.3.2005, 14:24
Так, у меня работает только на Мерлине и Джине, вот скачайте этот модуль тексто-речевой преобразователь.

http://m-coders.com.ru/lhttsrur.zip
Добавлено @ 14:34
Кстати при установки Microsoft Office выше 97, модуль преобразования устанавливается вместе с комплектом! smile

Автор: Alex 6.3.2005, 15:52
Значит так:
1. Вначале нужно отправиться на страницу http://www.microsoft.com/msagent/downloads/user.asp и скачать оттуда необходимые файлы:

2. Сам Microsoft Agent - http://activex.microsoft.com/activex/controls/agent2/MSagent.exe (395 Кб), обязательно.
3. Перевод на русский язык различных диалогов, надписей и т.п. - http://activex.microsoft.com/activex/controls/agent2/AgtX0419.exe (128 Кб), необязательно.
4. Один из персонажей (например, Джин из мультфильма "Аладдин") - http://download.microsoft.com/download/0/0/c/00cde5f8-321d-4325-baae-eb27f1bde85f/Genie.exe (1.6 Mb), обязательно.
5. Компонент для произношения текстов (для русского языка) - http://activex.microsoft.com/activex/controls/agent2/lhttsrur.exe (2.9 Mb), необязательно.
6. Поддержка SAPI (нужна для произношения текстов, в Win2000 должна быть установлена изначально) - http://activex.microsoft.com/activex/controls/sapi/spchapi.exe (824 Кб), необязательно.
7. Все это установить.
8. Далее устанавливаем ActiveX компонент агента в Delphi (Component -> Import ActiveX Control) В списке находим строку "Microsoft Agent Control 2" выделяем ее и нажимаем на кнопку "Install". На все вопросы отвечаем утвердительно.
9. Открываем новый проект.
10. Бросаем на форму компонент "Agent" c вкладки "ActiveX" и кнопку.
11. В обработчике кнопки пишем:
Код

 Agent1.Characters.Load('Genie', 'Genie.acs');
 { Установка начальных координат }
 Agent1.Characters['Genie'].Left := 0;
 Agent1.Characters['Genie'].Top  := 0;
 { Появление персонажа с анимацией }
 Agent1.Characters['Genie'].Show(False);
 { Приветствие }
 Agent1.Characters['Genie'].Play('Greet');
 { Читаем содержимое Memo1 }
 Agent1.Characters['Genie'].Speak('Текст, который нужно прочитать', '');
 { Скрываем персонажа с анимацией }
 Agent1.Characters['Genie'].Hide(False);

Добавлено @ 16:01
Полезные ссылки:
http://www.hardnsoft.ru/magazine.php?issue=106&article=560&page=1
http://www.kv.by/index2003141102.htm
http://delphiworld.narod.ru/base/msagent.html
http://www.mista.ru/articles1c/hare/article.17.html

Автор: Alex103 7.3.2005, 02:15
Цитата(Pakshin @ 6.3.2005, 10:34)
Sorry, за тупой вопрос... но что такое Speech
Добавлено @ 10:40
Так... нашел... smile
У меня в XP все рабтает по самому простому методу..
Код

program Project1;

uses windows, ComObj, ActiveX;

var voice: OLEVariant;

begin
CoInitialize(nil);
voice := CreateOLEObject('SAPI.SpVoice');
voice.Speak('Hello World!', 0);
end.

Delphi 7

Кстати, кайфная вещь!!!! Лично долго ржал над голосом...

Те класно но у меня Милениум и приходиться качать вот уже 10% скачал.
Добавлено @ 02:17
Цитата(Alex @ 6.3.2005, 12:12)
Pakshin A. S., если я не ошибаюсь, человек хотел что бы ему русский текст читали. smile

Точно должно читать на русском или на Уркаинском (кстати тоже вариант).

Автор: Alex103 7.3.2005, 02:52
Цитата(Alex @ 6.3.2005, 15:52)
Значит так:
1. Вначале нужно отправиться на страницу http://www.microsoft.com/msagent/downloads/user.asp и скачать оттуда необходимые файлы:

2. Сам Microsoft Agent - http://activex.microsoft.com/activex/controls/agent2/MSagent.exe (395 Кб), обязательно.
3. Перевод на русский язык различных диалогов, надписей и т.п. - http://activex.microsoft.com/activex/controls/agent2/AgtX0419.exe (128 Кб), необязательно.
4. Один из персонажей (например, Джин из мультфильма "Аладдин") - http://download.microsoft.com/download/0/0/c/00cde5f8-321d-4325-baae-eb27f1bde85f/Genie.exe (1.6 Mb), обязательно.
5. Компонент для произношения текстов (для русского языка) - http://activex.microsoft.com/activex/controls/agent2/lhttsrur.exe (2.9 Mb), необязательно.
6. Поддержка SAPI (нужна для произношения текстов, в Win2000 должна быть установлена изначально) - http://activex.microsoft.com/activex/controls/sapi/spchapi.exe (824 Кб), необязательно.
7. Все это установить.
8. Далее устанавливаем ActiveX компонент агента в Delphi (Component -> Import ActiveX Control) В списке находим строку "Microsoft Agent Control 2" выделяем ее и нажимаем на кнопку "Install". На все вопросы отвечаем утвердительно.
9. Открываем новый проект.
10. Бросаем на форму компонент "Agent" c вкладки "ActiveX" и кнопку.
11. В обработчике кнопки пишем:
Код

 Agent1.Characters.Load('Genie', 'Genie.acs');
 { Установка начальных координат }
 Agent1.Characters['Genie'].Left := 0;
 Agent1.Characters['Genie'].Top  := 0;
 { Появление персонажа с анимацией }
 Agent1.Characters['Genie'].Show(False);
 { Приветствие }
 Agent1.Characters['Genie'].Play('Greet');
 { Читаем содержимое Memo1 }
 Agent1.Characters['Genie'].Speak('Текст, который нужно прочитать', '');
 { Скрываем персонажа с анимацией }
 Agent1.Characters['Genie'].Hide(False);

Добавлено @ 16:01
Полезные ссылки:
http://www.hardnsoft.ru/magazine.php?issue=106&article=560&page=1
http://www.kv.by/index2003141102.htm
http://delphiworld.narod.ru/base/msagent.html
http://www.mista.ru/articles1c/hare/article.17.html

Вроде все сделал правильно но алладин или как его там не говорит а только пишет текст. Может мы друг друга не правильно поняли. Если у тя в колонки говорит то скажи мне я еще попробую. И если мы не поняли друг друга то подскажи как работать со Speech.
Заранее благодарю.
С ув.Александр!
Добавлено @ 03:02
Цитата(Alex103 @ 7.3.2005, 02:15)
Цитата(Pakshin @ 6.3.2005, )
Sorry, за тупой вопрос... но что такое Speech
Добавлено @ 10:40
Так... нашел... smile
У меня в XP все рабтает по самому простому методу..
Код

program Project1;

uses windows, ComObj, ActiveX;

var voice: OLEVariant;

begin
CoInitialize(nil);
voice := CreateOLEObject('SAPI.SpVoice');
voice.Speak('Hello World!', 0);
end.

Delphi 7

Кстати, кайфная вещь!!!! Лично долго ржал над голосом...

Те класно но у меня Милениум и приходиться качать вот уже 10% скачал.
Добавлено @ 02:17
Цитата(Alex @ 6.3.2005, 12:12)
Pakshin A. S., если я не ошибаюсь, человек хотел что бы ему русский текст читали. smile

Точно должно читать на русском или на Уркаинском (кстати тоже вариант).

О ура все работает!!!!!!Слушай а как можно менять голоса!
И еще где можно набрать этих агентов.

Автор: Poseidon 7.3.2005, 03:33
Цитата
И еще где можно набрать этих агентов.

Попробуй взять http://www.msagentring.org/. Я сам брал здесь агентов.

Еще компанией Microsoft создан отдельный сайт http://msdn.microsoft.com/msagent, полностью посвященный агентам. Найти же агентов от мелкомягких можно http://www.microsoft.com/workshop/prog/agent/agentdl.htm

При желании можно создать и своего собственного агента. Для этого тебе понадобится редактор фигурок http://agent.microsoft.com/agent2/sdk/ace.exe.



Автор: Alex103 7.3.2005, 03:36
Меня постигла такая идея. Как можно сделать так что-бы команды произночимые в микрофон записывались в файл потом переводились в текст и соответственно передавались коду приложения. Подскажите как такое можно осуществить и вообще реально ли это! Заранее благодарю С ув.Александр!
Добавлено @ 03:39
Цитата(Poseidon @ 7.3.2005, 03:33)
Цитата
И еще где можно набрать этих агентов.

Попробуй взять http://www.msagentring.org/. Я сам брал здесь агентов.

Еще компанией Microsoft создан отдельный сайт http://msdn.microsoft.com/msagent, полностью посвященный агентам. Найти же агентов от мелкомягких можно http://www.microsoft.com/workshop/prog/agent/agentdl.htm

При желании можно создать и своего собственного агента. Для этого тебе понадобится редактор фигурок http://agent.microsoft.com/agent2/sdk/ace.exe.

Огромное те спасибо!!! Попробуй посмотреть мой вопросс вверху может поможешь чем нибудь!

Автор: Poseidon 7.3.2005, 03:46
Вообще-то это очень серьезная задача. Решить ее одному я думаю не под силу. Есть такая программа, каторая понимает человечискую речь и записывает ее в текст, но она сравнима по посштабности с офисными продуктами Майкрософта, поэтому сделать что-то подобное одному не представляется возможным. Вот просто прочесть из микрофона - это можно. Но что бы машина могла еще и понять, что ей там сказали, то это уж сложновато. Тем более что у каждого свой тембр речи, и т.п.

Автор: Alex103 7.3.2005, 03:51
Цитата(Poseidon @ 7.3.2005, 03:33)


При желании можно создать и своего собственного агента. Для этого тебе понадобится редактор фигурок

А эта прога для создания агентов. Такого адресса нет!! Может ты что-то не то дал!
Добавлено @ 03:56
Цитата(Poseidon @ 7.3.2005, 03:46)
Вообще-то это очень серьезная задача. Решить ее одному я думаю не под силу. Есть такая программа, каторая понимает человечискую речь и записывает ее в текст, но она сравнима по посштабности с офисными продуктами Майкрософта, поэтому сделать что-то подобное одному не представляется возможным. Вот просто прочесть из микрофона - это можно. Но что бы машина могла еще и понять, что ей там сказали, то это уж сложновато. Тем более что у каждого свой тембр речи, и т.п.

Слушай есть предложение я сейчас сижу в чате gala.net(ник мой !!!!!!!!Саня2) давай там поговорим. Или в Icq мой номер 307-303-250!

Автор: Poseidon 7.3.2005, 04:03
Нет, проверил, все правильно. Значит Майкрософт изменили ссылку. Прога там была, сам ее качал. Но, по сути, если она действительно нужно, то можно ведь ввсети ее название в любом поисковике, и получишь кучю ссылок.

Автор: Alex103 7.3.2005, 04:36
Цитата(Poseidon @ 7.3.2005, 04:03)
Нет, проверил, все правильно. Значит Майкрософт изменили ссылку. Прога там была, сам ее качал. Но, по сути, если она действительно нужно, то можно ведь ввсети ее название в любом поисковике, и получишь кучю ссылок.

Спасибо!!!!!!!

Автор: Poseidon 7.3.2005, 05:06
Да ладно. Бало бы за что спасибо. Но в любом случае, как говорится, всегда пожалуйста. smile

Автор: Alex103 7.3.2005, 07:11
Подскажите какие-то компоненты, движки, или что-то другое что можно использовать в Делфи для распознавания речи!

И обьяснит мне хоть кто-то что такое Microsoft Speech Sdk даже не что такое а работает ли оно для распознавания русской речи.

Как агенту задать скорость произношения слов!!!

Как можно сменить голос агента!!

Пока все.

Подскажите прогу для создания движков речи.

Автор: Alex 7.3.2005, 09:50
Цитата(Alex103 @ 7.3.2005, 02:52)
Вроде все сделал правильно но алладин или как его там не говорит а только пишет текст. Может мы друг друга не правильно поняли. Если у тя в колонки говорит то скажи мне я еще попробую.

У меня все нормально говорит

Автор: Alex 7.3.2005, 10:52
Цитата(Alex103 @ 7.3.2005, 07:11)
Как агенту задать скорость произношения слов!!!

Как можно сменить голос агента!!

Прочти:
http://www.mista.ru/articles1c/hare/article.17.html
http://www.hardnsoft.ru/magazine.php?issue=106&article=560&page=1

Автор: Poseidon 8.3.2005, 04:16
Цитата
У меня все нормально говорит

Это зависет от самого персонажа. Не многие умеют говорить по русски (но пректически все по английски). Скорее всего Alex103 использует не тот персонаж.

Автор: Alex103 8.3.2005, 08:23
Цитата(Alex @ 7.3.2005, 10:52)
Цитата(Alex103 @ 7.3.2005, 07:11)
Как агенту задать скорость произношения слов!!!

Как можно сменить голос агента!!

Прочти:
http://www.mista.ru/articles1c/hare/article.17.html
http://www.hardnsoft.ru/magazine.php?issue=106&article=560&page=1

Спасибо конечно за совет но это не работает!!! Там я ничего не нашел!!!
Добавлено @ 08:26
Цитата(Poseidon @ 8.3.2005, 04:16)
Цитата
У меня все нормально говорит

Это зависет от самого персонажа. Не многие умеют говорить по русски (но пректически все по английски). Скорее всего Alex103 использует не тот персонаж.

Нет это не зависит от помощника! Это зависит от движка который ты установил. Но это все у меня работает.

Автор: Alex 8.3.2005, 08:28
Цитата(Alex103 @ 8.3.2005, 08:23)
Спасибо конечно за совет но это не работает!!! Там я ничего не нашел!!!

А это позвольте, что?
Цитата
Теперь, как я и обещал, можно перейти непосредственно к генерации речи. Собственно говоря, на Visual Basic (не забудьте подключить к проекту соответствующие компоненты COM+) для этого потребуется всего одна команда — вызов метода Speak: My_Agent.Speak "Фраза для озвучания!".

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

В Microsoft Agent доступны все теги, принятые в SAPI, — они и позволяют сделать речь естественной. Тегов сравнительно немного, и запомнить их пара пустяков:
Emp — ударение на произносимом слове; Pau — пауза в речи (миллисекунды);
Pit — высоты звучания голоса в Гц;
Spd — средняя скорость речи (слов в минуту);
Vol — средняя громкость звука.
Для управления речью агентов в состав SAPI входит еще несколько свойств, например Pitch (определяет высоту голоса) и Speed (определяет скорость речи). Свойства Pitch и Speed доступны только для чтения. Используемые по умолчанию характеристики голоса диктора меняются тегами Pit и Spd. Их следует только добавить в команду, например:

My_Agent.Speak "Привет! \spd= 150\\pit=230\Я очень рад всех вас видеть".

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

Некоторые теги содержат строковые значения. Их использование в программах Visual Basic и Visual Basic for Applications сопряжено с некоторыми неудобствами. Строковые значения должны быть обрамлены кавычками, поэтому текст для метода Speak требует специального синтаксиса — для добавления кавычек приходится вызывать функцию Chr с параметром 34 (этот ASCII-код соответствует кавычке). Рассмотрим для примера тег Chr, с помощью которого можно определить характер речи диктора. Этот тег может принимать одно из следующих значений: Normal (используется по умолчанию), Monotone, Whisper. Предположим, мы хотим, чтобы фраза была произнесена агентом шепотом. Тогда ее следует написать следующим образом:

My_Agent.Speak "\Chr=" + Chr(34) + "Whisper" + Chr(34) + "\Привет! Я очень рад всех вас видеть."

Пожалуй, одним из самых интересных является тег Ctx. Он предназначен для управления параметрами нормализации текста. Как мы помним, TTS-модуль должен преобразовать текст в последовательность слов для синтезатора речи. На этом этапе ему важно понимать, в каком контексте используются слова. Иными словами, TTS-модуль должен знать тематику сообщения. К примеру, получив на вход строку вида «X-Originating-IP: [65. 169.241.134]», речевой движок должен воспринять ее как служебную часть заголовка электронного письма, которая никогда не читается пользователями и поэтому вообще не должна быть озвучена. Для этих целей были разработаны специальные режимы работы TTS-модулей: E-mail и Address. Причем один из них предназначен для работы с электронной почтой, а другой — для корректного озвучания адресов и телефонов. Есть еще и обычный режим — Unknown. Переключение режимов выполняется тегом \Ctx=string\.

Оба этих режима имеют много общего в работе. Например, всегда распознаются предложения, написанные латинским алфавитом, — они воспринимаются как английская речь. Это очень удобно — без переключения языков в тексте можно использовать иностранные термины. Различия же в работе проще всего продемонстрировать на одном примере. Так, сочетание знаков ;-) в режиме Unknown воспринимается как бессмысленное и поэтому пропускается. В режиме E-mail оно интерпретируется как средство выражения эмоций автора текста — смайлик. Такой смайлик обозначает дружескую усмешку, поэтому на этапе нормализации он будет преобразован в набор из трех слов: «хи-хи-хи». Синтезатор речи произнесет эти слова, в результате мы услышим хихиканье агента.

В завершение мне хочется рассказать еще об одном способе озвучания агентов. Он очень прост. Запишите сообщение, которое должен произнести персонаж, в звуковой файл. В методе Speak напишите текст сообщения, а затем укажите название и путь к файлу Hello.Wav:

My_Agent.Speak "Привет! Я очень рад всех вас видеть.", "Hello.Wav"

Автор: Alex103 8.3.2005, 08:48
1. Как сделать в разговоре агента паузу.
2. Как поменять скорость произношения речи.
Это вопросс может не по теме но это являеться частью проекта.

3. Как из текстового файла и из Мемо считать определенные строки.
4. Я вот хочу создать установочный пакет. Посоветуйте чем это лучше осуществить.
И пожалуйста все с сылочкими.
5. Подскажите компонент или исходник простейшего таймера.
6. Где взять программу для создани я агентов.
7. Как можно агенту добавить анимационные ефекты.
8. Чем можно создать приличную справку. И подскажите где взять эту прогу.

Буду очень рад прочитать ответы.

Заранее благодарен.

С ув. Александр
Добавлено @ 08:50
Цитата(Alex @ 8.3.2005, 08:28)
Цитата(Alex103 @ 8.3.2005, 08:23)
Спасибо конечно за совет но это не работает!!! Там я ничего не нашел!!!

А это позвольте, что?
Цитата
Теперь, как я и обещал, можно перейти непосредственно к генерации речи. Собственно говоря, на Visual Basic (не забудьте подключить к проекту соответствующие компоненты COM+) для этого потребуется всего одна команда — вызов метода Speak: My_Agent.Speak "Фраза для озвучания!".

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

В Microsoft Agent доступны все теги, принятые в SAPI, — они и позволяют сделать речь естественной. Тегов сравнительно немного, и запомнить их пара пустяков:
Emp — ударение на произносимом слове; Pau — пауза в речи (миллисекунды);
Pit — высоты звучания голоса в Гц;
Spd — средняя скорость речи (слов в минуту);
Vol — средняя громкость звука.
Для управления речью агентов в состав SAPI входит еще несколько свойств, например Pitch (определяет высоту голоса) и Speed (определяет скорость речи). Свойства Pitch и Speed доступны только для чтения. Используемые по умолчанию характеристики голоса диктора меняются тегами Pit и Spd. Их следует только добавить в команду, например:

My_Agent.Speak "Привет! \spd= 150\\pit=230\Я очень рад всех вас видеть".

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

Некоторые теги содержат строковые значения. Их использование в программах Visual Basic и Visual Basic for Applications сопряжено с некоторыми неудобствами. Строковые значения должны быть обрамлены кавычками, поэтому текст для метода Speak требует специального синтаксиса — для добавления кавычек приходится вызывать функцию Chr с параметром 34 (этот ASCII-код соответствует кавычке). Рассмотрим для примера тег Chr, с помощью которого можно определить характер речи диктора. Этот тег может принимать одно из следующих значений: Normal (используется по умолчанию), Monotone, Whisper. Предположим, мы хотим, чтобы фраза была произнесена агентом шепотом. Тогда ее следует написать следующим образом:

My_Agent.Speak "\Chr=" + Chr(34) + "Whisper" + Chr(34) + "\Привет! Я очень рад всех вас видеть."

Пожалуй, одним из самых интересных является тег Ctx. Он предназначен для управления параметрами нормализации текста. Как мы помним, TTS-модуль должен преобразовать текст в последовательность слов для синтезатора речи. На этом этапе ему важно понимать, в каком контексте используются слова. Иными словами, TTS-модуль должен знать тематику сообщения. К примеру, получив на вход строку вида «X-Originating-IP: [65. 169.241.134]», речевой движок должен воспринять ее как служебную часть заголовка электронного письма, которая никогда не читается пользователями и поэтому вообще не должна быть озвучена. Для этих целей были разработаны специальные режимы работы TTS-модулей: E-mail и Address. Причем один из них предназначен для работы с электронной почтой, а другой — для корректного озвучания адресов и телефонов. Есть еще и обычный режим — Unknown. Переключение режимов выполняется тегом \Ctx=string\.

Оба этих режима имеют много общего в работе. Например, всегда распознаются предложения, написанные латинским алфавитом, — они воспринимаются как английская речь. Это очень удобно — без переключения языков в тексте можно использовать иностранные термины. Различия же в работе проще всего продемонстрировать на одном примере. Так, сочетание знаков smile в режиме Unknown воспринимается как бессмысленное и поэтому пропускается. В режиме E-mail оно интерпретируется как средство выражения эмоций автора текста — смайлик. Такой смайлик обозначает дружескую усмешку, поэтому на этапе нормализации он будет преобразован в набор из трех слов: «хи-хи-хи». Синтезатор речи произнесет эти слова, в результате мы услышим хихиканье агента.

В завершение мне хочется рассказать еще об одном способе озвучания агентов. Он очень прост. Запишите сообщение, которое должен произнести персонаж, в звуковой файл. В методе Speak напишите текст сообщения, а затем укажите название и путь к файлу Hello.Wav:

My_Agent.Speak "Привет! Я очень рад всех вас видеть.", "Hello.Wav"

А вы попробуйте оно не работает! smile
Добавлено @ 08:56
Цитата(Poseidon @ 8.3.2005, 04:16)
Цитата
У меня все нормально говорит

Это зависет от самого персонажа. Не многие умеют говорить по русски (но пректически все по английски). Скорее всего Alex103 использует не тот персонаж.

Пожалуйста вышли мне прогу для создания агентов. мой майл Supermen_@gala.net, polevoy2005@yahoo.com на любой из них!!! Пожалуйста.

Автор: Alex 8.3.2005, 09:09
Alex103 Спокойно!
Модератор: Пожалуйста, один топик - один вопрос.

Автор: Alex 8.3.2005, 10:11
Alex103, сам ну ни как искать не хочешь, если бы было очень нужно и интересно давно бы все нашел.

Лови:
http://jaws.tiflocomp.ru/synths/sapi/sapi_delphi02.php Если мне хоть, кто-то скажет, что программа http://jaws.tiflocomp.ru/synths/sapi/example/butorin_speechtags.zip ему не подходит, то я больше этому человеку НИЧЕГО искать не буду. Маленький нюанс программа начинает читать текст от текущей позиции курсора в тексте.

Вот сайт полностью посвещенный агенту и его применению в Delphi http://subritto.h1.ru/

Автор: Alex103 9.3.2005, 02:11
Цитата(Alex @ 8.3.2005, 10:11)
Alex103, сам ну ни как искать не хочешь, если бы было очень нужно и интересно давно бы все нашел.

Лови:
http://jaws.tiflocomp.ru/synths/sapi/sapi_delphi02.php Если мне хоть, кто-то скажет, что программа http://jaws.tiflocomp.ru/synths/sapi/example/butorin_speechtags.zip ему не подходит, то я больше этому человеку НИЧЕГО искать не буду. Маленький нюанс программа начинает читать текст от текущей позиции курсора в тексте.

Вот сайт полностью посвещенный агенту и его применению в Delphi http://subritto.h1.ru/

Извени что так вышло но я действительно искал но не нашел!!!!!А тебе большое спасибо за очередную подсказку. Я тя отблагодарю как только наберу 100 постов. И не нервничай..... smile smile smile Огромное за все спасибо. С ув.Александр..

Автор: Poseidon 9.3.2005, 02:51
Цитата
Как из текстового файла и из Мемо считать определенные строки.

Из Memo:
Код
var
S: string;
begin
S:= Memo1.Lines.Strings[5];
end;

Из файла
Код
var
s: string;
f: textFile;
begin
AssignFile(f,'file.txt')
Reset(f);
for i:= 1 to 5 do
Readln(f,s);
CloseFile(f);
end;

Оба примера читают 5 строку. Только в случае с файлом, я бы проверил:
1. А есть ли такой файл, перед открытием;
2. А есть ли в этом файле вообще нужная строка;


Цитата
Подскажите компонент или исходник простейшего таймера.

А чем стандартный Timer (вкладка система) не подходит?


Цитата
Я вот хочу создать установочный пакет. Посоветуйте чем это лучше осуществить.

В комплекте с Delphi поставляется InstallShield именно для этих целей.


Цитата
Где взять программу для создани я агентов.

Ссылку я давал выше. Если не работает, то есть же ее название. Поищи в Интернете по названию (Ну или попроси Alex, если сам не справишься)


Цитата
Как можно агенту добавить анимационные ефекты.

Agent1.Characters.Load('MyAgent', Path);
Agent1.Characters['MyAgent'].Play('Greet');

Path - это путь к характеру персонажа (файл *.acs)
Greet - это проигрываемай анимация. Для каждого характера свой набор, но есть и общие (Greet - один из таких). Список всех анимаций читай в документации к агенту или скачай Майкрософную прогу "Agent Viewer". Если все же не найдешь ничего, обратись ко мне, я напишу все анимации предложенного табой агента.
Кстати, список анимаций можно получить и средствами делфи, но нужно вазится.


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

В стандартный пакет Delphi входит программа "Microsoft Help Workshop". Находится она вот тут: Каталог Delphi\Help\Tools\HCW.exe


Вроде на все ответил. Насчет проги облом. Я ее не нашел у себя. Видать удалил за ненадобностью, т.к. агентов в сети хватает, и создавать заново колесо не хочется.

Да, и на будущее: Прочти правила форума, а то так и будешь получать то модераторов
Цитата
один топик - один вопрос
, да и отвечать неудобно. Видишь какой большой ответ получился. smile

Автор: Bose 9.3.2005, 05:22
посмотри вот здесь.... сайты по технологиям речи...
http://art.bdk.com.ru/govor/program.htm
и здесь
http://native-speech.invitation.ru/index-full.html

а, вообще, проблема распознавания речи до сих пор не решена и остается проблемой...... ищи... учись... может и решишь smile)

Автор: Alex103 9.3.2005, 05:28
Цитата(Bose @ 9.3.2005, 05:22)
посмотри вот здесь.... сайты по технологиям речи...
http://art.bdk.com.ru/govor/program.htm
и здесь
http://native-speech.invitation.ru/index-full.html

а, вообще, проблема распознавания речи до сих пор не решена и остается проблемой...... ищи... учись... может и решишь smile)

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

Автор: Alex 9.3.2005, 07:50
Цитата(Alex103 @ 9.3.2005, 05:28)
Да огромное те спасибо за помощь. Слушай ты слуяайно не знаешь где можно скачать перевод Делфийского хелпа ну естесно бесплатно или какую нибудь нормальную книгу по Делфи.

Модератор: Тема закрыта!

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)