Модераторы: MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> SpeechApi как ActiveX! не как winApi, Заставить говорить русские слова! 
:(
    Опции темы
h2o
Дата 27.1.2006, 15:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 199
Регистрация: 19.8.2005

Репутация: нет
Всего: 1



есть статья http://www.delphimaster.ru/articles/speechapi/index.html - Работа с Microsoft Speech API в Delphi
как я не пробовал, он у меня ничего не произносит!

у кого-нибудь есть рабочий примерчик с этим speechApi, чтобы он русские слова выговаривал.

Если что, то я делал вот так, вдруг что забыл:

1. ХР sp2, я всё равно скачал http://activex.microsoft.com/activex/contr...api/spchapi.exe.
2. скачал Lernout &Hauspie Text-To-Speech 2.9 Мб (русский мужской и женский голос.)
3. взял юнит как в статье
Код

unit axControl;

interface

uses
  Windows, Messages, Classes, Controls,
  ActiveX, OleCtrls,StdCtrls; //

type
  TAxControl = class(TOleControl)//
   private
    CControlData : TControlData2; // Информация об ActiveX.
   protected
    procedure InitControlData; override;
   public
    property CData : TControlData2 read CControlData;
    constructor Create (AOwn : TComponent;AGUID : TGUID);
end;

implementation

constructor TAxControl. Create (AOwn : TComponent ;AGUID : TGUID);
begin
 FillChar(CControlData,sizeof(CControlData),0); // Обнуляете поле с информацией об Active
 CControlData.ClassID :=AGUID; // Указываете QUID компонента,который будет создаваться.
inherited Create (AOwn); // Вызываете конструктор предка.
 ControlStyle := ControlStyle + [csClickEvents]; // Стиль отображения
end ;

procedure TAxControl. InitControlData;
begin
 ControlData := @CControlData; // Указываете адрес, где находится информация об ActiveX.
end;

end.

4. Привязал юнит к своему проекту, и в юните формы вставил:
Код

procedure TMainForm.TellMe(what: string);
begin
try compon:=TAxControl.Create(self,stringtoguid('{EEE78591-FE22-11D0-8BEF-0060081841DE}'));
compon.Parent:=panel1; 
compon.Visible:=true;
compon.Top:=10;
compon.Left:=10;
compon.Width:=100;
compon.Height:=100;
//compon.OleObject.AboutDlg(form1.Handle,'о голосовом движке');// Выводит информацию о компоненте.
//compon.OleObject.GeneralDlg(form1.Handle,'настройка'); // Выводит окно настройки компонента.
//compon.OleObject.LexiconDlg(form1.Handle,'пользовательский');//Окно подключения пользовательских словарей.
//compon.OleObject.Speed:=80; //Скорость речи. X=от 80 до 210.
//compon.OleObject.pitch:=125;// Тональность речи X=от 125 до 200.
//compon.OleObject.Select(1);//персоанаж X=1(Светлана) X=2(Борис)
//compon.OleObject.LipTension:=X;//визуальное положение губ X:= 0..255;
compon.OleObject.Speak(what);
 finally
 end; 
end;

// всё что под "//" в верхней процедуре, то если что-то указать, работать перестаёт, и выходит ошибка

// и ещё:

procedure TMainForm.Button1Click(Sender: TObject);
begin
TellMe('Привет');
sleep(2000);
TellMe('TimeToStr(Time)');
sleep(2000);
TellMe('hello world');
sleep(2000);
end;

Вот и всё. На панели появляются губы, они шивелятся, а вот неразборчиво быстро произносится непонятная фраза (всего одна из 3х), и ошибок не выходит!!!

Вот так! Если делал кто уже эту фигню с голосом, скиньте рабочий примерчик плиз!

Это сообщение отредактировал(а) h2o - 27.1.2006, 15:16
--------------------
Я нифига не знаю! мало что понимаю! Помогите тупому... У меня стоит D7!
PM MAIL   Вверх
Msl
Дата 28.1.2006, 10:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 19
Регистрация: 18.8.2005

Репутация: нет
Всего: нет



Загрузи примеры и статьи для версий Speech API 4.0 и 5.1 c сайта thedelphimagazine
[поиск с key: Brian Long ]


http://www.thedelphimagazine.com/samples.php (примеры)

Цитата


Speech Support In Delphi Applications: Part 3

Brian Long wraps up his series on speech support (for now anyway)
by demonstrating how to use the Microsoft APIs to build speech recognition
capabilities into your own software.


Удачи!
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: ActiveX/СОМ/CORBA"

Rrader
Girder

Запрещено:

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами


  • Литературу по Delphi обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Delphi
  • Вопросы по SQL и вопросы по базам данных, не связанные с Delphi, задавать здесь

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Rrader, Girder.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: ActiveX/СОМ/CORBA | Следующая тема »


 




[ Время генерации скрипта: 0.0400 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.