Pergunta

Eu fiz isso através da criação de objeto OLE com Delphi em 2000 / NT / XP como a seguir:

Voice := CreateOLEObject('SAPI.SpVoice');
Voice.speak(...)

Mas isso não funciona no Vista, como posso fazer meu programa simplesmente falar um pouco de texto em Vista?

Foi útil?

Solução

Eu apenas tentei (D2009 em Vista Home Premium) com o seguinte código e 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.

FYI, há um papel agradável sobre o uso da fala em programação Delphi por Brian longa ...


(muito) atrasado Update:

Para porque ele pode não funcionar no Vista e dar uma exceção EZeroDivide fora do IDE, consulte esta outra questão SO: Delphi SAPI Text-To-Speech

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top