Fórum Lendo números por extenso #205479
09/01/2004
0
Me lembro de 2 anos atraz, quando encontrei uma
rotina que escrevia um número por extenso ....
em que se digitava 123,00 e em label era exibido
Cento e vinte três reais.
Será que alguém conhece uma rotina ou componente, que leia números
por extenso ...
Se não, será que existe alguém disposto a criá-la ...
Algo do tipo:
Gravar em arquivos *.wav, com a pronúncia de todos:
Unidades: (Um.wav, dois.wav, Três.wav ... Nove.wav)
Dezenas : (Dez.wav, Vinte.wav, Trinta.wav ... )
Centenas .....
E Na hora de juntar as partes, como é feito com a rotina que escreve um extenso...
Reproduzir os arquivos em ordem ... Formando assim a pronúncia do número ...
Tenho certeza que muitos colegas programadores com menas experiência,
agradeceram ....
[]´Guialberto
Guialberto
Curtir tópico
+ 0Post mais votado
10/01/2004
[b:625253f25a]Monster Speech:[/b:625253f25a]
http://www.torry.net/vcl/mmedia/voice/mspec.zip
Ao passar uma string para este componente (gerada pela sua rotina que escreve números por extenso), ele pode ler o conteúdo da string ou gravar em Wave (PCM) que é o formato que vc quer.
Para usar o componente vc deve ter instalado em seu computador a Microsoft Speech API e também um arquivo de voz em português (informações de como obter esses arquivos podem ser encontradas na documentação do componente).
Cebikyn
Gostei + 1
Mais Posts
11/01/2004
Guialberto
Onde eu encontro
Microsoft Speech API e também o arquivo de voz em português
[]´Guialberto
Gostei + 0
11/01/2004
Cebikyn
http://activex.microsoft.com/activex/controls/agent2/lhttsptb.exe
MS Speech SDK 5.1:
http://www.microsoft.com/downloads/details.aspx?FamilyId=5E86EC97-40A7-453F-B0EE-6583171B4530&displaylang=en
(Arquivo: SpeechSDK51.exe)
Lembre-se de configurar o componente para usar o arquivo em português.
Gostei + 0
11/01/2004
Cebikyn
Gostei + 0
11/01/2004
Deus
Abraços, dEUS
Gostei + 0
11/01/2004
Guialberto
Não estou conseguindo instalar o componente, como faço
Possuo delphi 5 ou Delphi 6 (Enterprise)
Devo utilizar o pacote ou a unidade(*.pas) para instalar ...
Qual delas ....
mspec.dpk
mspecd4.dpk >>> Não seria um pacote para o delphi 4
mRecon.pas
mspecreg.pas
msPeech.pas
speech.pas
Quando tento instalar( component/Install componet ) e escolha a
msPeech.pas ... Na hora de compilar da o seguinte erro:
[error] mSpeech.pas(439): Undeclared Identifier: ´magCannotOpenfile´
[fatal erro] dclusr50.dpk(89)
Na unidade é destacado o código
///////////////////////////////////////////////////////////////
try
if FOutput = soFile then
if FIAF.DoSet(PWideChar(Filename), 1) < 0 then
raise EMSpeechException.Create(msgCannotOpenFile);
///////////////////////////////////////////////////////////////
[]´Guialberto
Gostei + 0
11/01/2004
Marco Salles
rotina que escrevia um número por extenso ....´
cebikyn Escreveu:´Ao passar uma string para este componente (gerada pela sua rotina que escreve números por extenso)´...
Marcos Pergunta :?: O Guialberto Não Tem Esta Rotina. É Algo Que Ele Pediu No Ínicio Do Tópico.
Bacalhau Em Uma Conversa Em Um Outro Tópico Escreveu:
´Por exemplo, tenho um rotina que converte um número no seu valor por extenso. Esta função é compilada numa DLL e fornecida a todos os meus clientes que necessitam dela.´...
Marco Pergunta Novamente: Guialberto Não Seria Esta a Solçuçaõ Do Seu Problema :?:
Marco Conclui. Se Podessemos Unir o Que o Baclhau Possui Com a Dica Do cebikyn + a dica dEUS , Seria Ótimo.
Marco Sugere:Guialberto Porque Voce Não Pede Para o Bacalhau e nos Disponibiliza Aqui No Forum ...
Gostei + 0
11/01/2004
Marco Salles
Obs:Quero Aproveitar Para Retratar Como Nosso Amigo ´Bacalhau´, Porque Usei Seus Dizeres Sem a Devida Permissão.Mas Quero Acrescentar Que Não Foi De Forma Abusiva E Nem Mau Intencionada, Mas Sim Com O Devido Respeito Que Nosso Amigo Merece.Entendo Que O Forum é AMPLO E Que Seus Tópicos Estejam Interligados....Sem Mais
Gostei + 0
12/01/2004
Cebikyn
Tente instalar o pacote, mesmo sendo para Delphi 4, o Delphi normalmente não encontra problemas com pacotes antigos (o máximo que pode ocorrer é ele perguntar se vc quer converter o pacote, daí vc clica em ´sim´). Quanto ao msgCannotOpenFile, simplesmente remova e coloque uma string do tipo ´não foi possível abrir o arquivo´, pois refere-se a uma constante contendo esta msg e por algum motivo não foi declarada.
_______________________________________
[quote:2eabb2a74e=´Marco Salles´]Marcos Pergunta :?: O Guialberto Não Tem Esta Rotina. É Algo Que Ele Pediu No Ínicio Do Tópico.[/quote:2eabb2a74e]
O Guialberto tem a rotina que escreve os números (ele achou há dois anos). O que ele pediu no início do tópico é uma rotina que leia os números (que fale através das caixas de som, como um sintetizador de voz). E mesmo que ele não tivesse a rotina, o componente indicado também lê strings numéricas.
Gostei + 0
12/01/2004
Guialberto
Em relação a rotina de extenso, eu a possuo ....
Como alternativa existe um componente
chamado CJVExtenso da paleta de Componentes CJV e pode ser Encontrado em:
http://www.veloso.kit.net/pacotecjv.html
Exemplo de Uso:
Coloque o componente no formulário e configure
as propriedades:
MoedaPlural para REAIS
MoedaSingular para REAL
If CJVEditFloat1.Text<> ´´ then
Begin
CJVExtenso1.Valor:=(CJVEditFloat1.Value);
Label1.Caption:=CJVExtenso1.Extenso;
End;
Gostei + 0
12/01/2004
Guialberto
Ainda não conseguir instalar
Quando tento instalar pelo pacote mspecd4.dpk
Dá oseguinte erro:
[erro] mspecd4.dpk(4): Invalid Compilerdirective: ´ALIGN´
[Fatal erro] mspecd4.dpk(29): Requerid package ´vcl´ no found
No código é destacado {$ALIGN 8}
package mspec;
{$R *.res}
{$ALIGN 8} //Linha destacada no erro
{$ASSERTIONS ON}
{$BOOLEVAL OFF}
{$DEBUGINFO ON}
{$EXTENDEDSYNTAX ON}
{$IMPORTEDDATA ON}
.
.
.
end.
Gostei + 0
12/01/2004
Cebikyn
Gostei + 0
12/01/2004
Guialberto
segui as suas duas dicas e conseguir instalar ...
Valeu !!!
cebikyn escreveu
///////////////////////////////////////////////////////////////
Tente instalar o pacote, mesmo sendo para Delphi 4, o
Delphi normalmente não encontra problemas com pacotes antigos
(o máximo que pode ocorrer é ele perguntar se vc quer converter
o pacote, daí vc clica em ´sim´)
///////////////////////////////////////////////////////////////
Na pasta lib :
coloque as 4 units do componente lá e instale a partir de lá,
dessa vez deve funcionar (eu não lembrava, mas foi assim que
eu fiz e funcionou no D6).
///////////////////////////////////////////////////////////////
Instalei apartir do pacote mspecd4.dpk.
Deu certo no Delphi 5.
(***********************************************************)
Ok amigos conseguir montar um exemplo
Apartir do componente que me indicaram Monster Speech
e do que indiquei CJVExtenso da paleta de Componentes CJV
no site http://www.veloso.kit.net/pacotecjv.html
(Existe versões para Delphi 4, Delphi 5, Delphi 6 e Delphi 7)
Conseguir modificar o Demo que vem junto como Monster Speech
e junto com o componente CJVExtenso, conseguir fazer funcionar ...
se alguém ja consegui, nos informe ....
Pergunto, se eu for distribuir um aplicativo com tais recursos...
o que devo realmente destribuir junto com o mesmo ....
Microsoft Speech API ...
Arquivo de voz em português ...
Ou esses arquivos já vem com o sistema operacional?
Se sim ...
Quais as versões do Windows que traz esses arquivos ?
(***********************************************************)
[]´Guialberto.
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)