HLFX.Ru Forum
профиль •  правила •  регистрация •  календарь •  народ •  FAQ •  поиск •  новое •  сутки •  главная •  выход  
HLFX.Ru Forum HLFX.Ru Forum > Наш форум > Флуд > Как научить вашу программу разговаривать.
Может кому пригодится. Delphi.
  Предыдущая тема   Следующая тема
Автор
Тема Новая тема    Ответить
Alex_Gordon
Добрых дел мастер

Группа: Неопытный
Дата регистрации: Mar 2010
Проживает: Екатеринбург
Сообщений: 651
Возраст: 34

Рейтинг



Как научить вашу программу разговаривать.

В Windows XP (в XP есть точно, насчет других - не знаю), если вы создадите файл с расширением .vbs и запишите в него такой текст:

code:
CreateObject("SAPI.SpVoice").Speak"I'm talking"

то при его запуске вы услышите, как Sam говорит фразу, заключенную в кавычках.
Мне (может быть и не первому в мире) пришла в голову идея сделать говорящую программу. Для этого (если вы используете Lazarus) нужно будет подключить юнит Windows.
Легче всего будет написать функцию, а потом вызывать ее. Итак, вот она:
code:
function SpeakCommand(phrase:string) :integer; var a:text; begin assignfile(a,'speak.vbs'); rewrite(a); writeln(a,'CreateObject("SAPI.SpVoice").Speak"'+phrase+'"'); closefile(a); ShellExecute (Form1.Handle, nil, 'speak.vbs', nil, nil, SW_RESTORE); end;

Тут мы создаем файл vbs и вписываем в него переменную типа string, а потом при помощи ShelExecute выполняем файл.
Теперь пример вызова функции.
Например, при нажатии на кнопку.
code:
procedure TForm1.Button9Click(Sender: TObject); begin DoSomethingRealyCool; SpeakCommand('Some Cool done'); end;

Вот и все.

__________________
Ха, тюремный автомобиль!!!

Ιερά λάμδα

Quisque moritur Gordon sinistram. Alex Gordon.


Сообщить модератору | | IP: Записан
Сообщение: 73009

Старое сообщение 26-02-2011 14:12
- За что?
 Дядя Миша
racing for fish

Дата регистрации: Oct 2005
Проживает: Кубань
Сообщений: 32213
Нанёс повреждений: 392 ед.

Рейтинг



Цитата:
Alex_Gordon писал:
то при его запуске вы услышите, как Sam говорит фразу, заключенную в кавычках.

В семерке говорят уже женский голос

__________________
My Projects: download page

F.A.Q по XashNT
Блог разработчика в телеграме

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'

Сообщить модератору | | IP: Записан
Сообщение: 73010

Старое сообщение 26-02-2011 14:28
-
Alex_Gordon
Добрых дел мастер

Группа: Неопытный
Дата регистрации: Mar 2010
Проживает: Екатеринбург
Сообщений: 651
Возраст: 34

Рейтинг



Дядя Миша может быть, у меня ХР, и грубый мужской)

__________________
Ха, тюремный автомобиль!!!

Ιερά λάμδα

Quisque moritur Gordon sinistram. Alex Gordon.


Сообщить модератору | | IP: Записан
Сообщение: 73011

Старое сообщение 26-02-2011 14:32
- За что?
 Дядя Миша
racing for fish

Дата регистрации: Oct 2005
Проживает: Кубань
Сообщений: 32213
Нанёс повреждений: 392 ед.

Рейтинг



Кстати, хоть в одной версии XP его научили говорить на русском?

__________________
My Projects: download page

F.A.Q по XashNT
Блог разработчика в телеграме

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'

Сообщить модератору | | IP: Записан
Сообщение: 73012

Старое сообщение 26-02-2011 15:00
-
FiEctro
Кот Арсис

Дата регистрации: Aug 2006
Проживает: код
Сообщений: 12901
Возраст: 32

Рейтинг



Дядя Миша
Не думаю. Но вот PROMT умел точно.

__________________
У котёнка мокрый нос и гладенькая шерсть, у него забавный хвост и быстрых лапок шесть. Две задних, две средних и две передних лапы, такая многоножка получилася у папы.
Он ученый — папа мой — зверушек изучает, гуляет по помойкам, ловит крыс и чаек. Две крысы белокрылые и чайки две унылые покрытые пупырчатою кожей лягушат без пёрышек тоскуют и ускакать спешат.
А ещё есть муравей большой размером с гуся он пугает всех зверей, и я его боюся, когда он ковыляет на лапках на своих.
И в двери ударяет, и начинает стих: Я — муравей, воды налей! Не меньше ведра, напиться мне пора!

Сообщить модератору | | IP: Записан
Сообщение: 73013

Старое сообщение 26-02-2011 15:09
- За что?
Alex_Gordon
Добрых дел мастер

Группа: Неопытный
Дата регистрации: Mar 2010
Проживает: Екатеринбург
Сообщений: 651
Возраст: 34

Рейтинг



Дядя Миша а почему бы и нет?
CreateObject("SAPI.SpVoice").Speak"Yah govoryou nah rooskom"

Добавлено 26-02-2011 в 21:11:

Если кто юзает C++ Builder, то вот как это там реализуется:
Нужно подключить #include <fstream.h>

Функция:
void SpeakCommand(string a)
{
ofstream speak("speak.vbs");
speak << "CreateObject(\"SAPI.SpVoice\").Speak\""< ShellExecute (Form1->Handle, 0, "speak.vbs", 0, 0, SW_RESTORE);
}


Пример вызова:
void __fastcall TForm1::Button1Click(TObject *Sender)
{
SpeakCommand("Hello world!");
}

__________________
Ха, тюремный автомобиль!!!

Ιερά λάμδα

Quisque moritur Gordon sinistram. Alex Gordon.


Сообщить модератору | | IP: Записан
Сообщение: 73014

Старое сообщение 26-02-2011 16:11
- За что?
 XaeroX
Crystice Softworks

Дата регистрации: Oct 2005
Проживает: Торонто
Сообщений: 34528
Нанёс повреждений: 514 ед.
Возраст: 37

Рейтинг



Награды
 
[1 награда]


В делфи есть компонент стандартный.
А вообще - MS Speech SDK.

__________________

Сообщить модератору | | IP: Записан
Сообщение: 73018

Старое сообщение 26-02-2011 16:22
-
Alex_Gordon
Добрых дел мастер

Группа: Неопытный
Дата регистрации: Mar 2010
Проживает: Екатеринбург
Сообщений: 651
Возраст: 34

Рейтинг



XaeroX а в Lazarus'e нету.
Ну я ведь никого не заставляю это юзать. Просто показал

__________________
Ха, тюремный автомобиль!!!

Ιερά λάμδα

Quisque moritur Gordon sinistram. Alex Gordon.


Сообщить модератору | | IP: Записан
Сообщение: 73019

Старое сообщение 26-02-2011 16:25
- За что?
 Дядя Миша
racing for fish

Дата регистрации: Oct 2005
Проживает: Кубань
Сообщений: 32213
Нанёс повреждений: 392 ед.

Рейтинг



Цитата:
Alex_Gordon писал:
Дядя Миша а почему бы и нет?
CreateObject("SAPI.SpVoice").Speak"Yah govoryou nah rooskom"

Очень смешно. Вот включим тебе переводчик транслита - все посты будут так выглядеть

__________________
My Projects: download page

F.A.Q по XashNT
Блог разработчика в телеграме

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'

Сообщить модератору | | IP: Записан
Сообщение: 73026

Старое сообщение 26-02-2011 18:27
-
Тема: (Опционально)
Ваш ответ:



Переводчик транслита


[проверить длину сообщения]
Опции: Автоматическое формирование ссылок: автоматически добавлять [url] и [/url] вокруг интернет адресов.
Уведомление по E-Mail: отправить вам уведомление, если кто-то ответил в тему (только для зарегистрированных пользователей).
Отключить смайлики в сообщении: не преобразовывать текстовые смайлики в картинки.
Показать подпись: добавить вашу подпись в конец сообщения (только зарегистрированные пользователи могут иметь подписи).

Временная зона GMT. Текущее время 03:54. Новая тема    Ответить
  Предыдущая тема   Следующая тема
HLFX.Ru Forum HLFX.Ru Forum > Наш форум > Флуд > Как научить вашу программу разговаривать.
Может кому пригодится. Delphi.
Версия для печати | Отправить тему по E-Mail | Подписаться на эту тему

Быстрый переход:
Оцените эту тему:

Правила Форума:
Вы not можете создавать новые темы
Вы not можете отвечать в темы
Вы not можете прикреплять вложения
Вы not можете редактировать ваши сообщения
HTML Код ВЫКЛ
vB Код ВКЛ
Смайлики ВКЛ
[IMG] Код ВКЛ
 

< Обратная связь - HLFX.ru >

На основе vBulletin
Авторское право © 2000 - 2002, Jelsoft Enterprises Limited.
Дизайн и программирование: Crystice Softworks © 2005 - 2024