🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: borland.public.cppbuilder.nativeapi
Article #1063

Re: Startup help with SAPI

#1063
From: JohnC
Date: Sat, 17 Nov 2007 13:13
84 lines
3247 bytes
The following will "speak" anything - numbers as well as words.
John
//---------------------------------------------------------------------------

#ifndef JMCSpeechH
#define JMCSpeechH

#include <sapi.h>           //For ISp definitions - part of SDK

//---------------------------------------------------------------------------

//Speech Utilities:
//This object instantiates the COM Object SpVoice and gives us an easy
//function call in order to speak a string.

class TJMCSpeech
  {
    public:
   TJMCSpeech();             //Constructor
   ~TJMCSpeech();             //Destructor
   void Speak(String Words);  //Speak the input words in the string.
 private:
   HRESULT  hr;
   ISpVoice*  pVoice;
  };


#endif
-------------------
//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop

#include "JMCSpeech.h"
//#include "SUTIL.h"
//---------------------------------------------------------------------------

#pragma package(smart_init)

//Constructor
TJMCSpeech::TJMCSpeech()
{
hr = S_OK;
pVoice = NULL;
::CoInitialize(NULL);

//Create a SAPI voice:
hr = CoCreateInstance( CLSID_SpVoice,NULL,CLSCTX_ALL,IID_ISpVoice,
        (void**)&pVoice);
}
//Destructor
TJMCSpeech::~TJMCSpeech()
{
if(SUCCEEDED(hr))
  pVoice->Release();

::CoUninitialize();
}
//---------------------------------------------------------------------------
void TJMCSpeech::Speak(String Words)
{
if(SUCCEEDED(hr))
   pVoice->Speak(WideString(Words),SPF_DEFAULT,NULL);
}
//Note: I originally had:
//   pVoice->Speak(TJMCSUtil::StrToBSTR(Words),SPF_DEFAULT,NULL);
//It was pointed out by Remy Lebeau (TeamB) <no.spam@no.spam.com>
//that this was a memory leak and that I should use the following:
//   pVoice->Speak(WideString(Words),SPF_DEFAULT,NULL);
//---------------------------------------------------------------------------


"Marc" <info@mawnet.com> wrote in message 
news:473ebe39$1@newsgroups.borland.com...
> Hi all
>
> I try to implement a simple SAPI application that reads back a phone 
> number. I downloaded the SDK 5.1 from Microsoft and had a look at the 
> samples... and did not quite got into it. Does someone has a simple sample 
> in BCB that just shows how to speak a number?
>
> Rds
> Marc
> 
Technical Details
Message-ID: <473ee927$1@newsgroups.borland.com>
Path: arc1-ca.pugleaf.net!g2news1.google.com!news2.google.com!border1.nntp.dca.giganews.com!nntp.giganews.com!newsfeed00.sul.t-online.de!newsfeed01.sul.t-online.de!t-online.de!newsgroups.borland.com!not-for-mail
References: <473ebe39$1@newsgroups.borland.com>

Show Full Headers
Complete Article Headers
X-Google-Thread: 10cc67,ead936854bc3aa40
X-Google-Attributes: gid10cc67,public,usenet
X-Google-Language: ENGLISH,ASCII-7-bit
From: "JohnC" <jcibulskis@sbcglobal.net>
Newsgroups: borland.public.cppbuilder.nativeapi
References: <473ebe39$1@newsgroups.borland.com>
Subject: Re: Startup help with SAPI
Date: Sat, 17 Nov 2007 07:13:41 -0600
Lines: 86
X-Priority: 3
X-MSMail-Priority: Normal
X-Newsreader: Microsoft Outlook Express 6.00.2900.3138
X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2900.3198
X-RFC2646: Format=Flowed; Response
NNTP-Posting-Host: 76.223.245.175
Message-ID: <473ee927$1@newsgroups.borland.com>
X-Trace: newsgroups.borland.com 1195305255 76.223.245.175 (17 Nov 2007 05:14:15 -0700)
Path: arc1-ca.pugleaf.net!g2news1.google.com!news2.google.com!border1.nntp.dca.giganews.com!nntp.giganews.com!newsfeed00.sul.t-online.de!newsfeed01.sul.t-online.de!t-online.de!newsgroups.borland.com!not-for-mail