Skip to main content
Orux AIOruxAI

Orux AI / Modellnotizen

Qwen3 TTS: Unterrichtstext ohne Verlust aufteilen

Zweisprachige Lektionen für Qwen3 TTS vorbereiten: lokaler Python-Teiler, 3 echte Textteile, Erhaltungsprüfungen, Formulargrenzen und Credits-Preise.

Orux AIVeröffentlicht 6 Min. Lesezeit
Qwen3 TTS: Unterrichtstext ohne Verlust aufteilen — Zweisprachige Lektionen für Qwen3 TTS vorbereiten: lokaler Python-Teiler…
In diesem Artikel

Die Lektion vor der Synthese in prüfbare Teile aufteilen

Eine zweisprachige Naturlektion wechselt möglicherweise von englischen Anweisungen zu chinesischen Beobachtungsaufgaben und zurück. Vor dem Übertragen des ganzen Dokuments braucht es Vorbereitung: Wortlaut erhalten, Eingaben begrenzen und Reihenfolge prüfen. Ein Schnitt nach immer derselben Zeichenzahl kann eine Anweisung zerreißen.

Dieser Leitfaden liefert einen lokalen Python-Teiler für das aktuelle Orux-Formular von qwen3-tts-flash, mit speech-2.8-hd als zweiter Katalogoption. Er erstellt drei geordnete Textteile, erhält jedes Zeichen und lehnt zu lange Segmente ab, statt sie still zu kürzen oder zu verwerfen. Audio, Aussprache und natürliches zweisprachiges Lesen wurden nicht getestet. Das sind spätere Hörentscheidungen.

Beide geprüften Textfelder deklarieren höchstens 600 Zeichen. Das Werkzeug verwendet eine lokale UTF-16-Codeeinheiten-Grenze, für die Demonstration auf 80 reduziert. Das ist eine konservative Vorbereitungsregel, keine Definition abrechenbarer Zeichen oder des nativen Modellkontexts. Eingabelimit, Textdarstellung und Rechnungsmengen trennen.

Lokale Teilung: drei Texte mit 63, 65, 35 UTF-16-Einheiten, kein erzeugtes Audio
Lokale Teilung: drei Texte mit 63, 65, 35 UTF-16-Einheiten, kein erzeugtes Audio

Vor der Übergabe beide Formulare prüfen

qwen3-tts-flash zeigt input und die Stimme Cherry; speech-2.8-hd zeigt text und male-qn-qingse. In der öffentlichen Konfiguration vom 1. November 2026 beträgt das Textmaximum jeweils 600. Die Feldnamen sind konkrete Verträge und nicht austauschbar, nur weil beide Aufgaben Sprache erzeugen.

Das bestätigt weder alle anderswo beworbenen Stimmen noch Aussprache-Markup, Satzsprachen oder exaktes Timing. Ein Stimmenname beweist keine korrekte englische Vokabel oder chinesische Ortsbezeichnung. Nach autorisierter Generierung eine kurze freigegebene Passage anhören. Ein vorgeschlagenes Skript ist keine bereits geprüfte Aufnahme.

Den Wortlaut als prüfbare Quelle bewahren. Textartefakte enthalten Nummer und exakte Worte; ein separates Audiomanifest verknüpft später genehmigte Stimme und Datei. Ändert die Lehrkraft einen Satz, erleichtern Grenzen die Auswahl der Neugenerierung, garantieren aber keine nahtlosen Übergänge zwischen alten und neuen Aufnahmen.

Die Satzgrenze dieses kleinen Werkzeugs definieren

Erkannt werden chinesischer Punkt, Frage- und Ausrufezeichen sowie englische Entsprechungen vor Leerraum oder Zeichenkettenende. Der Punkt einer einfachen Dezimalzahl wie 3.5 wird dadurch nicht getrennt. Nicht alle Abkürzungen, Zitate oder Sprachkonventionen werden verstanden; Menschen müssen die Teile prüfen.

Es werden keine Leerzeichen entfernt und keine Satzzeichen normalisiert. Benachbarte Stücke werden bis zur Grenze zusammengefügt. Ein einzelnes zu langes Stück wird nicht gewaltsam geteilt, sondern mit Fehler zur manuellen Bearbeitung zurückgegeben. Exakte Erhaltung und einfache Regeln haben Vorrang vor automatischer Annahme jedes Dokuments.

Leere Eingaben werden abgelehnt, die Grenze muss ganzzahlig von 1 bis 600 sein. 80 dient dazu, den Mehrteiler-Pfad mit einer kurzen Fixture auszuführen. Es ist weder eine empfohlene Audiodauer noch eine Sekundenumrechnung. Sprechtempo, Pausen und Länge müssen an einer echten Aufnahme gemessen werden.

Den vollständigen Teiler lokal ausführen

Als chunk_lesson.py speichern und python3 chunk_lesson.py ausführen. Nur Standardbibliothek, kein API Key und kein Netz. Der erfundene Unterrichtstext beschreibt Blattbeobachtung ohne Pflanzen zu pflücken. Er ist eine redaktionelle Fixture, keine Modellantwort, Unterrichtsstudie oder Aufnahme einer echten Lehrkraft.

Python
"""Local text preparation only. No TTS request or billed-character measurement."""
import json
import re

def units(text):
    return len(text.encode("utf-16-le")) // 2

def chunks(text, limit=600):
    if not isinstance(text, str) or not text.strip():
        raise ValueError("A nonempty lesson is required")
    if type(limit) is not int or not 1 <= limit <= 600:
        raise ValueError("Choose a local cap from 1 to 600 UTF-16 units")
    pieces = re.split(r"(?<=[。!?])|(?<=[.!?])(?=\s|$)", text)
    result, current = [], ""
    for piece in pieces:
        if not piece:
            continue
        if units(piece) > limit:
            raise ValueError("One segment exceeds cap; edit it manually")
        if current and units(current + piece) > limit:
            result.append(current)
            current = ""
        current += piece
    if current:
        result.append(current)
    assert "".join(result) == text
    assert all(0 < units(x) <= limit for x in result)
    return result

if __name__ == "__main__":
    lesson = ("Welcome to the field lesson. Observe the leaf before naming it. "
              "先观察叶子的边缘,再记录它的形状。不要采摘植物。 "
              "Write one observation in your notebook. Then compare it with your partner.")
    output = chunks(lesson, limit=80)
    assert len(chunks("Ready 🌿. Next step.", 12)) == 2
    assert units("🌿") == 2 and len("🌿") == 1
    for text, limit in [("x" * 81, 80), ("", 80), (lesson, 601)]:
        try:
            chunks(text, limit)
        except ValueError:
            pass
        else:
            raise AssertionError("Invalid lesson accepted")
    print(json.dumps([{"part": i+1, "utf16_units": units(t), "text": t}
                      for i, t in enumerate(output)], ensure_ascii=False, indent=2))

Tatsächliches lokales Ergebnis:

JSON
[
  {
    "part": 1,
    "utf16_units": 63,
    "text": "Welcome to the field lesson. Observe the leaf before naming it."
  },
  {
    "part": 2,
    "utf16_units": 65,
    "text": " 先观察叶子的边缘,再记录它的形状。不要采摘植物。 Write one observation in your notebook."
  },
  {
    "part": 3,
    "utf16_units": 35,
    "text": " Then compare it with your partner."
  }
]

Die Teile haben 63, 65 und 35 UTF-16-Einheiten. Führende Leerzeichen sind beabsichtigt: In Reihenfolge zusammengefügt entsteht exakt die Quelle. Der Code prüft diese Identität und alle Grenzen. Nicht trimmen und weiterhin dieselbe Erhaltung behaupten. Benötigt eine spätere Anwendung Leerraumreinigung, ist dies eine gesondert zu testende und freizugebende Transformation.

Das Blatt-Emoji ist ein Python-Unicode-Codepunkt, aber zwei UTF-16-Einheiten. Keiner der Werte misst Gesprochenes, Audiodauer oder Rechnung. Ein sichtbares Symbol ist möglicherweise keine sinnvolle Vorleseanweisung. Separat entscheiden, ob es in einer echten Lektion durch genehmigte Wörter ersetzt werden soll.

Aussagekräftige Fehler vor echten Dokumenten prüfen

Das Beispiel lehnt ein 81-Einheiten-Segment bei Grenze 80, eine leere Lektion und eine Grenze über 600 ab. Ein kurzes Emoji-Beispiel muss unter Grenze 12 zwei Teile erzeugen. Geprüft werden lokaler Vertrag und Darstellungsrandfall, nicht ein entferntes TTS-Modell, eine ganze Sprache oder alle Dateiformate.

Ist ein Satz zu lang, an einer sinnvollen Stelle in zwei klare Anweisungen umarbeiten. Sicherheitsanweisungen nicht still abschneiden oder Schlussbedingungen löschen. Neue Quelle freigeben, erneut ausführen und Zusammensetzung sowie Reihenfolge von der Lehrkraft kontrollieren lassen. Ein bestandener Zähler reicht ohne erhaltenen Sinn nicht.

Die Regel kann Abkürzungen ungünstig trennen oder ein Schlusszitat zum nächsten Segment legen. Das ist ein Prüfgrund, kein Beleg für Satzverständnis. Bei komplexen Zitaten und Fachnotation Regeln anpassen oder Segmente manuell kuratieren, bevor sie zur Generierung gehen.

Die Preiseinheit vergleichen, ohne eine Skriptrechnung zu erfinden

Orux-AliasEinheitCredits/1,000 abgerechnete ZeichenHypothetisch 3,000 Zeichen
qwen3-tts-flashper_kchar2.16696.5007
speech-2.8-hdper_kchar10.208430.6252

Horizontal wischen, um die ganze Tabelle zu sehen.

Gewöhnliche öffentliche Orux-Preise vom 1. November 2026; 1 Credit=$0.005. Beide Zeilen rechnen exakt und enthalten keine zusätzliche Mindestgebühr. Die letzte Spalte multipliziert ausdrücklich hypothetische 3,000 abgerechnete Zeichen. Sie misst oder beziffert nicht die drei Teile; es gab keine Audioanfrage für tatsächlichen Verbrauch.

Python-Länge, UTF-16-Länge oder UTF-8-Bytes nicht multiplizieren und als abgerechneten Betrag ausgeben. Das Limit dient der Vorbereitung, Sprachverbrauch wird separat gemessen. Aufteilung verändert auch Anfragezahl und Prüfaufwand. Vor der Synthesefreigabe aktuelle Preise und genaue Schätzung prüfen, besonders nach geänderten Bedingungen.

Preisunterschiede belegen weder Stimmenpräferenz noch Aussprache, Dauer oder Qualitätssieger. Offizielle Anbieterpreise wurden nicht unabhängig verglichen, eine Ersparnis wird nicht behauptet. Nach Aufgabe auswählen und ein autorisiertes passendes Muster hören. Eine billige unbrauchbare Aufnahme ist kein fertiges Unterrichtsmaterial.

Spätere Hörprüfung und Textvalidierung trennen

Für echte Kurse Nummer, exakte Quelle, angefragten Alias und genehmigte Stimme festhalten. Nach Generierung Dateilink und Prüfstatus hinzufügen, ohne die Quelle zu ersetzen. Fehlende Wörter, Namen, störende Pausen und wechselnde Darbietung anhören. Dauer und Reihenfolge anhand der Medien prüfen, nicht aus Zeichenzahlen schätzen.

Die strukturierte Extraktion auf Englisch erhält fehlende Werte statt Daten zu erfinden; die Support-Eingabe auf Englisch begrenzt ausgehende Felder. Hier bleibt der gesamte freigegebene Wortlaut erhalten und wird begrenzt prüfbar gemacht. Schwierige Passagen still zu löschen ist keine zulässige Lösung für zu lange Teile.

Preise geprüft am 2026-11-01. Quellen und aktuelle Modellseiten: Öffentlicher Katalog, Öffentlicher Katalog, Python-Referenz, Python-Referenz. qwen3-tts-flash, speech-2.8-hd.

FAQ

Ist 600 Zeichen die native Modellgrenze?

Nein. Das ist das deklarierte Maximum zweier geprüfter Orux-Formularfelder, nicht jeder API, Bereitstellung oder nativen Kontextgröße. Das Werkzeug nutzt ausdrücklich UTF-16-Einheiten. Vor längeren Dokumenten über andere Wege den aktuellen Vertrag kontrollieren.

Gehen Leerzeichen oder Satzzeichen verloren?

Nicht in der definierten Transformation. Es wird nicht getrimmt und die Zusammenfügung mit der Quelle verglichen. Führender Leerraum ist Absicht. Spätere Normalisierung separat prüfen, statt eine dann nicht mehr gültige exakte Erhaltung weiter zu behaupten.

Beweist dies zweisprachige Aussprache beider Stimmen?

Nein. Es wurde kein Audio erzeugt oder bewertet. Geprüft wurden Felder, lokale Textgrenzen und Preise. Zweisprachige Aufnahmen brauchen autorisierte Hörtests für Aussprache, Auslassungen und Übergänge. Stimmenname und Zeichentest reichen dafür nicht.

Sind 63, 65 und 35 die abgerechneten Zeichen?

Nein. Es sind lokale UTF-16-Längen, keine gemessene Sprachnutzung und keine Rechnung. Die Tabelle verwendet ausdrückliche hypothetische Mengen und erklärt Arithmetik, ohne eine ungeprüfte Messregel für reale Anfragen zu behaupten.

Was tun bei einem zu langen Segment?

An einer sinnvollen Stelle manuell ändern, die Quelle genehmigen und neu prüfen. Das Werkzeug lehnt ab, statt Anweisungen zu schneiden oder Wörter wegzuwerfen. Auch Abkürzungen und Zitate prüfen: Die einfache Satzzeichenregel versteht den Unterrichtsinhalt nicht.

qwen3-tts-flash auf Orux AI testenOnline ausprobieren und auf der Modellseite Preise und API-Beispiele ansehen.Modell öffnenspeech-2.8-hd auf Orux AI testenOnline ausprobieren und auf der Modellseite Preise und API-Beispiele ansehen.Modell öffnen

Diese Modelle über eine einzige API nutzen

Eine OpenAI-kompatible API für Chat-, Bild-, Video- und Audiomodelle, abgerechnet in Credits.

Ähnliche Artikel

Alle Artikel ansehen →