Bom, retomando a parte de códigos que recentemente não tenho escrito muito, dessa vez eu tive de vir para postar isto aqui..
A meses atraz eu fiz diversos tipos de procuras por esse código e não o encontrei, quando eu via qualquer link que dizia “aqui tem”. ou era pago, ou precisava de registro, ou era fake..
E como eu acho que é uma função realmente útil, resolvi posta-lá.
Quem já não quis fazer um programa com áudio? ou melhor, quem já não quis que seu programa te dissesse tudo o que vc precisa?
ex. Acesso permitido. ou Acesso negado.
e qualquer outra frase, sem ter que ir grava-lá e mandar um componente executar o áudio.
Bom.. Eu precisei deste código! e depois de procurar quinem doido, finalmente consegui montar o quebra cabeça, e fazer o esquema funcionar (nem acreditei no quão simples era).
Utilizando o “Text to Speech/Speaker/Fala” do windows.
Antes de mais nada, adicionar na uses: ComObj.
A atribuição da função à uma váriavel é simples:
var
voz : OleVariant;
begin
voz:=CreateOleObject(‘SAPI.SpVoice’);
Com isso, a váriavel voz, passa a obedeçer como a “engine” do programa de fala do windows, passando assim a receber atributos ex.
voz.Rate:=10; -> para deixar a voz falando super rápido.
voz.Rate:=-10; -> para deixar a voz falando super lento.
E dando o procedimento de execução:
voz.Speak(‘SPEAK THIS THING‘);
Vi em diversos lugares também comandos como:
voz.Pause;
voz.Resume;
dos quais não tive muito interesse (sendo assim nem os testei).
De qualquer maneira, agora você pode fazer seu programa falar o que vc quizér e/ou até mesmo (para grandes empresas (se necessário)) adicionar uma opção para que cégos possam utilizar seu programa, fora todo o esquema de automação em que este código pode te incluir.
Para os preguiçosos:
procedure Falar(texto:string);
var fala:olevariant;
begin
fala:=CreateOleObject(‘SAPI.SpVoice’);
fala.Speak(texto);
end;
só usar: Falar(‘Seu texto.‘);
Abraço!
;D
Tags: windows, delphi, programa, speaker, text to speech, fala, código, SAPI, SpVoice, OleObject, ComObj
maio 6, 2010 às 10:02 pm |
Muito bom o Post Parabéns, não conseguir usar o rate para tratar a velocidade da fala. No mais Show de bola
maio 18, 2010 às 5:25 pm |
vlww amigo ;D
outubro 20, 2010 às 7:03 pm |
não consegui pausar
outubro 20, 2010 às 8:11 pm |
amigo.. como eu mencionei no post eu não testei o restante das funções. porém encontrei muita coisa a respeito na internet..
tente usar voz.skip(…);
ou de uma olhada em http://edn.embarcadero.com/article/29583 ..
abraço