Professionelle Stimme gesucht

Ich selber verwende die weibliche Stimme, habe aber auch eine Variante mit männlichem Sprecher, wo die Aussprache noch etwas „runder“, natürlicher ist.
@Thorsten, wenn du möchtest kannst du diese Version auch aufs GIT stellen. Der link, den ich dir geschickt habe, ist noch der gleiche.

Wer dann die neuen Stimmen, z.B. von Google, etwas pitchen möchte, kann wieder SoX verwenden (gibts für alle gängigen Plattformen). Meiner Meinung nach hört sich die Google-Tante schon extrem gut an, aber eben doch wie eine Nachrichtensprecherin. Mit sox und pitch=200 könnte es etwas niedlicher gepimpt werden.

Hallo,

kann mir jemand bitte kurz erklären, wie ich eigene MP3s erstellen kann aus texten in Windows? Vielen Dank.

Mfg DS

Welche Stimme verwendest Du denn aktuell?
Für Google-TTS (Dateien von Johannes) und Amazon Polly benötigst Du jeweils ein Konto bei den Diensten.
Windows bietet auch eine „eigene“ Sprachausgabe. Die hört sich nicht ganz so toll an, ist aber einfacher zu benutzen. Um es einheitlich zu haben müsstest du ja auch alle neu erstellen.

Aktuell verwende ich die Stimmen von Johannes. Wollte da aber noch eigene Sätze und Ansagen einbauen. Hab auch schon mal bisschen was probiert. Ubuntu für Windows installiert und versucht im Bash Skripte auszuführen. Aber irgendwie habe ich es nicht geschafft, mir eine Google API zu besorgen, um das Skript laufen zu lassen. Habe gedacht, dass jemand da vielleicht eine kurze Anleitung hat, wie das geht. Wenn ich das richtig gesehen habe, kostet das bei Google ja auch Geld, oder?

Irgendwann schon. Du hast allerdings ein „Monthly free tier“ in welchem 1 mio Zeichen kostenlos sind. Die nächsten 1 Mio. Zeichen kosten dann 16$ Cloud Text-to-Speech API Pricing Außerdem kannst Du Budgets einrichten um eine Abrechnung zu verhindern.

Kennst du Dich mit der GCP (Google Cloud Platform) aus bzw. bist Du dort bereits angemeldet?

  • Anmeldung an der GCP (oder Registrierung). Z.B. indem Du hier https://cloud.google.com/text-to-speech/ auf „Try free“ klickst
  • Zahlungsinformationen in der GCP hinterlegen Klick
  • Dann kannst du der Hilfe von Google Text-To-Speech folgen → Klick
  • Punkt 5 ist aus meiner Sicht optional, denn Johannes verwendet einen API-Key und kein Dienstkonto.

API-Key erstelln

  • In der GCP auf „APIs & Dienste“ → „Anmeldedaten“ (Sicherstellen, dass dein neu angelegtes Projekt ausgewählt ist)
  • „Anmeldedaten erstellen“ → „API Schlüssel“

Hört sich schlimmer an als es ist…

1 „Gefällt mir“

Super, danke. Werde ich die Tage mal probieren.

Ich habe noch einen Online-Service gefunden der “OK” klingt. Falls jemand mal schnell einen Satz braucht. https://pediaphon.org/~bischoff/radiopedia/sprich.html

1 „Gefällt mir“

Hallo Thorsten,

kennst Du die Plattform Fiverr? Da gibt es hunderte Sprecher die auch relativ günstig sind. Vielleicht finden wir da ja jemanden, der für wenig Geld deinem Projekt seine Stimme geben möchte.

Zum Beispiel:
Kinderstimme
weibliche Stimme

Man müsste nur ein Skript schreiben welche Wörter wie eingesprochen werden sollen und diese dann noch in die richtige (Datei-)Form bringen. Wenn z.B. durch Spenden ein paar Euro zusammen kommen, könnte man auch mehrere Stimmen zur Auswahl anbieten. Einfach Mal ein paar Sprecher anschreiben, ob die das machen würden.

Gruß
Papa

5 „Gefällt mir“

Super Link! Werde mir das anschauen und würde auch die Kosten übernehmen.

Danke!!!

2 „Gefällt mir“

Die zweite Stimme gefällt mir besonders gut! Sollten wir dann bei Zeiten mal Brainstormen wie die Texte genau sein sollen? Vielleicht kann man bei den vorhandenen hier und da noch was optimieren!?

Die Dame mit der Kinderstimme hat ein sehr breites Spektrum an Stimmen:
Beispiel: Kinderstimme 2
Alleine hier wäre die Auswahl schon sehr schwer und es gibt hunderte Sprecher auf der Plattform.

Ich persönlich finde auch eine jugendliche Männerstimme ganz angenehm:
männliche Stimme

Aber erst muss der Text stehen. Mir wäre es auch wichtig, dass man optionale Texte dabei hat um zum Beispiel die getrennte Lautstärketasten zu verwenden usw.

Hallo,

vielen Dank für das Skript. Ich habe versucht, die Stimmen für die CubieBox zu ergänzen. Ich arbeite auf MacOS und habe homebrew installiert. So sieht mein Skript aus:

#!/bin/bash`
#replace google api key with your key
GOOGLE_API_KEY=***

s="$(cat << EOF
0305|Eine neue Karte wurde erkannt. Bitte lasse die Karte auf der Box liegen, bis die Karte konfiguriert ist. Du kannst jetzt mit den Lautstärketasten einen Ordner auswählen. Bestätige mit der Pausetaste. 
0306|Ok. Du kannst jetzt mit den Lautstärketasten den Wiedergabemodus auswählen. Bestätige mit der Pausetaste.
0310|Hörspielmodus. Einen zufälligen Titel aus dem Ordner wiedergeben.
0320|Albummodus. Den kompletten Ordner wiedergeben.
0330|Partymodus. Den Ordner zufällig wiedergeben.
0340|Lieblingsfolge. Einen bestimmten Titel aus dem Ordner wiedergeben.
0341|Ok, Lieblingsfolge. Verwende nun die Lautstärketasten um die Lieblingsfolge auszuwählen, bestätige mit der Pausetaste.
0350|Hörbuchmodus. Den kompletten Ordner wiedergeben und den Fortschritt speichern.
0390|Ok, ich habe die Karte konfiguriert. Viel Spass damit.
0391|Karte konfigurieren abgebrochen.
0392|Beim konfigurieren der Karte ist leider ein Fehler aufgetreten. Bitte versuche es noch einmal.
0405|Bitte lege die zu löschende Karte auf die Box und warte auf die Bestätigung.
0490|OK, ich habe die Karte gelöscht.
0491|Karte löschen abgebrochen.
0492|Beim löschen der Karte ist ein Fehler aufgetreten. Bitte versuche es noch einmal.
0505|Los gehts!
0510|Oh je, meine Batterie ist alle! Bitte Mama oder Papa, daß sie die Batterie tauschen. Ich schalte mich jetzt ab, bis bald.
EOF)"
IFS=$'\n'
for a in `echo "$s"`; do
   j=`echo $a | cut -f1 -d'|'`
   i=`echo $a | cut -f2 -d'|'`
    curl --header "Content-Type: application/json; charset=utf-8" --data "{
     'audioConfig': {'audioEncoding': 'MP3','speakingRate': 1.00,'sampleRateHertz': 44100,'pitch': 0},
     'voice': {'languageCode': 'de-DE','name': 'de-DE-Wavenet-C'},
     'input': {'text': '${i}'}
   }" "https://texttospeech.googleapis.com/v1/text:synthesize?fields=audioContent& key=${GOOGLE_API_KEY}" | php -r "print(json_decode(file_get_contents('php://stdin'),true)['audioContent']);" | base64 --decode > mp3.johannes/${j}.mp3
done

und ich erhalte folgende Fehlermeldung(en):

/Users/.../Downloads/TonUINO/TonUINO-MOD/create_audio_messages.sh: line 32: mp3.johannes/0510.mp3: No such file or directory
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100 42978    0 42657  100   321   124k    959 --:--:-- --:--:-- --:--:--  124k

Ich habe auch einen Ordner “mp3.johannes” erstellt.

Kann mir hier bitte jemand bei dem Fehler im Skript weiterhelfen?

Wie und wo genau hast du das Script aufgerufen? Und wo ist der Zielordner erstell worden? Es sieht so aus als findet er den Zielordner nicht.

Vielen Dank für den zielführenden Hinweis!

Ich habe das Skript in
/Users/.../Downloads/TonUINO/TonUINO-MOD/
liegen und rufe es über den Terminal mit
sh /Users/.../Downloads/TonUINO/TonUINO-MOD/create_audio_messages.sh
auf.

Ich bin im Terminal zu dem Ordner /Users/…/Downloads/TonUINO/TonUINO-MOD/ gegangen und habe dort das Skript mit sh create_audio_messages.sh aufgerufen.

Den Zielordner habe ich unter /Users/…/Downloads/TonUINO/TonUINO-MOD/mp3.johannes/ erstellt.

:grinning:

Schön das es geklappt hat. :+1:t2: Du kannst das Script in dem Ordner auch einfach ausführbar machen chmod +x create_audio_messages.sh. Und dann in dem order via ./create_audio_messages.sh ausführen. Verwirrend ist auch das es ein bash Script ist, aber .sh heißt. Ich würde es umbennen.

Danke für die Info. Ich kenne mich leider überhaupt nicht mir der Programmierung von Skripten aus und habe mich mit try-and-error dem Ziel genähert

Einmal ist immer das erste mal. :wink: Das ist ja das schöne an dem Projekt. Man lernt immer was dazu.

:thinking: Es ist durchaus üblich bash-Scripte mit .sh enden zu lassen - ist schließlich die Bourne-again shell

2 „Gefällt mir“

Ich bin nich der hardcore Linux Hacker, ich mache es halt immer so wie beschrieben.