Red de conocimiento informático - Espacio del host - Quiero usar c++builder para realizar la lectura de voz por computadora del contenido en Editar->Texto. ¿Debo usar tts? ¿Cómo usarlo? ¿Dónde están sus controles? ¡Por favor, rutina de código fuente!

Quiero usar c++builder para realizar la lectura de voz por computadora del contenido en Editar->Texto. ¿Debo usar tts? ¿Cómo usarlo? ¿Dónde están sus controles? ¡Por favor, rutina de código fuente!

Speech SDK5.1 se puede instalar en XP

1 Importar sapi.dll a C++Builder:

Componente->Importar componente->Importar. a Escriba Biblioteca->Agregar para agregar el archivo de biblioteca del motor de reconocimiento de voz Sapi.dll.

2. Después de la instalación, se generarán muchos controles de voz y se agregarán controles de voz.

3. La programación está lista:

#include

#pragma hdrstop

#include "Unit1.h"

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

#paquete pragma(smart_init)

enlace #pragma "ACTIVEVOICEPROJECTLib_OCX"

enlace #pragma "SpeechLib_OCX"

#pragma recurso "*.dfm"

TForm1 *Form1;

TSpVoice *SpVoice1;//=new TSpVoice(this);

ISpeechObjectTokensPtr sots;

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

__fastcall TForm1::TForm1(TComponent * Propietario)

: TForm(Propietario)

{

}

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

void __fastcall TForm1::Button1Click(TObject *Remitente)

{

WideString con =Memo1->Text; //Chino=804;Inglés=409

sots=SpVoice1->GetVoices(WideString("Idioma=409"),WideString("VW Kate "));//Obtener voz china (wchar_t*)("")

if(sots->get_Count()==0)//Si no hay voz china, el recuento es 0

return;

SpVoice1->_set_Voice(sots->Item(0));//Establecer pronunciación china

SpVoice1->Speak(con,SVSFDefault); //Habla alegremente

p>

}

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

void __fastcall TForm1 ::FormCreate(TObject *Sender)

{

SpVoice1=new TSpVoice(this);

ComboBox1->Items- >Borrar();

p>

ComboBox1->Items->Add("Voice");

sots=SpVoice1->GetVoices(NULL,NULL);

for(int i=0 ;iget_Count();i

++)

{

ComboBox1->Items->Add(sots->Item(i)->GetDescription(NULL));

}

}

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

void __fastcall TForm1::FormClose(TObject *Sender, TCloseAction &Action)

{

eliminar SpVoice1;

}

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

void __fastcall TForm1::ComboBox1Change(TObject *Remitente)

{

SpVoice1->_set_Voice(sots->Item(ComboBox1->ItemIndex));

}