Texte à la parole dans Vista
-
03-07-2019 - |
Question
Je l'ai fait en créant un objet OLE avec Delphi dans 2000 / NT / XP comme suit:
Voice := CreateOLEObject('SAPI.SpVoice');
Voice.speak(...)
Mais cela ne fonctionne pas sous Vista, comment puis-je faire que mon programme parle simplement du texte dans Vista?
La solution
Je viens d'essayer (D2009 sur Vista Home Premium) avec le code suivant et ça marche!
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.
Pour info, il existe un article sur l'utilisation de la parole dans la programmation Delphi de Brian Long ...
Mise à jour (très) tardive:
Pour savoir pourquoi cela pourrait ne pas fonctionner dans Vista et donner une exception EZeroDivide en dehors de l'EDI, consultez cette autre question SO: Delphi SAPI
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow