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)
{ p>
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 p>
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 ;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)
{ p>
SpVoice1->_set_Voice(sots->Item(ComboBox1->ItemIndex));
}