VB 2005 - Parla VB.NET Parla
TTS ou Text-to-Speech é o processo no qual um texto digitado é transformado em um discurso audível. Em meu artigo ASP.NET 2.0 - Fazendo a sua página falar mostrei como fazer com que texto fosse transformado em áudio em páginas ASP.NET. Vou fazer a mesma coisa para uma aplicação VB.NET usando os recursos do TTS usando o engine da Microsoft para língua portuguesa.
Talvez essa não seja a forma mais elegante de alcançar este objetivo mas é a mais prática que encontrei e pode ser feita em alguns minutos.
Você vai precisar ter instalado os seguintes componentes:
Os módulos para ativar a fala se
encontram disponíveis nos seguintes endereços:
Página de
download da Microsoft:
http://www.microsoft.com/msagent/downloads/user.asp |
Após instalar os componentes inicie um novo projeto no VB 2005 Express Edition chamado parla_VBNET_parla ou algum outro nome sugestivo.
Em seguida vamos ter que incluir a referência ao componente Microsoft Direct Text-To-Speech. Este é um componente COM portanto clique com o botão direito do mouse sobre o nome do projeto na janela Solution Explorer e selecione a opção Add Reference.. Selecionando a seguir a aba COM na janela Add Reference e escolhendo o componente citado, clicando por fim no botão OK.
Inclua no formulário padrão , form1.vb , um componente ComboBox (cboVoz) , um componente TextTBox Multiline (txtTexto) e um Button (btnFala) conforme o leiaute abaixo.(Veja na figura a referência incluída no projeto)
Vamos ao código do projeto.
- A primeira coisa a fazer é declarar o namespace referente ao biblioteca TTS que foi incluído como referência no projeto:
Imports
ACTIVEVOICEPROJECTLibSe você for na janela Solution Explorer e expandir o item References e em seguida clicar na referência ACTIVEVOICEPROJECTLib , poderá ver os métodos e propriedades deste namespace. Na figura destaquei o método Speak(string) que recebe uma string e produz um som.
Perceba que teremos que criar um objeto da classe DirectSS.
Vamos então criar uma instância para a classe DirectSS :
Dim voz As New DirectSSA seguir no evento Load do formulário inclua o código abaixo:
Private Sub
Form1_Load(ByVal sender
As System.Object, ByVal e
As System.EventArgs)
Handles MyBase.Load
For i = 1 To voz.CountEngines tipoVoz = voz.ModeName(i) cboVoz.Items.Add(tipoVoz) Next
cboVoz.SelectedIndex = 0
End Sub |
Este código apenas irá preencher a ComboBox com as vozes disponíveis na biblioteca TTS para língua Portuguesa. Executando o código você irá obter:
Observe que são exibidos dois
tipos de vozes :
Uma feminina e outra masculina que podemos escolher para produzir a vocalização do texto que será digitado na caixa de texto. |
Vamos agora incluir o código no evento SelectedIndexChange de forma a selecionar o tipo de voz que será usado na vocalização conforme a seleção do usuário:
Private Sub
cboVoz_SelectedIndexChanged(ByVal sender
As System.Object, ByVal
e As System.EventArgs)
Handles cboVoz.SelectedIndexChanged
voz.LipType = 0 Else voz.LipType = 1 End If End Sub |
Finalmente no evento Click do botão de comando - Parla VB.NET - iremos usar o método Speak() passando o texto que foi digitado para vocalização:
Private Sub
btnFala_Click(ByVal sender
As System.Object, ByVal
e As System.EventArgs)
Handles btnFala.Click
voz.Speak(txtTexto.Text) Else MsgBox("Informe algum texto para vocalização...") End If End Sub |
Executando o projeto você pode selecionar uma das vozes, digitar qualquer texto e ouvir o resultado...
Pegue o projeto completo aqui: parla_VBNET_parla.zip
Eu sei é apenas VB.NET , mas eu gosto...