【问题标题】:Text to speech in VistaVista中的文字转语音
【发布时间】:2011-08-09 07:37:17
【问题描述】:

我是通过在 2000/NT/XP 中使用 Delphi 创建 OLE 对象来实现的,如下所示:

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

但这在Vista中不起作用,我怎样才能让我的程序在Vista中简单地说一些文字?

【问题讨论】:

标签: delphi windows-vista text-to-speech


【解决方案1】:

我刚刚尝试使用以下代码(Vista Home Premium 上的 D2009),它可以工作!

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.

仅供参考,Brian Long 有一个 nice paper on using speech in Delphi programming...


(非常)延迟更新:

关于为什么它可能无法在 Vista 中运行并在 IDE 之外给出 EZeroDivide 异常,请参阅另一个 SO 问题:Delphi SAPI Text-To-Speech

【讨论】:

  • 感谢您的论文。但是,在 Vista 中运行您显示的代码时,我收到错误“浮点除以零”。你在Vista中测试过吗? (我在 Windows XP 中使用 BDS2006 构建它并在 Vista 中运行可执行文件)
  • 我确实在 Vista 中构建和测试(在同一台机器上)
  • 感谢弗朗索瓦。它适用于您建议的论文中的组件 (blong.com/Conferences/DCon2002/Speech/SAPI51/SAPI51.htm)
猜你喜欢
  • 2015-03-11
  • 1970-01-01
  • 1970-01-01
  • 2010-10-02
  • 2017-01-21
  • 1970-01-01
  • 2017-04-14
  • 1970-01-01
相关资源
最近更新 更多