Frage

Der erste Teil dieser Frage ist jetzt eigener, hier: Text für Akzente analysieren

frage: Wie können Akzente zu erzeugten Sprache hinzugefügt werden?

was ich bin mit:

Ich meine nicht nur Accent-Markierungen oder Wendefrequenz oder irgendetwas Singular so. Ich meine etwas wie ein voller britischer Akzent oder ein schottischer Akzent oder Russisch usw.

Ich würde denken, dass dies außerhalb der Sprache außerhalb der Sprache erfolgen könnte. ex : Mit einem britischen Akzent könnte etwas in Russisch generiert werden, oder etwas in Mandarin könnte einen russischen Akzent haben.

Ich denke, der grundlegende Prozess wäre dies:

    .
  1. Analysieren Sie den Text
    • Vergleichen Sie mit einer Datenbank (oder so etwas), um festzustellen, was ein Akzent benötigt, wie stark es sein sollte usw.
  2. Generieren Sie die Rede in der angegebenen Sprache
    • einfach mit normalen Text-to-Speech-Prozessoren.
  3. Bestimmen Sie den angegebenen Akzent basierend auf dem analysierten Text.
    • Dies ist der betreffende Teil.
    • Ich denke, ein Array von Amplituden und Filtern würde für den nächsten Schritt am besten funktionieren.
  4. Mesh-Rede und Akzent.
    • das wäre das einfache Teil.
    • Es könnte wahrscheinlich durch Multiplizieren der Rede durch den Akzent erfolgen, wie viele andere DSP-Methoden.
  5. Dies ist wirklich eher eine allgemeine DSP-Frage, aber ich würde gerne mit einem programmatischen Algorithmus eingehen, um dies anstelle einer allgemeinen Idee zu tun.

War es hilfreich?

Lösung

Was ist ein Akzent?

ein Akzent ist kein Soundfilter; Es ist ein Muster der akustischen Realisierung von Text in einer Sprache. Sie können keine Aufnahme von amerikanischem Englisch nehmen, durchlaufen Sie es durch "Array von Amplituden und Filtern" und haben britisch englisch. Welches DSP ist nützlich für die Implementierung von prosody , nicht akzent.

Grundsätzlich (und einfachste Modell) besteht ein Akzent aus Regeln für die phonetische Realisierung einer Sequenz von Phonemen. Wahrnehmung des Akzents wird weiter beeinflusst von Prosody und von welchen Phonemen a Der Lautsprecher wählt beim Lesen von Text.

Spracherzeugung

Der Prozess der Spracherzeugung hat zwei grundlegende Schritte:

    .
  1. Text-to-Phonemes: Konvertieren Sie den schriftlichen Text in eine Reihenfolge von Phonemen (plus Suprasegmentals wie Stress und prosodische Informationen wie Äußerungsgrenzen). Dies ist etwas akzentabhängig (z. B. die Leistung für "Labor" unterscheidet sich zwischen amerikanischen und britischen Lautsprechern).

  2. Phonem-to-Rede: Erzeugen Sie die Reihenfolge der Phoneme Audio gemäß den Regeln des Dialekts für phonetische Realisierungen von Phonemen. (In der Regel kombinieren Sie Diaphones und passen dann akustisch das Prosody an). Dies ist sehr akzentabhängig, und es ist dieser Schritt, der die Hauptqualität des Akzents verleiht. Ein bestimmtes Phonem, auch wenn es zwischen zwei Akzenten geteilt wird, kann auffallend unterschiedliche akustische Realisierungen auftreten.

  3. Normalerweise werden diese gepaart. Während Sie könnten, könnte einen britisch-akzentuierten Sprachgenerator haben, der amerikanische Aussprachen verwendet, die ungerade klingen würden.

    Erzeugung von Sprache mit einem bestimmten Akzent

    Das Schreiben eines Text-to-Speech-Programms ist eine enorme Menge an Arbeit (insbesondere, um ein gemeinsames Schema umzusetzen, Sie müssen einen Muttersprachler aufzeichnen, der jeden möglichen Diphone in der Sprache spricht. Sie würden also besser sein mit einem vorhandenen.

    Kurz gesagt, wenn Sie einen britischen Akzent wünschen, verwenden Sie einen britischen englischen Text-to-Phonem-Motor zusammen mit einem britischen englischen Phonem-to-Speech-Motor.

    Für gemeinsame Akzente wie amerikanisches und britisches Englisch, Standard-Mandarin, Metropolitan Französisch usw. gibt es mehrere Möglichkeiten, einschließlich Open-Source, in denen Sie (wie folgt) ändern können. Sehen Sie sich beispielsweise auf freetts und espeak . Für weniger gemeinsame Akzente sind vorhandene Motoren leider nicht vorhanden.

    Sprechtext mit einem ausländischen Akzent

    englisch-mit-ausländisches Akzent ist sozial nicht sehr prestigeträchtig, so dass komplette Systeme wahrscheinlich nicht existieren.

    Eine Strategie wäre, ein Text-to-Phonem-Motor aus der Regal für einen nativen Akzent mit einem Phonem-zu-Sprachmotor für die Fremdsprache zu kombinieren. Zum Beispiel ein einheimischer russischer Sprecher, der in den USA Englisch lernte, würde die amerikanischen Aussprachen von Wörtern wie laboratory plausibel nutzen und seine Phoneme auf seine russischen Phoneme karten und sie als in Russisch aussprechen. (Ich glaube, es gibt eine Website, die dies für Englisch und Japanisch tut, aber ich habe nicht den Link.)

    Das Problem ist, dass das Ergebnis zu extrem ist. Ein echter englischer Lernender würde versuchen, Phoneme zu erkennen und zu erzeugen, die in seiner Muttersprache nicht existieren, und würde auch seine Erkenntnis seiner einheimischen Phonemen ändern, um die einheimische Aussprache anzunähern. Wie genau das Ergebnis stimmt mit einem Muttersprachler, der natürlich stimmt, variiert, aber mit den reinen ausländischen extremen Klängen lächerlich (und meist unverständlich).

    Um plausible amerikanisch-englisch-with-russisch-accent (zum Beispiel) zu erzeugen, müssen Sie einen Text-to-Phoneme-Motor schreiben. Sie können bestehende amerikanische englische und russische Text-to-Phonem-Motoren als Ausgangspunkt verwenden. Wenn Sie nicht bereit sind, einen solchen Sprecher zu finden und aufzunehmen, könnten Sie wahrscheinlich noch eine anständige Annäherung mit DSP erhalten, um die Proben von diesen beiden Motoren zu kombinieren. Für Espeau verwendet es die Formantensynthese anstelle von aufgenommenen Mustern, daher kann es einfacher sein, Informationen aus mehreren Sprachen zu kombinieren.

    Eine andere Sache zu berücksichtigen ist, dass ausländische Lautsprecher oft die Sequenz von Phonemen unter Einfluss von der Phonotaktik ihrer Muttersprache modifizieren, typischerweise durch Vereinfachung von Konsonantenclustern, das Einsetzen von Epenthetic-Vokalen oder das Diphthongizing oder Brechen von Vokalsequenzen.

    Es gibt einige Literatur zu diesem Thema.

Andere Tipps

Diese Frage ist nicht wirklich "Programmierung" an sich: Es ist Linguistik. Die Programmierung ist vergleichsweise einfach. Für die Analyse wird das wirklich schwierig sein, und in der Wahrheit sind Sie wahrscheinlich besser, den Benutzer den Akzent anzugeben. Oder gehst du für einen automatisierten Story-Reader?

Ein grundlegender Akzent ist jedoch mit moderner Text-zu-Rede erforderlich. Kennen Sie das internationale phonetische Alphabet? http://en.wikipedia.org/wiki/international_phonetic_alphabet Es listet grundsätzlich alle Klänge auf, die eine menschliche Stimme möglicherweise machen kann. Ein Akzent ist dann nur ein Mapping (eine Funktion) vom Alphabet an sich selbst. Um beispielsweise einen amerikanischen Akzent mit einem amerikanischen Akzent zu einer amerikanischen Person zu klingen (obwohl sie nicht ausreicht, um ihn mit einem britischen Menschen britisch zu machen), können Sie alle "R" in der Mitte eines Wortes de-rhotaciktabilisieren. So würde der Alveolartrill beispielsweise durch das stimmhafte uvulare Frikaner ersetzt werden. (Viele Eckfälle, um nur dafür zu trainieren).

lang und kurz: Es ist nicht einfach, was wahrscheinlich, warum niemand es getan hat. Ich bin sicher, ein paar Linguistikprofessoren herauszunehmen, die ihr unmöglich sagen würde. Aber das tun Linguistics Professoren. Sie müssen jedoch im Wesentlichen mehrere dicke Lehrbücher auf Akzente und Aussprache lesen, um den Fortschritt mit diesem Problem zu machen. Viel Glück!

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top