domingo, 10 de agosto de 2008

txt2mp3 - Como converter eBooks pra audioBooks


RESUMO:

Como converter ebooks para audiobooks no Linux Ubuntu:
  1. Instale o sintetizador de voz e demais programas de conversão necessários clicando aqui.
  2. Após, basta salvar este script como txt2mp3.sh e dar permissão de execução (clique com o botão direito no arquivo, selecione Propriedades (aba) Permissão (e marque) Permitir execução ... ).
  3. Para utilizar a conversão, basta clicar com o botão direito no ebook e abrir com o script txt2mp3.sh (clique com o botão direito no ebook, selecione "Abrir com", "Outro aplicativo", "Usar um comando atualizado", selecionando pelo botão "Navegar" este script que você salvou).
Pra quem não conhece, uma fonte de livros digitalizados (ebooks) é o Projeto Gutenberg, porém existe alguns portais que oferecem audiobooks diretamente, como a Audioteca Sal e Luz.

TUTORIAL DETALHADO:


Pessoal,

Ontem eu tive a oportunidade de fazer uma agradável viagem ao passado: consegui através do Projeto Democratização da Leitura baixar os ebooks da excepcional série de ficção científica Perry Rhodan.

Bem, os ebooks estão com uma qualidade excelente, porém, por mais que eu queira não vou conseguir arranjar tempo pra lê-los tanto quanto gostaria. Uai, mas peraí: pensando bem dá pra encaixar um tempinho pra escutá-los enquanto estou no trânsito, caminhando ou mesmo antes de dormir... Sendo assim, basta convertê-los pra áudio! Isto também seria muito útil para deficientes visuais, transformando ebooks em audiobooks.

Procurando um pouco, encontrei no linux uma razoável ferramenta para conversão TTS (text-to-speech) de textos em português, o espeak (ele vem instalado por padrão no Ubuntu, como parte do conjunto de tecnologias assistivas). Para o processo de conversão do texto pra áudio mp3, devemos também instalar alguns softwares de conversão, bastando para isso clicar aqui para instalar os pacotes necessários, ou se você utiliza uma versão anterior à 7.10 do Ubuntu, digite num terminal:
sudo apt-get -y install espeak lame xpdf-utils odt2txt antiword
UPDATE: Passei a utilizar o sintetizador de voz MBrola em conjunto com o espeak, o que produz uma voz um pouco voz "humanizada". A partir do Ubuntu 10.04, é possível instalá-lo diretamente dos repositórios oficiais, bastando clicar aqui para instalar.

Se você utiliza outra distribuição Linux ou utiliza uma versão mais antiga do Ubuntu, terá que instalá-lo manualmente e para isso execute:




UPDATE: As versões mais atuais do eSpeak usam os fonemas do Mbrola diretamente, ao contrário de passá-los pro Mbrola pelo pipeline, como acontecia antigamente. Além disso, a voz em português provida pelo Mbrola mb-br3 estranhamente começou a soar muito grave, por isso substituí-a pela mb-br1. Por conta disso, o script antigo (v0.6) parou de funcionar e foi necessário atualizá-lo (v0.9).

Pra facilitar a minha vida e a de todos, fiz um scriptzinho pra converter de TXT pra MP3.




Salve o código acima em um arquivo chamado txt2mp3.sh e dê permissão de execução ( chmod +x txt2mp3.sh ). Agora basta clicar com o botão direito no ebook e selecionar "Abrir com"; "Outro aplicativo"; "Usar um comando atualizado", selecionando pelo botão "Navegar" este script que você salvou.
OBS.: Você também pode chamar este script via linha de comando passando o caminho do ebook como parâmetro ou então, mais elegantemente, chamá-lo numa ação de clique direito do mouse com o nautilus-actions ou mesmo colocá-lo na pasta de scripts do nautilus (~/.gnome2/nautilus-scripts/).
UPDATE: Olha só que coisa boa: já tem até gente fazendo dinheiro com esta dica... Tão convertendo os livros do Perry Rhodan pra MP3 e vendendo no MercadoLivre... (vale lembrar que quem não quiser pagar, pode obter os livros aqui ou aqui e converter em casa DE GRAÇA com a ajuda desta dica).

3 comentários:

curtocircuito disse...

Caro, essa sua dica ainda funciona ou você tem uma solução melhor para me apontar? Fiz todo o processo, coloquei script numa ação de clique direito do mouse com o nautilus-actions, mas não acontece nada quando faço a operação. Você pode me dar mais detalhes como é a operação completa?

Obrigado

Adriano Borges Costa

Everthon Valadão disse...

Adriano,

As versões mais atuais do eSpeak usam os fonemas do Mbrola diretamente, ao contrário de passá-los pro Mbrola pelo pipeline, como acontecia antigamente. Além disso, a voz em português provida pelo Mbrola mb-br3 estranhamente começou a soar muito grave, por isso substituí-a pela mb-br1.

Por conta disso, o script antigo (v0.6) parou de funcionar e foi necessário atualizá-lo (v0.9). Já atualizei o post no blog pra corrigir estes problemas.

Pra testar, execute no terminal:

echo echo 'teste, teste, funciona!' | espeak -v mb-br1

Everthon Valadão disse...

Adriano,

Parece que correu tudo bem com a instalação do script, porém pelo erro que você relatou
"ALSA lib pcm_dmix.c:957:(snd_pcm_dmix_open) The dmix plugin supports only playback stream"
, o problema parece ser no sistema de controle de áudio da sua placa de som (http://askubuntu.com/questions/82118/espeak-returns-error-on-ubuntu-server).

Dependendo da versão do seu Ubuntu Linux, o sistema de som pode ser o ALSA (antigo) ou o PulseAudio (novo).

1) no último caso, pra testar utilize o seguinte comando, que direciona a saída de som de maneira apropriada pro PulseAudio, execute no terminal:

echo 'teste, teste, funciona!' | espeak -v mb-br1 --stdout | paplay

OBS.: aqui no meu Ubuntu 11.10, eu instalei e testei seguindo os passos indicados e tudo funciona corretamente :)

2) você também pode testar o sintetizador de voz através da interface gráfica:

espeak-gui

3) porém, independente destes testes de áudio funcionarem ou não, o importante mesmo é o script converter o texto em mp3, portanto, não se esqueça de testar o script. Por exemplo, execute no terminal algo como:

bash txt2mp3.sh nomedoarquivo.pdf

OBS.: Pra ficar mais fácil d'eu te ajudar, caso não funcione, envie-me as próximas mensagens por e-mail (everthonvaladao@gmail.com). Não consegui encontrar o seu endereço de e-mail pelo seu perfil no Blogger, por isso tive que escrever aqui como comentário mesmo.