Eine relativ einfache Möglichkeit um auf dem Raspberry Pi einen einfachen Text per Sprachausgabe (TTS) wiederzugeben, kann durch den Sprachsynthesizer pico2wave realisiert werden. Dieser verwendet zur Spracherzeugung „Hidden Markov Model“ (HMM) Algorithmen. Diese TTS-Engine ist Open-Source und hat eine relativ gute Sprachqualität.

Installation unter Raspbian

Leider ist die Installation auf dem Raspberry Pi etwas umständlich, da das Programm erst kompiliert werden muss. Es gibt im Internet aber gute Anleitungen und auch fertige (inoffizielle) Debian-Pakete, die einfach heruntergeladen und installiert werden können.

Empfehlen kann ich folgende Links:

Pico TTS ausführen

Um einen einfachen Text über die Komandozeile per Spracheausgabe wiederzugeben, kann z. B. so realisiert werden.

pico2wave --lang=de-DE --wave=/tmp/test.wav "Guten Morgen"; aplay /tmp/test.wav; rm /tmp/test.wav

Text aus Datei wiedergeben

Es ist auch möglich den Text aus einer Textdatei (max. 35kb) auszulesen und danach wiederzugeben.
Hierzu kann z. B. dieses kleines Script verwendet werden:

#!/bin/bash
language="en-US"
tmpFile="/tmp/picoTmpAudio.wav"
text=""

if [ $# == 1 ]; then
	 text="${1}"
else
   language="${1}"
   text="${2}"   
fi

pico2wave -l=${language} -w=${tmpFile} "`cat ${text}`"
aplay ${tmpFile}
rm ${tmpFile}

Um das Script ausführen zu können, muss dies zuerst durch folgenden Befehl ausführbar gemacht werden.

chmod +x picoTTSFromFile.sh

Es muss der Pfad zur entsprechenden Datei als Parameter angegben werden.
Optional kann auch die verwendete Sprache angepasst werden.

./picoTTSFromFile.sh text_en.txt
./picoTTSFromFile.sh de-DE text_de.txt

Source

Das Script und Beispieldateien habe ich zusätzlich auf GitHub bereitgestellt.
GitHub: SVOX Pico TTS – Read text from file

Text mit SVOX Pico TTS direkt von der Kommandozeile oder aus einer Datei durch Sprachausgabe wiedergeben

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.