2008-10-16 12 views
5
में पाठ से वाक्

मैं निम्नलिखित के रूप में 2000/NT/XP में डेल्फी के साथ OLE वस्तु बनाने के द्वारा यह किया:विस्टा

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

लेकिन यह Vista में काम नहीं करता है, कैसे मैं अपने कार्यक्रम बस कुछ बात कर सकते हैं Vista में पाठ?

+0

धन्यवाद François। यह आपके द्वारा सुझाए गए पेपर में घटक के साथ काम करता है (http://www.blong.com/Conferences/DCon2002/Speech/SAPI51/SAPI51.htm) –

उत्तर

4

मैंने निम्नलिखित कोड के साथ अभी कोशिश की है (Vista होम प्रीमियम पर डी 200 9) और यह काम करता है!

कारण है कि यह Vista में काम करते हैं और नहीं दे सकता है एक EZeroDivide के लिए:

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 करें, वहाँ एक nice paper on using speech in Delphi programming ब्रायन लांग द्वारा ...


(बहुत) देर अद्यतन है आईडीई के बाहर अपवाद, यह अन्य SO प्रश्न देखें: Delphi SAPI Text-To-Speech

+0

पेपर के लिए धन्यवाद। लेकिन, विस्टा में आपके द्वारा दिखाए गए कोड को चलाते हुए, मुझे त्रुटि "शून्य से फ़्लोटिंग पॉइंट डिवीजन" त्रुटि मिलती है। क्या आपने Vista में इसका परीक्षण किया था? (मैंने इसे विंडोज एक्सपी में बीडीएस2006 के साथ बनाया और Vista में निष्पादन योग्य चलाया) –

+0

मैंने विस्टा (उसी मशीन पर) का निर्माण और परीक्षण किया –

+0

धन्यवाद फ्रैंकोइस। यह आपके द्वारा सुझाए गए पेपर में घटक के साथ काम करता है (http://www.blong.com/Conferences/DCon2002/Speech/SAPI51/SAPI51.htm) –

संबंधित मुद्दे