5 Punkte von GN⁺ 2024-01-02 | 1 Kommentare | Auf WhatsApp teilen
  • Zielt auf das Zero-shot-TTS-Problem ab: Mit nur kurzem Referenz-Audio wird die Stimmfarbe geklont und die Stimme kann in mehreren Sprachen sprechen, ohne zusätzliches sprecherspezifisches Training
  • Der Kern ist eine Architektur, die Stimmfarbenklonen und Sprach-/Stilsteuerung trennt: Ein Base-Speaker-TTS erzeugt Emotion, Akzent, Rhythmus, Pausen und Intonation, und ein Tone Color Converter legt die Stimmfarbe des Referenzsprechers darüber
  • Auch ohne große Multi-Speaker-Trainingsdaten für neue Sprachen ist zero-shot cross-lingual Cloning möglich; für das Training wurden 30K Sätze für das Base-TTS und 20K Personen mit 300K Audio-Samples für den Converter verwendet
  • Die Gesamtimplementierung ist eine feed-forward-Architektur ohne autoregressive oder Diffusionskomponenten; die optimierte Version erreicht auf einer einzelnen A10G-GPU die 12-fache Echtzeit und benötigt 85 ms zur Erzeugung von 1 Sekunde Audio
  • Quellcode und Modellgewichte wurden veröffentlicht; OpenVoice wurde als Sprach-Engine von MyShell.ai für mehr als 2 Millionen Menschen weltweit bereitgestellt, und die interne Version wurde von Mai bis Oktober 2023 mehrere zehn Millionen Male genutzt

Das von OpenVoice adressierte Problem des sofortigen Voice Cloning

  • Sofortiges Voice Cloning (IVC) ist TTS, das mit nur kurzem Referenz-Audio die Stimme eines bestimmten Sprechers klont; es wird auch als Zero-shot TTS bezeichnet, da es ohne zusätzliches sprecherspezifisches Training arbeitet
  • Einsatzgebiete reichen von der Produktion von Medieninhalten über personalisierte Chatbots bis hin zu multimodalen Interaktionen zwischen Mensch und Computer oder großen Sprachmodellen
  • Bestehende Ansätze haben jeweils Einschränkungen bei Geschwindigkeit, Steuerbarkeit und Sprachskalierbarkeit
    • Autoregressive Verfahren wie VALLE und XTTS klonen die Stimmfarbe auf Basis von Acoustic Tokens oder Speaker Embeddings der Referenzstimme, aber es ist schwierig, Stilmerkmale wie Emotion, Akzent, Rhythmus, Pausen und Intonation flexibel zu steuern
    • Nicht-autoregressive Verfahren wie YourTTS und Voicebox sind in der Inferenz schnell, können aber Stilparameter jenseits der Stimmfarbe nicht flexibel steuern
    • Bestehendes cross-linguales Voice Cloning benötigt in der Regel MSML-Datensätze mit vielen Sprechern pro Sprache, was das Hinzufügen neuer Sprachen erschwert
  • OpenVoice verfolgt gleichzeitig drei Ziele
    • Die Stimmfarbe des Referenzsprechers klonen und dabei Emotion, Akzent, Rhythmus, Pausen und Intonation separat steuerbar machen
    • Cross-linguales Cloning auch dann ermöglichen, wenn weder die Sprache des Referenzsprechers noch die Zielsprache in den MSML-Trainingsdaten enthalten ist
    • Schnelle Echtzeit-Inferenz in groß angelegten kommerziellen Umgebungen ohne Qualitätsverlust liefern

Architektur mit Trennung von Stimmfarbe und Stil

  • Die Kernidee von OpenVoice ist, nicht ein einziges großes Modell Stimmfarbe, Sprache und Stil gleichzeitig lernen zu lassen, sondern dies in einfachere Teilaufgaben aufzuteilen
  • Das base speaker TTS model übernimmt Sprache und Stil
    • Es kann ein Single-Speaker- oder Multi-Speaker-TTS-Modell verwendet werden
    • VITS kann so angepasst werden, dass Stil- und Sprach-Embeddings in den Text Encoder und den Duration Predictor eingespeist werden
    • InstructTTS kann Stil-Prompts annehmen
    • Auch kommerzielle Modelle wie Microsoft TTS, die über SSML Emotion, Pausen und Artikulationsweise steuern, können verwendet werden
    • Menschen können den Text auch direkt selbst im gewünschten Stil und in der gewünschten Sprache lesen, um eine Base Voice zu erzeugen
    • In der veröffentlichten Implementierung wird standardmäßig VITS verwendet
  • Der tone color converter wandelt die Stimme des Base Speakers in die Stimmfarbe des Referenzsprechers um
    • Der Encoder ist ein 1D convolutional neural network, das das short-time Fourier transformed spectrum der Base-Speaker-Stimme als Eingabe erhält
    • Der Tone Color Extractor ist ein 2D convolutional neural network, das aus dem Mel-Spektrogramm einen einzelnen Vektor mit Informationen über die Stimmfarbe extrahiert
    • Ein normalizing flow entfernt die Stimmfarbeninformation aus der Base-Stimme und erzeugt dabei eine Repräsentation, die Sprache und Stil bewahrt
    • Diese Repräsentation wird entlang der Zeitachse mit IPA-basierten Features ausgerichtet
    • Der inverse flow konditioniert auf den Stimmfarbenvektor des Referenzsprechers und überträgt so die neue Stimmfarbe auf die Feature Map
    • HiFi-GAN erzeugt anschließend die finale rohe Wellenform
  • Das gesamte veröffentlichte Modell arbeitet ohne autoregressive Komponenten vollständig feed-forward
  • HuBERT-basierte Unit-Extraktion hat das Problem, nicht nur Stimmfarbe, sondern auch Emotion und Akzent zu entfernen
  • Andere Ansätze mit Informationsengpässen, die nur Sprachinhalt bewahren sollen, entfernen die Stimmfarbe nicht vollständig
  • Die Neuheit von OpenVoice liegt weniger in der Erfindung einzelner Submodule als im Framework, das Stil-/Sprachsteuerung und Stimmfarbenklonen trennt

Trainingsdaten und Trainingsziele

  • Für das Training des Base-Speaker-TTS wurden Daten von 4 Sprechern verwendet
    • 1 Sprecher für amerikanisches Englisch, 1 Sprecher für britisches Englisch, 1 Sprecher für Chinesisch und 1 Sprecher für Japanisch
    • Insgesamt 30K Sätze mit einer durchschnittlichen Satzlänge von 7 Sekunden
    • Die englischen und chinesischen Daten enthalten Emotionsklassifikationslabels
  • Das modifizierte VITS speist emotion categorical embedding, language categorical embedding und speaker id in Text Encoder, Duration Predictor und Flow Layer ein
  • Das trainierte Base-Modell kann durch Wechsel des Base Speakers Akzent und Sprache ändern und denselben Eingabetext mit unterschiedlichen Emotionen vorlesen
  • In zusätzlichen Trainingsdaten-Experimenten zeigte sich, dass sich auch Rhythmus, Pausen und Intonation ähnlich wie Emotion trainieren lassen
  • Für das Training des Tone Color Converters wurden 300K Audio-Samples von 20K Personen verwendet
    • Etwa 180K englische Samples
    • Etwa 60K chinesische Samples
    • Etwa 60K japanische Samples
    • Dieser Datensatz wird als MSML-Datensatz bezeichnet
  • Der Converter hat zwei Trainingsziele
    • Mel-Spektrogramm-Loss und HiFi-GAN-Loss sorgen dafür, dass Encoder-Decoder natürlich klingende Ausgaben erzeugen
    • Der Flow Layer wird so trainiert, dass er Stimmfarbeninformationen aus den Audio-Features möglichst vollständig entfernt
  • Für das Training der Stimmfarbenentfernung wird Text in IPA phoneme-Sequenzen umgewandelt; daraus werden mit learnable embeddings und einem Transformer Encoder Textinhalts-Features erzeugt, die per dynamic time warping mit Audio-Features ausgerichtet werden, während die KL-divergence minimiert wird
  • Dem Flow Layer werden weder Stil- noch Sprachinformationen als Konditionierung gegeben, damit keine anderen Informationen außer der Stimmfarbe entfernt werden
  • Da der Flow Layer invertierbar ist, kann im inversen Prozess durch Konditionierung auf neue Stimmfarbeninformationen die Stimmfarbe des Referenzsprechers bei gleichem Inhalt und Stil wieder eingefügt werden

Versuchsergebnisse und beobachtete Einschränkungen

  • Die Bewertung von Voice Cloning ist zwischen Studien schwer objektiv numerisch zu vergleichen, da Trainingssets, Testsets und Bedingungen für Mean Opinion Score unterschiedlich sind
  • Die OpenVoice-Evaluierung konzentriert sich daher weniger auf numerische Vergleiche mit bestehenden Methoden als auf qualitative Leistungsanalyse und öffentlich verfügbare Audio-Samples
  • Das Testset für Stimmfarbenklonen enthält Referenzsprecher wie Prominente, Spielcharaktere und anonyme Personen
    • Es umfasst sowohl sehr ausdrucksstarke, charakteristische Stimmen als auch neutrale Samples aus der Verteilung menschlicher Stimmen
    • In Kombinationen aus 4 Base Speakern und verschiedenen Referenzsprechern wird die Referenzstimmfarbe geklont und Sprache in mehreren Sprachen und Akzenten erzeugt
  • Die Bewertung der Stilsteuerung erstellt mit dem Base-Speaker-Modell und Microsoft TTS SSML einen 1K-Sample-Korpus mit verschiedenen Stilen und wandelt ihn dann in die Referenzstimmfarbe um
    • Emotion, Akzent, Rhythmus, Pausen und Intonation bleiben gut erhalten
    • In seltenen Fällen wird Emotion etwas neutralisiert
    • Dieses Problem lässt sich mildern, wenn der tone color embedding vector eines bestimmten Satzes durch den Mittelwertsvektor aus mehreren Sätzen mit unterschiedlichen Emotionen desselben Base Speakers ersetzt wird
  • Cross-linguales Cloning funktioniert für Sprachen außerhalb des MSML-Datensatzes near zero-shot
    • Auch wenn die Sprache des Referenzsprechers nicht im MSML-Datensatz enthalten ist, kann die Stimmfarbe des Referenzsprechers geklont werden
    • Auch wenn die Zielsprache nicht im MSML-Datensatz enthalten ist, kann diese Sprache mit der Referenzstimmfarbe gesprochen werden, sofern das Base-Speaker-TTS sie unterstützt
    • Allerdings wird dafür ein Base Speaker in der betreffenden Sprache benötigt
  • Im Geschwindigkeitstest erreicht das optimierte OpenVoice inklusive Base-Speaker-Modell und Tone Converter auf einer einzelnen A10G-GPU die 12-fache Echtzeit
    • Für die Erzeugung von 1 Sekunde Audio werden 85 ms benötigt
    • Laut Analyse der GPU-Auslastung wird die Obergrenze auf etwa 40-fache Echtzeit geschätzt, diese Verbesserung bleibt jedoch künftiger Arbeit vorbehalten
  • Die Verwendung von IPA ist für cross-linguale Stimmfarbenkonvertierung wichtig
    • IPA ist ein sprachübergreifend vereinheitlichtes Phoneminventar und ermöglicht dem Flow Layer, sprachneutrale Repräsentationen zu erzeugen
    • In Experimenten mit anderen Phoneminventaren zeigte sich eine Tendenz, einige Phoneme in nicht trainierten Sprachen falsch auszusprechen
    • Selbst bei korrektem Eingabe-Audio steigt die Wahrscheinlichkeit, dass das Ausgabe-Audio Probleme hat oder wie von Nicht-Muttersprachlern gesprochen klingt

Veröffentlichte Materialien und Nutzung

  • OpenVoice hat für Reproduzierbarkeit und Folgeforschung den Quellcode und trainierte Modelle veröffentlicht
  • Qualitative Ergebnisse sind in der OpenVoice demo zu sehen
  • Die detaillierten Demos sind in folgende Kategorien unterteilt
  • Vor der Veröffentlichung wurde die interne Version von Mai bis Oktober 2023 weltweit mehrere zehn Millionen Male verwendet
  • MyShell.ai nutzte OpenVoice als Backend für sofortiges Voice Cloning und verzeichnete auf der Plattform ein Nutzerwachstum um mehrere Hundertfache
  • Derzeit wird OpenVoice als Sprach-Engine von MyShell.ai mehr als 2 Millionen Menschen weltweit bereitgestellt

1 Kommentare

 
GN⁺ 2024-01-02
Meinungen auf Hacker News
  • Es ist gut, dass die Autoren es einfach gemacht haben, es sofort auszuprobieren, aber für allgemeines Voice-Cloning hat es nicht gut gepasst.
    Ich habe den ersten Wikipedia-Absatz über ein Buch vorlesen lassen und dann den nächsten Satz generiert; für meine Ohren klingt es eindeutig computergeneriert.
    Audio-Sample: https://storage.googleapis.com/dalle-party/sample.mp3
    Geklonte Stimme (MP3-Konvertierung): https://storage.googleapis.com/dalle-party/output_en_default...
    Ich habe lediglich das Paket per pip installiert, ein Audio-Sample eingefügt und demo_part1.ipynb ausgeführt; auf einer Laptop-3070 Ti / 8 GB war es fast sofort fertig.

    • Auch im README steht, dass es eine Open-Source-Implementierung ist, die die Leistung der internen Voice-Cloning-Technologie annähert, und dass die Online-Version von myshell.ai bei Audioqualität, Klon-Ähnlichkeit, Natürlichkeit der Sprache und Recheneffizienz besser ist.
    • Danke für das echte Beispiel; für meine Ohren klang es ebenfalls ziemlich generiert.
      Ich frage mich, wie viel besser es würde, wenn man mehr Original-Stimmaterial hineingibt.
    • Der Website und den Beispielen nach zu urteilen scheint es ziemlich klar darauf ausgelegt zu sein, stilisierte Anime-Stimmen zu erzeugen.
    • Aus Erfahrung mit anderen Tools wie xtts braucht man für die besten Ergebnisse wirklich Stimm-Samples in Studioqualität.
  • Ich frage mich, ob man damit oder mit Eleven Labs ein Stimmenmodell zum Einhängen in TTS auf einem Android-Handy erstellen könnte.
    Ein Freund mit gelähmtem Kehlkopf kommuniziert oft, indem er Text in sein Handy oder einen kleinen Laptop eingibt.
    Wenn man seine Stimme aus alten Aufnahmen nehmen und ihm wenigstens ein Stück weit seine „eigene“ Stimme zurückgeben könnte, würde ihn das sicher sehr freuen.

    • Du könntest dir Lösungen wie Acapela [0], SpeakUnique [1] und VOCALiD [2] ansehen.
      Ich bin mir allerdings nicht sicher, ob es dafür eine Android-Lösung gibt.
      Ich habe kürzlich ein Video von Google über eine personalisierte Stimme für ALS-Patienten gesehen, kann es aber online nicht finden.
      Unter Android wird personalisierte Stimmerzeugung noch nicht angeboten, aber das aktuelle iOS 17 unterstützt Personal Voice.
      ModelTalker [3] scheint ein langfristiges Forschungsprojekt zur Erstellung personalisierter Stimmen für Menschen mit Sprachstörungen zu sein, und dessen TTS scheint Android zu unterstützen, daher könnte das eine weitere Option sein.
      [0] https://www.acapela-group.com/
      [1] https://www.speakunique.co.uk/
      [2] https://vocalid.ai/
      [3] https://www.modeltalker.org/
    • Leider geht das derzeit nicht.
      Ich habe bei Google an TTS mitgearbeitet und auch an Android-Themen gearbeitet; in iOS ist diese Funktion eingebaut.
      Es gibt keinen stärkeren Google-Product-Manager als „das, was Apple gerade veröffentlicht hat“, also ist das vielleicht sogar ein hoffnungsvolles Signal.
      Ich arbeite derzeit an plattformübergreifender On-Device-Inferenz; schau dir FONNX auf GitHub an. Das ist einer von 100 Punkten, die mir noch eine Weile im Kopf bleiben werden, also melde ich mich, wenn ich Zeit habe.
      Edit: Wäre eine Android-App mit Tastatur und „Sprechen“-Button, die die Eleven Labs API aufruft, gut genug, um es auszuprobieren?
  • GitHub: https://github.com/myshell-ai/OpenVoice
    Checkpoints: hxxps://myshell-public-repo-hosting.s3.amazonaws.com/checkpoints_1226.zip
    Ich habe Vorbehalte gegen Links, die direkt auf eine bei Amazon gehostete ZIP-Datei zeigen, daher habe ich den Checkpoint-Link entschärft.
    Ich habe auch nicht geprüft, was in der Datei enthalten ist.

  • Mir gefällt dieses Paper.
    Es liest sich wie: „So haben wir es gemacht, und wir wollen anderen helfen, es ebenfalls zu tun.“
    Besonders der Abschnitt „Remark on Novelty“ ist hervorragend: Er sagt, dass OpenVoice nicht versucht, ein Untermodul der Modellarchitektur zu erfinden, sondern dass der Beitrag ein Framework ist, das Stimmstil- und Sprachsteuerung vom Timbre-Cloning trennt.
    Sie versuchen nicht, ihren Beitrag aufzublähen.

  • Beispiele: https://research.myshell.ai/open-voice
    Sie wirken ziemlich beeindruckend.

  • Die Lizenz ist die Creative Commons Attribution-NonCommercial 4.0 International License, verbietet also kommerzielle Nutzung, und es heißt, MyShell könne erkennen, ob Audio mit OpenVoice erzeugt wurde, mit oder ohne Wasserzeichen.
    Dann ist es doch nicht „open“, und man kann damit auch kein Geld verdienen, oder?

    • Es ist open, nur nicht nach deiner Definition.
      Man kann den Code ansehen, nutzen und nach Belieben verändern, also würde ich es als ziemlich offen bezeichnen.
    • Geld verdienen kann man nicht.
      Betrüger, denen eine nichtkommerzielle Lizenz egal ist, können es natürlich trotzdem.
  • Es ist nicht besonders bekannt, und ich weiß auch nicht, ob Apple es weiterentwickelt, aber iOS hat eine Funktion zum Klonen von Stimmen namens Personal Voice
    Das Training mit der eigenen Stimme dauert etwa 15 Minuten, und die Verarbeitung on-device im gesperrten Zustand dauert einige Stunden
    Man kann sie bei Telefonaten und FaceTime nutzen; ob es auch anderswo geht, weiß ich nicht
    Es wäre schön, wenn man sie auch für normales TTS verwenden könnte

    • Das ist eine Barrierefreiheitsfunktion für Menschen, die ihre Stimme verlieren oder Gefahr laufen, sie zu verlieren
      Weil es heißt, man könne sie bei Telefonaten oder FaceTime nutzen, klingt es nach Voice-to-Voice-Umwandlung, tatsächlich ist sie aber nur für TTS gedacht
      Da es keine Voice-to-Voice-Umwandlung ist, bleiben Signale, die sie wie eine echte Stimme wirken lassen, etwa Stottern oder Prosodie, nicht erhalten
  • Vor ein paar Tagen habe ich bei einer großen britischen Geschäftsbank angerufen, und sie drängten mich immer noch, mich für ihr dummes „Meine Stimme ist mein Passwort“-Programm anzumelden
    Angesichts dessen, wie weit KI inzwischen ist, wirkt das einfach fahrlässig

    • Fidelity Investments hat vor etwa einer Woche etwas noch Schlimmeres gemacht
      Sie ließen mich ein paar Fragen beantworten und teilten mir dann mit, dass ich soeben für ihr Stimmerkennungsprogramm registriert worden sei
      Jetzt steht auf meiner To-do-Liste noch ein weiterer Punkt: das wieder abzubestellen
      Man fragt sich, ob wirklich jedes Unternehmen die dümmsten Leute ins Management befördert
    • Investec vielleicht? Ich glaube, ich muss auch anrufen und es deaktivieren lassen
  • Mein erster Gedanke war und ist immer noch, dass es wohl viel mehr unethische und kriminelle Nutzung von Voice Cloning geben wird als legitime Nutzung

    • Das Erste, was mir einfällt, ist Anonymität
      Man kann YouTube-Videos erstellen, ohne die eigene echte Stimme zu verwenden, und trotzdem persönliche Intonation und Betonung beibehalten, die TTS-KI-Stimmen nicht hinbekommen
      Oder man kann es in der Indie-Game-Entwicklung einsetzen
      Man lernt grundlegendes Voice Acting, um die Unbeholfenheit zu verringern, und kann alle Figuren mit mehreren Stimmen selbst einsprechen
    • Ich frage mich, welche legitimen Anwendungsfälle du in welchem Umfang bedacht hast
    • Was ist, wenn kommerzielle Nutzung die illegale Nutzung überwiegt?
      YouTube wird es ermöglichen, dass Menschen lokalisierte Sprachen mit der Stimme der ursprünglichen Urheber hören können
    • Ich stimme nicht zu
      Wir sollten Stimmen einfach nicht als Authentifizierungsmittel akzeptieren
      Die häufigste Nutzung wird vermutlich darin bestehen, Kunst und Inhalte programmatisch ohne Synchronsprecher zu erstellen
      Wenn die Pipeline für Video oder 3D-Modelle samt Frame-für-Frame-Transformation so weit ist, dass es realistisch aussieht, werden auch Schauspieler möglicherweise kaum noch gebraucht
    • Man kann vorab mit seinen Liebsten sprechen und ein Codewort festlegen, das für Situationen gedacht ist, in denen jemand angeblich in einer Notlage feststeckt und Geld überwiesen bekommen muss
      Manche Banken nutzen bei Anrufen Stimmverifizierung, und man kommt nur heraus, wenn man ausdrücklich darum bittet