Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

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

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

Купить рекламу на форуме - 42 тыс руб за месяц

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

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

Может кто-то поможет ссылкой где почитать на данную тему?
devi409 вне форума Ответить с цитированием
Старый 03.01.2018, 16:15   #2
Aliens_wolfs
Форумчанин
 
Регистрация: 16.12.2009
Сообщений: 902
По умолчанию

Ищите по теме 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 в 14:36.
Aliens_wolfs вне форума Ответить с цитированием
Старый 04.01.2018, 07:41   #3
devi409
Пользователь
 
Регистрация: 28.12.2006
Сообщений: 75
По умолчанию

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

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

Прошу прощения, Все работает. Огромное спасибо!
Остался один вопрос.
Программы типа говорилки балаболки они платные это понятно, А синтезаторы они тоже платные? Вроде никаких лицензий не видел. Запускаю и пользуюсь.
Подскажите бесплатные движки пожалуйста.
devi409 вне форума Ответить с цитированием
Старый 04.01.2018, 14:27   #5
Aliens_wolfs
Форумчанин
 
Регистрация: 16.12.2009
Сообщений: 902
По умолчанию

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

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


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Программа распознавания русской речи - Комбат denis47 Помощь студентам 10 25.06.2016 22: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 14:12
Распознание речи в Delphi toxich Мультимедиа в Delphi 8 28.03.2010 08:54