Форум программистов
 
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

Вернуться   Форум программистов > Delphi > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Ответ
 
Опции темы
Старый 03.01.2018, 12:13   #1
devi409
Форумчанин
 
Регистрация: 28.12.2006
Адрес: Барнаул
Сообщений: 75
Репутация: 57
По умолчанию Синтез русской речи Delphi 10

Всем добрый день.
Решил разобраться можно ли как то синтезировать речь в своем проекте.
Т.е. вводим текст в TEdit нажимаем на кнопку TButton а колонки произносят то что написал.
Искал по гуглу, яндексу ничего толкового не нашел. все статьи не старше 15 года и не для Delphi 10
Смог синтезировать английскую речь с помощью Microsoft синтезатора, но мне надо русскую речь.
Другие проекты устарели и не запускаются, вызывая ошибки.

Может кто-то поможет ссылкой где почитать на данную тему?
devi409 вне форума   Ответить с цитированием
Старый 03.01.2018, 17:15   #2
Aliens_wolfs
Участник клуба
 
Регистрация: 16.12.2009
Адрес: WWW ЛЕНИНГРАД СПб точка РУ
Сообщений: 838
Репутация: 361
По умолчанию

Ищите по теме Speech API в Delph в интернете примеров много
вот что я нашел сразу, инструкция по установке компонента синтезтор звука
http://www.webdelphi.ru/2010/03/spee...yuter-govorit/
Прежде нужно скачать русский движок речи
https://torrentino.top/torrent/431132
Пример работы с русским движком речи
http://www.webdelphi.ru/2010/05/sapi...v-delphi-2010/

С помощью этих всех ссылках у меня получилось воспроизвести русский текст, проверил в Delphi XE у вас тоже должно рботать
Вот код
Код:

uses
 Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, SpeechLib_TLB, StdCtrls;

type
  TForm1 = class(TForm)
    Edit1: TEdit;
    Button1: TButton;
    ListBox1: TListBox;
    procedure Button1Click(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure FormDestroy(Sender: TObject);
  private
    { Private declarations }
  public
  Voices: ISpeechObjectTokens;
  gpIVTxt: TSpVoice;
    procedure GetMyVoices(List: TListBox);
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

//Функция выводит список синтезатора для чтения
procedure TForm1.GetMyVoices(List: TListBox);
var i:integer;
begin
  List.Clear;
  Voices:= gpIVTxt.GetVoices('','');
  for i:=0 to Voices.Count - 1 do
    List.Items.Add(Voices.Item(i).GetDescription(0));
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
gpIVTxt:= TSpVoice.Create(nil);
GetMyVoices(ListBox1);
end;

procedure TForm1.FormDestroy(Sender: TObject);
begin
gpIVTxt.Destroy;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  gpIVTxt.Voice:=Voices.Item(ListBox1.ItemIndex); //Выбираем синтезатор из списка
  gpIVTxt.Speak(StringToOleStr(Edit1.Text), SVSFlagsAsync); //Читает текст из Edit
end;


Последний раз редактировалось Aliens_wolfs; 04.01.2018 в 15:36.
Aliens_wolfs вне форума   Ответить с цитированием
Старый 04.01.2018, 08:41   #3
devi409
Форумчанин
 
Регистрация: 28.12.2006
Адрес: Барнаул
Сообщений: 75
Репутация: 57
По умолчанию

Большое спасибо.
Вы в комплексе написали, то что я уже нашел и сделал.
Английский все отлично говорит а вот как только переключаюсь на русский движок выдает ошибку
class EOleException Класс не зарегистрирован

В чем тогда может быть проблема?
devi409 вне форума   Ответить с цитированием
Старый 04.01.2018, 09:39   #4
devi409
Форумчанин
 
Регистрация: 28.12.2006
Адрес: Барнаул
Сообщений: 75
Репутация: 57
По умолчанию

Прошу прощения, Все работает. Огромное спасибо!
Остался один вопрос.
Программы типа говорилки балаболки они платные это понятно, А синтезаторы они тоже платные? Вроде никаких лицензий не видел. Запускаю и пользуюсь.
Подскажите бесплатные движки пожалуйста.
devi409 вне форума   Ответить с цитированием
Старый 04.01.2018, 15:27   #5
Aliens_wolfs
Участник клуба
 
Регистрация: 16.12.2009
Адрес: WWW ЛЕНИНГРАД СПб точка РУ
Сообщений: 838
Репутация: 361
По умолчанию

Цитата:
А синтезаторы они тоже платные? Вроде никаких лицензий не видел. Запускаю и пользуюсь.
Да платные, работают определенное время.
Читайте инструкцию к синтезатору что я ссылку дал.

Последний раз редактировалось Aliens_wolfs; 04.01.2018 в 23:04.
Aliens_wolfs вне форума   Ответить с цитированием
Ответ

Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Программа распознавания русской речи - Комбат denis47 Помощь студентам 10 25.06.2016 23:39
Синтез речи. Создание голосового движка (не русского). Gauss Общие вопросы Delphi 2 21.01.2014 10:12
Синтез речи под Windows Shinsoo Общие вопросы C/C++ 0 11.02.2013 14:03
синтез речи+файл drak2000 Мультимедиа в Delphi 2 21.01.2011 15:12
Распознание речи в Delphi toxich Мультимедиа в Delphi 8 28.03.2010 08:54


08:30.


Powered by vBulletin® Version 3.8.8 Beta 2
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.

RusProfile.ru


Справочник российских юридических лиц и организаций.
Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru