Sintesi vocale in Vista
-
03-07-2019 - |
Domanda
L'ho fatto creando l'oggetto OLE con Delphi in 2000 / NT / XP come segue:
Voice := CreateOLEObject('SAPI.SpVoice');
Voice.speak(...)
Ma questo non funziona in Vista, come posso fare in modo che il mio programma parli semplicemente del testo in Vista?
Soluzione
Ho appena provato (D2009 su Vista Home Premium) con il seguente codice e funziona!
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.
Cordiali saluti, esiste un un bel documento sull'uso del discorso nella programmazione Delphi di Brian Long ...
Aggiornamento (molto) in ritardo:
Per quale motivo potrebbe non funzionare in Vista e generare un'eccezione EZeroDivide al di fuori dell'IDE, vedere questa altra domanda SO: Sintesi vocale di Delphi SAPI
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow