Já assisti muitos filmes sobre os hackers. Geralmente um homem jovem senta-se na frente de seu computador e fala com seus sistemas, dá comandos de voz e o computador como um servo estudioso, trabalha sem encostar no teclado. Apesar do fato da capacidade e reconhecimento de fala está constantemente evoluindo e melhorando. Evidentemente, que neste momento, é muito difícil estabelecer um sistema de controle de computador, que seria reconhecido por milhares de comandos e executar esses comandos. Mas, temos o Speech API, um conjunto de interfaces de Fala e Reconhecimento de Voz: Mais neste artigo usando SAPI vamos ensinar seu computador falar.

Microsoft Speech API (SAPI) tem um voz feminina e conhecida como Anna e fala a língua inglesa.

O primeiro passo para usar SAPI devemos importado o Activex para o Delphi. Então abra a IDE do Delphi, selecione menu principal, "Component Import Component" na janela seguinte escolha a opção "Import Type Library", conforme imagem a baixo e clique em "Avançar":

Type of Component

Figura 1. Type of Component.

Agora encontrar o "Microsoft Speech Object Library", selecioná-lo, clique em "Avançar"

Registered Type Libraries

Figura 2. Registered Type Libraries.

Na nova janela, selecione a opção "Generate Component Wrappers" e clique em "Concluir":

Uma Unit chamada SpeechLib_TLB.pas será criada e salva por default no caminho que esta no campo Unit Dir Name: no código fonte esta disponível o arquivo SpeechLib_TLB.pas.

Component

Figura 3. Component.

Agora estamos pronto para trabalhar com SAPI 5.4.

Crie um novo projeto VCL inclua um componente TEdit e um componente TButton como segue figura abaixo e vamos fazer a Anna ler nossas mensagens.

Layout do Formulário

Figura 4. Layout do Formulário.

No Evento OnClick do Button1 implemente o código abaixo:

procedure TForm1.Button1Click(Sender: TObject);
var gpIVTxt: ISpVoice;
     Pool: LongWord;
begin
  gpIVTxt:=CoSpVoice.Create as ISpVoice;
  gpIVTxt.Speak(PChar(Edit1.Text),SVSFDefault,Pool);
end;

Agora você pode executar este programa, escreva no campo Edit1 "I LOVE DELPHI" ou qualquer outra frase em inglês, pressione o botão ouça a Anna falar.

Programa em execução

Figura5. Programa em execução.

Existe outra forma de fazer a Anna ler, arquivos TXT, vamos incluir mais 2 componentes em nosso projeto mais um TButton e um TOpenDialog, como segue a imagem abaixo:

Layout do Formulário

Figura 6. Layout do Formulário.

Listagem 2: No Evento OnClick do Button2 implemente o código abaixo:


procedure TForm1.Button2Click(Sender: TObject);
var
  gpIVTxt: ISpVoice;
  Pool: LongWord;
begin
  if OpenDialog1.Execute then
    Edit1.Text := OpenDialog1.FileName;
  gpIVTxt := CoSpVoice.Create as ISpVoice;
  gpIVTxt.Speak(PChar(Edit1.Text), SVSFIsFilename, Pool);
end;

Agora crie um arquivo que contém um texto em inglês e tenha em conta todos os sinais de pontuação. Clique no botão Arquivo TXT e ouça a voz de Anna lendo todo o arquivo.

Este é um simples exemplo, pesquise sobre Microsoft Speech API que vai encontrar outros idiomas e outros Agent "vozes" além de Anna.

Um grande abraço a todos e paz no coração!