Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/bin/sh
- # txt2mp3 - convert ebooks to audiobooks (text files to mp3 audio files)
- # v0.6
- # TODO: remover os números de página, não soletrar acrônimos nem abreviações (ex.: OK, Dr.)
- #
- # (c) 2008 Everthon Valadão <everthonvaladao@gmail.com> under the GPL
- # http://www.gnu.org/copyleft/gpl.html
- #
- # OBS.: primeiramente é necessário instalar os pré-requisitos
- # sudo apt-get -y install espeak lame xpdf-utils odt2txt antiword
- # sudo apt-get -y install mbrola mbrola-br3
- # dependendo de sua versão do Ubuntu (< 10.04), pode ser necessário instalar o MBROLA manualmente:
- # cd /tmp
- # wget http://tcts.fpms.ac.be/synthesis/mbrola/bin/pclinux/mbrola3.0.1h_i386.deb && sudo dpkg -i mbrola3.0.1h_i386.deb
- # wget -c http://tcts.fpms.ac.be/synthesis/mbrola/dba/br3/br3-000119.zip && unzip -x br3-000119.zip
- # sudo mkdir -p /usr/share/mbrola/voices && sudo mv br3/br3 /usr/share/mbrola/voices
- # echo 'Teste, teste, funciona!' | espeak -v mb-br3 | mbrola -e /usr/share/mbrola/voices/br3 - - | aplay -r22050 -fS16
- TXT_FILE="$1"
- BASENAME=`echo "$TXT_FILE" | sed "s/\(.*\)\(\....$\)/\1/g"`
- echo "TTS (text-to-speach) ${TXT_FILE}"
- ext=${1##*.}
- # if it isn`t a TXT file, convert it first
- if [ "$ext" != "txt" ] ; then
- TMP_FILE="/tmp/espeakfile-$$.txt"
- # PDF
- if [ "$ext" = "pdf" ] ; then
- echo "converting from PDF to TXT"
- pdftotext "${TXT_FILE}" "${TMP_FILE}"
- fi
- # ODT
- if [ "$ext" = "odt" ] ; then
- echo "converting from ODT to TXT"
- odt2txt --subst=all "${TXT_FILE}" > "${TMP_FILE}"
- fi
- # DOC
- if [ "$ext" = "doc" ] ; then
- echo "converting from DOC to TXT"
- antiword "${TXT_FILE}" > "${TMP_FILE}"
- fi
- TXT_FILE="${TMP_FILE}"
- fi
- sed -i 's/^[ ]*[0-9]*[ ]*$//g' "${TXT_FILE}"
- rm -f "${BASENAME}_VBR.mp3"
- ## create a FIFO "named pipe" to save space, so espeak write output to a pipe while lame encodes the file on the fly
- rm -f /tmp/voice.wav
- mkfifo /tmp/voice.wav
- ## utiliza o sintetizador do mbrola (soa mais "humano")
- nice espeak -v mb-br3 -f "${TXT_FILE}" | mbrola -t 1.2 -e /usr/share/mbrola/voices/br3 - /tmp/voice.wav 2>/dev/null & \
- ## OBS.: para controlar a velocidade, altere o parâmetro -t para 1.2 (mais lento), 1.0 (normal) ou 0.9 (mais rápido)
- ## ALTERNATIVA: caso o MBROLA não esteja disponível, é possível utilizar somente o sintetizador do espeak (soa meio robotizado)
- # nice espeak -v brazil+f3 -p 25 -f "${TXT_FILE}" -w /tmp/voice.wav & \
- ## converte pra mp3
- xterm -e nice lame -a --resample 16 -V 9 --vbr-new --lowpass 8 -f /tmp/voice.wav -o "${BASENAME}_VBR.mp3"
- echo "...done! Voice saved as ${1}.mp3"
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement