Lendo números por extenso
Olá amigos ...
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
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
Curtidas 0
Melhor post
Cebikyn
10/01/2004
Use este componente:
[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).
[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).
GOSTEI 1
Mais Respostas
Guialberto
09/01/2004
Ok, ja baixei o componente .... Monster Speech
Onde eu encontro
Microsoft Speech API e também o arquivo de voz em português
[]´Guialberto
Onde eu encontro
Microsoft Speech API e também o arquivo de voz em português
[]´Guialberto
GOSTEI 0
Cebikyn
09/01/2004
Voz em português:
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.
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
Cebikyn
09/01/2004
Antes de fazer o download do MS Speech API, tente usar o componente sem ele, pois, em alguns sistemas operacionais, o download não é necessário.
GOSTEI 0
Deus
09/01/2004
Só uma coisa: você terá problemas para rodar o [i:6609ba17ec]Monster Speech[/i:6609ba17ec] se estiver usando o SDK 5.1 - do tipo ´[i:6609ba17ec]Class not registered[/i:6609ba17ec]´. Não sei o que houve, talvez a API tenha mudado, mas se você fizer o download da versão 4, funciona. Então, é só clicar [url=http://www.microsoft.com/speech/download/old/sdk40a.asp]aqui[/url] e pegar o arquivo de 40mb. :)
Abraços, dEUS
Abraços, dEUS
GOSTEI 0
Guialberto
09/01/2004
Queria testar Antes de fazer o download do MS Speech API, mas
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
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
Marco Salles
09/01/2004
Guialberto Escreveu :´Me lembro de 2 anos atraz, quando encontrei uma
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 ...
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
Marco Salles
09/01/2004
P:S O Tópico Que Me Referi Anteriormente é :´Questão de lógica para sistemas!!´
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
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
Cebikyn
09/01/2004
Guialberto,
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.
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
Guialberto
09/01/2004
Vou testar a instalação do componente agora ...
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;
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
Guialberto
09/01/2004
Olá .... Cebikyn
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.
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
Cebikyn
09/01/2004
Então crie um novo pacote ou use o dclusr.dpk da pasta lib e 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).
GOSTEI 0
Guialberto
09/01/2004
Ok amigo, cebikyn
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.
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