سؤال

لقد قمت بذلك عن طريق إنشاء كائن OLE باستخدام دلفي في 2000/NT/XP على النحو التالي:

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

ولكن هذا لا يعمل في نظام التشغيل Vista، كيف يمكنني أن أجعل برنامجي ينطق بعض النص في نظام التشغيل Vista؟

هل كانت مفيدة؟

المحلول

لقد حاولت للتو (D2009 على Vista Home Premium) باستخدام الكود التالي وهو يعمل!

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.

لمعلوماتك، هناك ورقة لطيفة حول استخدام الكلام في برمجة دلفي بواسطة بريان لونج...


(جدا) تحديث متأخر:

لمعرفة سبب عدم نجاحه في نظام التشغيل Vista وإعطاء استثناء EZeroDivide خارج IDE، راجع سؤال SO الآخر هذا: دلفي SAPI تحويل النص إلى كلام

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top