Was macht Cola Sprachausgabe?
Erstellen Sie lange chinesische Skripte in zwei benannten ListenHub-Stimmen und liefern Sie jedes Segment sowie eine vollständig zusammengeführte MP3-Datei aus. Der Workflow dient dazu, Fehler durch zu lange Eingaben und versehentliches Überschreiben zwischen Stimmvarianten zu vermeiden.
Einfacher Aufruf
Behandeln Sie den Skill-Aufruf zusammen mit einer angehängten Textdatei als vollständige Benutzereingabe. Fragen Sie den Benutzer nicht, etwas zu teilen, einzufügen, hochzuladen, umzubenennen, herunterzuladen oder zusammenzuführen. Die Standardausgabe erfolgt in beiden Stimmen:
晓曼: alle geordneten MP3-Chunks plus eine zusammengeführte MP3Cola: alle geordneten MP3-Chunks plus eine zusammengeführte MP3
Die Anzahl der Chunks ist dynamisch: Wählen Sie sie basierend auf der Quellenlänge und der zuverlässigen TTS-Eingabegröße, nicht nach einer festen Anzahl. Ein kurzer Text kann einen Chunk erzeugen; ein langes Podcast-Skript kann viele erzeugen. Ein erfolgreicher Lauf ist erst abgeschlossen, wenn alle Dateien lokal vorhanden sind und jede Datei mit einer MEDIA:-Zeile ausgeliefert wird. Wenn der Benutzer explizit nur eine Stimme anfordert, liefern Sie den vollständigen Satz dieser Stimme aus; andernfalls generieren Sie beide.
Sprachregister
Verwenden Sie diese exakten ListenHub-Sprecher-IDs:
- Xiaoman / 晓曼:
chat-girl-105-cn - Cola:
chatb812x-500306f5
Ersetzen Sie nicht eine Stimme durch die andere. Geben Sie in der endgültigen Antwort die genaue Stimme für jede Dateigruppe an.
Akzeptierte Eingabe
Akzeptieren Sie entweder Rohtext oder eine angehängte Text-/Dokumentdatei. Wenn es sich bei der Eingabe um eine Podcast-Audiodatei oder eine Podcast-URL handelt, transkribieren Sie diese zuerst mit einer ASR-/Transkriptionsfunktion und verwenden Sie dann das resultierende Transkript als Erzählquelle. Behalten Sie die Reihenfolge des Transkripts bei und trennen Sie verschiedene Sprecher oder Abschnitte, wenn dies sinnvoll ist.
Generierungsstrategie
Verwenden Sie eine zweistufige, abschnittserhaltende Pipeline anstatt einen langen Anhang oder eine private Datei-URL an ListenHub zu senden:
- Normalisieren Sie die Quelle in sprechbaren Text, wobei die ursprüngliche narrative Reihenfolge und sinnvolle Abschnittstitel erhalten bleiben.
- Teilen Sie an Kapitel- oder Abschnittsgrenzen, sodass jede TTS-Anfrage innerhalb einer zuverlässigen Eingabegröße bleibt und eine fehlgeschlagene Anfrage wiederholt werden kann, ohne das gesamte Buch neu zu generieren.
- Generieren Sie denselben geordneten Chunk-Satz einmal mit Xiaoman und einmal mit Cola. Halten Sie die Stimmläufe unabhängig, sodass ein Fehler oder ein Wiederholungsversuch in einer Stimme die andere nicht ersetzen kann.
- Überprüfen Sie jeden ListenHub-Episode auf Erfolg, laden Sie dann die zurückgegebene
audioUrlherunter. Verwenden Sie die generierte Audio-URL, nicht die Gliederung oder Zusammenfassung des Dienstes. - Speichern Sie Chunks in stimmspezifischen Verzeichnissen und führen Sie sie erst zusammen, nachdem jeder erwartete Chunk vorhanden ist. Überprüfen Sie Dauer und Größe für beide zusammengeführten Ausgaben.
- Liefern Sie jeden Chunk und beide zusammengeführten Dateien aus. Dies ermöglicht den Austausch einzelner Kapitel und hält das vollständige Hörbuch bequem abspielbar.
Das direkte Übergeben von Rohtext-Chunks ist beabsichtigt: ListenHub kann lokale Pfade und private hochgeladene Text-URLs als ungültige Quellen ablehnen. Wenn der ListenHub-Endpunkt speziell eine URL oder HTML-Quelle erfordert, erstellen Sie ein temporäres HTML-Dokument, das den maskierten Quelltext in einem Article-Element enthält, laden Sie es nur mit Genehmigung des Benutzers hoch und übergeben Sie die resultierende abrufbare URL. Behandeln Sie HTML als Fallback-Transport, nicht als Ersatz für die direkte Chunk-Generierung; wenn die HTML-URL abgelehnt wird, kehren Sie zum direkten Chunk-Text zurück. Getrennte Namen und Verzeichnisse sind ebenfalls beabsichtigt: Ein gemeinsamer Ausgabename kann eine zuvor gültige Stimmversion überschreiben.
Arbeitsablauf
- Lesen oder transkribieren Sie die vollständige Eingabe, bevor Sie Audio generieren. Behalten Sie die Quellreihenfolge und den Wortlaut bei. Entfernen Sie nur Markups, die nicht gesprochen werden sollen, wie z. B. Markdown-Überschriftsyntax, es sei denn, der Benutzer bittet um wörtliches Lesen des Dokuments. Behalten Sie aussagekräftige Abschnittstitel und Erzählhinweise bei, wenn sie Teil des Skripts sind.
- Schätzen Sie die zuverlässige Eingabegröße und teilen Sie dynamisch auf. Bevorzugen Sie Abschnittsgrenzen (
##, Kapiteltitel oder natürliche Absatzumbrüche) und teilen Sie dann zu große Abschnitte an Absatzgrenzen. Verwenden Sie so viele Chunks wie nötig; erzwingen Sie niemals eine feste Anzahl wie 11. Benennen Sie Chunks mit nullgefüllten Indizes:00,01,02usw. - Rufen Sie für jede angeforderte Stimme
create_ttsvon ListenHub auf mit:language: zhtts_type: texttts_mode: direct- der ausgewählten Sprecher-ID
- dem Rohtext genau eines Chunks
- Überprüfen Sie jede zurückgegebene Episode mit
check_status, bisprocessStatussuccessist. Notieren Sie die zurückgegebeneaudioUrlin Chunk-Reihenfolge. Verwenden Sie nicht die Episodengliederung als Audioquelle; es könnte sich um eine Zusammenfassung und nicht um das bereitgestellte Skript handeln. - Laden Sie jede erfolgreiche Audio-URL lokal herunter. Verwenden Sie getrennte Verzeichnisse für jede Stimme, z. B.:
xiaoman-listenhub-parts/00.mp3cola-listenhub-parts/00.mp3
- Führen Sie die Chunks jeder Stimme mit dem gebündelten
scripts/merge_mp3.shoder einem äquivalenten FFmpeg-Concat-Workflow zusammen. Verwenden Sie separate, explizite Ausgabennamen:全文朗读-晓曼-ListenHub合并版.mp3全文朗读-Cola-ListenHub合并版.mp3Schreiben Sie niemals beide Varianten in einen gemeinsamen Dateinamen.
- Überprüfen Sie jede zusammengeführte Datei mit einem Audio-Probe. Melden Sie Dauer und Dateigröße und stellen Sie sicher, dass alle erwarteten Chunk-Dateien vor der Auslieferung vorhanden sind.
- Liefern Sie eine
MEDIA: /absoluter/pfad-Zeile für jede Datei: beide zusammengeführten Dateien und alle segmentierten Dateien für beide Stimmen. Liefern Sie nicht nur ein Verzeichnis oder nur die zusammengeführten Versionen aus.
Eingabe- und Fehlerbehandlung
- Wenn ein lokaler Anhang nicht direkt an ListenHub übergeben werden kann, lesen Sie ihn lokal und übergeben Sie Chunk-Text direkt an
create_tts. Übergeben Sie keinen lokalen Pfad als Erzählungsinhalt: ListenHub würde den Pfad wörtlich lesen oder ablehnen. - Wenn eine private hochgeladene Text-URL mit
Ungültige Eingabe an der Quelleabgelehnt wird, hören Sie auf, diese URL erneut zu versuchen, und verwenden Sie stattdessen direkten Chunk-Text. - Wenn eine Generierung erfolgreich ist, aber das Herunterladen ihrer
audioUrlein Zeitlimit überschreitet, wiederholen Sie den Vorgang gegen den zurückgegebenen ListenHub-Asset-Host und bewahren Sie die Zuordnung von Episoden-ID und URL. - Wenn eine Stimmgenerierung fehlschlägt, ersetzen Sie sie nicht stillschweigend durch die andere Stimme. Melden Sie die fehlgeschlagene Stimme und behalten Sie alle erfolgreich generierten Stimmdateien.
- Bewahren Sie vorhandene Dateien, indem Sie einen neuen, stimmspezifischen Dateinamen wählen. Das Überschreiben der zusammengeführten Datei einer vorherigen Stimme führt zum Verlust einer gültigen auslieferbaren Datei.
- Bei einem langen Skript kann die Generierung kostenpflichtig sein und mehrere Minuten dauern. Verfolgen Sie die Arbeit als mehrstufige Aufgabe und markieren Sie sie erst als abgeschlossen, nachdem beide angeforderten Stimmgruppen, deren Chunks und deren zusammengeführte Dateien überprüft wurden.
Abschließende Akzeptanzprüfung
Überprüfen Sie vor der Antwort die gesamte Kette, nicht nur, dass eine TTS-Anfrage erfolgreich war:
- Der Rohtext oder das Podcast-Transkript wurde vollständig gelesen und die Abschnittsreihenfolge wurde beibehalten.
- Eine dynamische Chunk-Anzahl wurde basierend auf der Eingabelänge gewählt; es wurde keine feste Segmentanzahl angenommen.
- Dieselben dynamisch gewählten Chunk-Indizes existieren für beide angeforderten Stimmen.
- Jeder Chunk hat eine heruntergeladene, nicht leere MP3-Datei.
- Jede Stimme hat eine separate zusammengeführte MP3 ohne gemeinsamen Dateinamen oder Überschreiben.
- FFprobe oder ein äquivalenter Audio-Probe meldet Dauer und Größe für beide zusammengeführten Dateien.
- Die endgültige Antwort identifiziert die beiden exakten Sprecher-IDs und enthält eine
MEDIA:-Zeile für jeden Chunk und jede zusammengeführte Datei.
Wenn eine Prüfung fehlschlägt, arbeiten Sie weiter oder melden Sie den spezifischen fehlgeschlagenen Chunk/die fehlgeschlagene Stimme; behaupten Sie keine vollständige Auslieferung.
Auslieferungs-Checkliste
- Korrekte Sprecher-ID für jede Generierung verwendet
- Alle Quellabschnitte in der richtigen Reihenfolge abgedeckt
- Jeder Chunk für jede angeforderte Stimme heruntergeladen
- Zusammengeführte Dateien haben eindeutige stimmspezifische Namen
- Dauer und Dateigröße überprüft
- Alle Chunk-Dateien und beide zusammengeführten Dateien mit
MEDIA:-Zeilen ausgeliefert