Es gibt ein Modul pyttsx3, mit dem man Text in eine Audio-Ausgabe umwandeln kann. Diese Audio-Umwandlung kann auch in einer Datei gespeichert werden, so dass man z.B. ein Buch im pdf-Format einlesen kann, um es dann in eine Audio-Buch umzuwandeln. Allerdings ist fraglich, ob man sich wirklich einen längeren Text mit der künstlichen etwas blechern klingenden Stimme anhören möchte. Aber für kurze Ausgaben, z.B. Hinweise oder Fehlermeldungen könnte dies für eine barrierefreie Software interessant sein.
Die Anleitung zum Modul findet man auf der pyttsx3-Webseite.
Beispiel-Skript:
import pyttsx3
speaker = pyttsx3.init()
speaker.setProperty('voice', 'German')
rate = speaker.getProperty('rate') # defaut: 200
speaker.setProperty('rate', int(rate)-20)
text = 'Guten Tag! Es ist Donnerstag, der 12.Januar 2023.'
speaker.say(text)
speaker.runAndWait()
speaker.save_to_file(text, 'speech.mp3')
speaker.runAndWait()
speaker.stop()
Die „Stimme“ (voice), genau genommen die Sprache, kann man einstellen. Man kann sich alle vorhanden „Voices“ ausgeben lassen, um zu sehen, welche Stimmen vorhanden sind.
voices = speaker.getProperty('voices')
for voice in voices:
print("Stimme:")
print(f"ID: {voice.id}")
print(f"Name: {voice.name}")
print(f"Alter: {voice.age}")
print(f"Geschlecht: {voice.gender}")
print(f"Sprachen: {voice.languages}")
Ebenso lässt sich die Sprechgeschwindigkeit (Standard: 200 Wörter / min) und die Lautstärke (Standard: 1.0) einstellen:
speaker.setProperty('rate', 180)
speaker.setProperty('volume, 0.75)
Damit das Modul funktioniert, muss unter Linux die Bibliothek espeak installiert sein.
Unter Ubuntu ist die Installation möglich mit
sudo apt install espeak