Мне удалось использовать SAPI Text-To-Speech в Delphi / Lazarus, используя следующий код:
procedure TForm1.Button1Click(Sender: TObject);
var
SpVoice: Variant;
begin
SpVoice := CreateOleObject('SAPI.SpVoice');
SpVoice.Speak('Hello World!', 0);
end;
Этот код автоматически выбирает стандартный английский голос. Так как мне нужно локализовать его на испанский, я проверил, есть ли в моей системе (Windows XP со стандартным испанским) голос на испанском или мне нужно было его установить, и как изменить голос по умолчанию, но пока не повезло. Поэтому мои вопросы:
- Как я могу узнать, если в моей системе уже установлен испанский голос или мне нужно его установить?
- Предположим, у меня установлен голос, который мне нужен, как я могу заставить SAPI использовать этот голос вместо стандартного?
Я предполагаю, что могу получить испанский голос, используя следующий код (C0A - код для испанского языка):
SpVoice.GetVoices('','Language=C0A').Item(0)
но не знаю, как настроить голос для использования.
РЕДАКТИРОВАТЬ : чтобы избежать путаницы, мне нужно сделать это совместимым с Delphi и Lazarus, так как последний является основным инструментом разработки.