Como fazer o Espeak ler uma variável?

1. Como fazer o Espeak ler uma variável?

Sidnei
banzetwo

(usa Ubuntu)

Enviado em 31/05/2011 - 19:52h

Olá a todos! Estou começando em C++ e gostaria de saber como fazer o seguinte código-fonte falar em voz alta a variável "voz":

#include <cstdlib>
#include <iostream>

#include <stdio.h>


main()
{
char voz[100];

printf("Digite uma frase\n");
scanf("%s",&voz);


system("espeak -v pt "); ==> neste ponto que estou tendo problemas, se digitar qualquer coisa depois do "pt", ele lê normalmente, mas eu gostaria que ele lesse a variável.

return 0;
}

Desde já agradeço a atenção de todos!

Sidnei.


  


2. Re: Como fazer o Espeak ler uma variável?

fabricio erdmann
fabricio.er

(usa Debian)

Enviado em 31/05/2011 - 19:57h

tente
system("espeak -v pt %s",voz)


3. Re: Como fazer o Espeak ler uma variável?

Sidnei
banzetwo

(usa Ubuntu)

Enviado em 31/05/2011 - 20:02h

Olá, tentei, mas o compilador dá erro nessa linha...


4. Re: Como fazer o Espeak ler uma variável?

fabricio erdmann
fabricio.er

(usa Debian)

Enviado em 31/05/2011 - 20:43h

que erro?
você também esqueceu de definir o tamanho da variável voz


5. Re: Como fazer o Espeak ler uma variável?

Sidnei
banzetwo

(usa Ubuntu)

Enviado em 31/05/2011 - 21:00h

Esse erro:

/usr/include/stdlib.h:712: error: too many arguments to function ‘int system(const char*)’
novo arquivo (cópia).cpp:15: error: at this point in file

Já corrigi o tamanho da variável no codigo... Obrigado por lembrar hehe.


6. Re: Como fazer o Espeak ler uma variável?

Tadzio Buscácio
Tadzio

(usa Linux Mint)

Enviado em 31/05/2011 - 21:18h

o problema é que você tem que resolver a variável antes de mandar pra system.
veja a função sprintf()

sprintf("%f", 77.5) = "77.5"
sprintf("%d", 77.5) = "77"

str = sprintf("\"%s\"\n", "echo");
printf(str);


7. Re: Como fazer o Espeak ler uma variável?

Mauricio Souza Klein
Hebang

(usa Arch Linux)

Enviado em 31/05/2011 - 22:01h

faça:

char* comando = (char*)malloc( 256 * sizeof(char) );
sprintf( comando, "espeak -v pt %s", voz );
system( comando );

Espero ter ajudado!


8. Re: Como fazer o Espeak ler uma variável?

Sidnei
banzetwo

(usa Ubuntu)

Enviado em 01/06/2011 - 18:35h

Funcionou esse código:

char* comando = (char*)malloc( 256 * sizeof(char) );
sprintf( comando, "espeak -v pt %s", voz );
system( comando );

Obrigado pessoal heheh






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts