Transformar eBook em Audiobook

Publicado por Rafael Fini (última atualização em 12/09/2011)

[ Hits: 13.634 ]

Download TTSbook.sh




Olá

Resolvi fazer esse scritp para aproveitar meu tempo no trânsito e "ler" alguma coisa enquanto dirijo.
Este shellscript transforma livro em audio. Usa a "API" do Google Translate. Espero que o Google nao fique bravo com isso : )

Primeiramente é necessário obter o livro em formato TXT, portanto, se você possui um arquivo pdf, transforme-o.
Eu utilizei esta ferramenta aqui -> http://www.convertpdftotext.net .
O tipo do arquivo recebido já está previsto no script, e as modificações necessárias já estão implementadas.

O script leva em consideração que todas as linhas possuem menos de 100 caracteres.

Aproveitem!
Abraço,
Rafael

  



Esconder código-fonte

#/bin/bash
#
# by Rafael Fini
#         v: 1.0
#

if [ -z $1 ]
then
  echo "Modo de uso ./TTSBook [livro.txt]"
  exit 0
else

# Escolhe a lingua que será falada: en, pt, fr...
lang=pt

# Duração dos arquivos em minutos
length=05

filename=`echo $1 | sed -e 's/^.*\///' | sed 's/\..*$//'`
cp $1 temp

# Transforma codificação do arquivo para utf-8
#cat temp | iconv -f iso8859-15 -t UTF-8 -o temp2
#mv temp2 temp

# Transforma arquivo para terminação de linha UNIX
tr -d '\r' < temp > temp2
mv temp2 temp

# Formata palavras com continuação na outra linha (Evita a palavra travessão no TTS)
sed 's/\ \([^ \t\n\r\f\v]*-$\)/\n\1/' temp | sed '/-$/ N ; s/-\n//' > temp2
mv temp2 temp

# Apaga as linhas em branco
sed '/^$/d' temp > temp2
mv temp2 temp

#---------------------------------------------------------------------------------------------------------

  nlinhas=`sed -n '$=' temp`
  touch $filename.mp3

  for it in `seq -w 1 $nlinhas`;
  do
      echo -ne "Convertendo: $it de $nlinhas linhas."\\r
      linha=`sed "$it !d" temp`
      wget -q -U Mozilla -O $it.mp3 "http://translate.google.com/translate_tts?ie=UTF-8&tl=$lang&q=$linha"
      cat $filename.mp3 $it.mp3 > tempfalado
      mv tempfalado $filename.mp3
      rm $it.mp3
  done

  rm temp
  mp3splt $filename.mp3 -Q -n -x -o @f-@m -t $length.00
  echo "Feito.                                              "
fi
exit 0

Scripts recomendados

Idesk (Wizard para criação de ícones)

wma2mp3

Gerenciador de contas de usuários

WPA Supplicant

Envia mensagens para o serviço mensageiro do windows facilmente


  

Comentários
[1] Comentário enviado por rai3mb em 12/09/2011 - 02:51h

Achei simplesmente um show! Parabéns.

[2] Comentário enviado por dyncoch em 12/09/2011 - 11:33h

Muito bom!

[3] Comentário enviado por nickmarinho em 12/09/2011 - 20:49h

Adorei, vou testar em breve.




www.lucianomarinho.com.br

www.racaboxer.com.br

[4] Comentário enviado por jehforce em 12/09/2011 - 23:25h

Rapaz.. você merece o premio Nobel... muito legal.

Parabéns, muito criativo.

[5] Comentário enviado por rainingblood em 14/09/2011 - 15:37h

Valeu galera! brigadão

Resolvi usar esse método porque achei o melhor até agora. O eSpeak por exemplo, fica meio tosco.
Se vocês conhecerem uma solução melhor que essa gambiarra, me falem.

[6] Comentário enviado por Helder_Jr em 10/09/2015 - 15:12h


Esse script ainda funciona?

[7] Comentário enviado por nickmarinho em 11/09/2015 - 11:38h

Acredito que sim, basta ter instalado o:
mp3splt - Command line interface to split MP3 and Ogg Vorbis files without reencoding

[8] Comentário enviado por Helder_Jr em 21/09/2015 - 16:13h


[7] Comentário enviado por nickmarinho em 11/09/2015 - 11:38h

Acredito que sim, basta ter instalado o:
mp3splt - Command line interface to split MP3 and Ogg Vorbis files without reencoding

Eu instalei o mp3splt na minha máquina, porém apresenta o erro abaixo no final da conversão.

error: no plugin matches the file 'livro.mp3'
Feito.

O arquivo é criado porém com esse erro é impossível lê-lo.

[9] Comentário enviado por nickmarinho em 21/09/2015 - 17:04h


[8] Comentário enviado por Helder_Jr em 21/09/2015 - 16:13h


[7] Comentário enviado por nickmarinho em 11/09/2015 - 11:38h

Acredito que sim, basta ter instalado o:
mp3splt - Command line interface to split MP3 and Ogg Vorbis files without reencoding

Eu instalei o mp3splt na minha máquina, porém apresenta o erro abaixo no final da conversão.

error: no plugin matches the file 'livro.mp3'
Feito.

O arquivo é criado porém com esse erro é impossível lê-lo.


Uma pergunta boba: você tem o wget instalado ?
Pode ser um erro na hora de gerar o mp3.
Não sei ao certo, estou dando idéias para poder ver se solucionamos o erro.

[10] Comentário enviado por Helder_Jr em 22/09/2015 - 14:03h


[9] Comentário enviado por nickmarinho em 21/09/2015 - 17:04h

Uma pergunta boba: você tem o wget instalado ?
Pode ser um erro na hora de gerar o mp3.
Não sei ao certo, estou dando idéias para poder ver se solucionamos o erro.


Sim, tenho o wget instalado, olhando o script eu pensei que poderia ser a versão do mozilla que estava desatualizado, mesmo atualizando a versão testei novamente com o mesmo erro.... Dai fui no link do google que está no script ( http://translate.google.com/translate_tts?ie=UTF-8&tl=$lang&q=$linha ) sendo que colando isso na URL segue para uma pagina onde é necessário digitar o que tem na imagem, será que é por isso? Ou não tem nada haver?

[11] Comentário enviado por nickmarinho em 22/09/2015 - 15:06h


[10] Comentário enviado por Helder_Jr em 22/09/2015 - 14:03h


[9] Comentário enviado por nickmarinho em 21/09/2015 - 17:04h

Uma pergunta boba: você tem o wget instalado ?
Pode ser um erro na hora de gerar o mp3.
Não sei ao certo, estou dando idéias para poder ver se solucionamos o erro.


Sim, tenho o wget instalado, olhando o script eu pensei que poderia ser a versão do mozilla que estava desatualizado, mesmo atualizando a versão testei novamente com o mesmo erro.... Dai fui no link do google que está no script ( http://translate.google.com/translate_tts?ie=UTF-8&amp;tl=$lang&amp;q=$linha ) sendo que colando isso na URL segue para uma pagina onde é necessário digitar o que tem na imagem, será que é por isso? Ou não tem nada haver?



É amigo, o problema é exatamente esse...teria que conseguir um substituto para isso. :(

[12] Comentário enviado por Helder_Jr em 22/09/2015 - 16:53h


[11] Comentário enviado por nickmarinho em 22/09/2015 - 15:06h

É amigo, o problema é exatamente esse...teria que conseguir um substituto para isso. :(


Mano tranquilo, obrigado pela ajuda, irei procurar mais na internet vê se acho, valeu !

[13] Comentário enviado por JessGonsalves em 30/08/2017 - 10:59h

Eu não sei como utilizar essa ferramenta (sou bem nub no quesito Linux)! Haveria como alguém me explicar o que preciso fazer?


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts