Texto a voz en vista
-
03-07-2019 - |
Pregunta
Lo hice creando un objeto OLE con Delphi en 2000 / NT / XP de la siguiente manera:
Voice := CreateOLEObject('SAPI.SpVoice');
Voice.speak(...)
Pero esto no funciona en Vista, ¿cómo puedo hacer que mi programa simplemente diga un texto en Vista?
Solución
¡Acabo de intentarlo (D2009 en Vista Home Premium) con el siguiente código y funciona!
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ComObj;
type
TForm1 = class(TForm)
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
var
Voice: Variant;
begin
Voice := CreateOLEObject('SAPI.SpVoice');
Voice.speak('Hello World');
end;
end.
Para su información, hay un buen documento sobre el uso del habla en la programación Delphi por Brian Long ...
(Muy) Actualización tardía:
Para saber por qué podría no funcionar en Vista y dar una excepción EZeroDivide fuera del IDE, vea esta otra pregunta SO: Delphi SAPI Text-To-Speech
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow