Empfohlene Stimmen für die Web Speech API
Dieses Repository ist Teil eines größeren Projekts, das darauf abzielt, Best Practices für die Implementierung einer Vorlesefunktion in Lese-Apps zu ermitteln.
Da in verschiedenen Browsern und Betriebssystemen standardmäßig Hunderte von Stimmen verfügbar sind, kann es für Entwickler schwierig sein, sinnvolle Standardeinstellungen und eine kuratierte Liste von Stimmen bereitzustellen.
Mit seinem Schwerpunkt auf der Stimmenauswahl besteht das Ziel dieses Projekts darin, auf verschiedenen Plattformen verfügbare Stimmen höherer Qualität zu dokumentieren und eine einfache Möglichkeit zur Umsetzung dieser Empfehlungen mithilfe von JSON-Konfigurationsdateien bereitzustellen.
Anwendungsfälle
- Bereitstellung der bestmöglichen Standardstimme pro Sprache
- Anzeige einer geordneten Liste von Stimmen, basierend auf der Qualität
- Anzeige benutzerfreundlicher Sprachnamen
- Empfohlene Stimmen nach Geschlecht und Alter filtern (Erwachsene vs. Kinder)
- Herausfiltern neuer und minderwertiger Stimmen
- Vorschau einer Stimme mit einer Testäußerung
Demo
Eine Live-Demo basierend auf dem Readium Speech-Projekt ist verfügbar.
Diese Demo implementiert beide Best Practices für die Sprachauswahl zusammen mit Daten aus diesem Repository.
Liste der unterstützten Sprachen
Das Ziel dieses Projekts ist die Unterstützung aller 43 unter Windows und macOS verfügbaren Sprachen.
In seinem aktuellen Zustand umfasst es 43 Sprachen:
- Arabisch (Algerien, Bahrain, Ägypten, Irak, Jordanien, Kuwait, Libanon, Libyen, Marokko, Oman, Katar, Saudi-Arabien, Syrien, Tunesien, Vereinigte Arabische Emirate, Jemen)
- baskisch
- Bengali (Indien und Bangladesch)
- Bhojpuri
- bulgarisch
- katalanisch
- Chinesisch:
- Mandarin-Chinesisch (Festlandchina, Taiwan)
- Wu-Chinesen (auch bekannt als „Shanghainesen“)
- Yue-Chinesisch (auch bekannt als „Kantonesisch“)
- kroatisch
- tschechisch
- dänisch
- Niederländisch (Niederlande und Belgien)
- Englisch (USA, Vereinigtes Königreich, Australien, Kanada, Hongkong, Indien, Irland, Kenia, Neuseeland, Nigeria, Schottland, Singapur, Südafrika und Tansania)
- finnisch
- Französisch (Frankreich, Kanada, Belgien und Schweiz)
- galizisch
- Deutsch (Deutschland, Österreich und Schweiz)
- griechisch
- hebräisch
- Hindi
- ungarisch
- Indonesisch
- Italienisch
- japanisch
- Kannada
- Koreanisch
- malaiisch
- Marathi
- norwegisch
- persisch
- Polieren
- Portugiesisch (Portugal und Brasilien)
- rumänisch
- Russisch
- slowakisch
- Slowenisch
- Spanisch (Spanien, Argentinien, Bolivien, Chile, Kolumbien, Costa Rica, Kuba, Dominikanische Republik, Ecuador, El Salvador, Äquatorialguinea, Guatemala, Honduras, Mexiko, Nicaragua, Panama, Paraguay, Peru, Puerto Rico, Vereinigte Staaten, Uruguay und Venezuela)
- Schwedisch
- Tamil (Indien, Sri Lanka, Malaysia und Singapur)
- Telugu
- Thailändisch
- Türkisch
- ukrainisch
- Vietnamesisch
Liste der herauszufilternden Stimmen
Am anderen Ende des Spektrums identifiziert dieses Projekt auch eine Reihe von Stimmen, die aus einer Stimmenauswahlkomponente herausgefiltert werden sollten.
Einige von ihnen beeinträchtigen das gesamte Leseerlebnis, während andere auf Plattformen, auf denen bessere vorinstallierte Optionen verfügbar sind, eine sehr geringe Qualität aufweisen.
- Neuartige Stimmen (Apple-Geräte)
- Stimmen von sehr geringer Qualität (Apple-Geräte und Chrome OS)
Leitprinzipien
- Jede Stimmenliste ist geordnet und soll ein optimales Hörerlebnis auf allen von diesem Projekt abgedeckten Browsern/Betriebssystemen/Sprachen bieten.
- Aber jede Liste enthält auch Standardoptionen, um sicherzustellen, dass es immer etwas Verlässliches gibt, auf das man sich stützen kann.
- Unter Berücksichtigung dieser beiden Ziele werden Stimmen höherer Qualität oben in der Liste aufgeführt, während Stimmen geringerer Qualität oder spezialisierter Stimmen unten aufgeführt werden.
- Die Anzahl der Stimmen kann überwältigend erscheinen (mehr als 110 Stimmen allein auf Englisch), aber in der Praxis werden den Benutzern auf jedem ihrer Geräte nur wenige davon zur Verfügung stehen.
- Die von der Web Speech API zurückgegebenen Stimmennamen sind wenig benutzerfreundlich, weshalb diese Liste alternative Namen enthält, die normalerweise einen Vornamen (oder ein Geschlecht) zusammen mit der mit der Stimme verbundenen Region enthalten.
- Wann immer möglich, werde ich versuchen, eine gute Mischung aus hochwertigen und Standardoptionen für beide Geschlechter anzubieten.
- Aber die Liste muss irgendwie priorisiert werden, weibliche Stimmen werden derzeit über ihren männlichen Gegenstücken aufgeführt. Da das jeder Stimme zugeordnete Geschlecht dokumentiert ist, können Implementierer die Liste anhand dieser Kriterien neu priorisieren/filtern.
- Regionale Varianten werden außerdem in einer einzigen Liste zusammengefasst und nicht absichtlich in ihren eigenen Dateien getrennt. Auf einigen Geräten stehen möglicherweise nur zwei oder drei Stimmen zur Verfügung und eine Trennung der regionalen Varianten wäre wenig sinnvoll.
- Aber regionale Varianten müssen in der Liste irgendwie priorisiert werden. Derzeit sind die Regionen mit der besten Auswahl an Stimmen oben aufgeführt, es wird den Implementierern jedoch dringend empfohlen, die regionalen Präferenzen des Benutzers zu berücksichtigen.
Syntax
Ein JSON-Schema steht zur Validierung oder für potenzielle Mitwirkende zur Verfügung, die daran interessiert sind, eine PR für neue Sprachen oder Spracherweiterungen zu eröffnen.
Etikett
Für jede empfohlene Stimme ist label
erforderlich, das für jede Stimme ein benutzerfreundliches Label bereitstellt.
Diese Zeichenfolge ist für die Zielsprache lokalisiert und enthält normalerweise die folgenden Informationen:
- Vorname (falls vorhanden)
- Geschlecht (wenn der Vorname fehlt)
- Land/Region
Beispiel 1: Microsoft Natural-Stimmen
Obwohl die von Microsoft dokumentierten Namen für ihre natürlichen Stimmen leicht verständlich sind, sind sie in der Regel sehr lang und alle auf Englisch lokalisiert.
{
"label" : " Isabella (Italia) " ,
"name" : " Microsoft Isabella Online (Natural) - Italian (Italy) " ,
"language" : " it-IT "
}
Beispiel 2: Chrome OS-Stimmen
Chrome OS bietet über seine Android-Subsysteme eine Reihe hochwertiger Stimmen, die jedoch für einen Endbenutzer einige der schlechtesten Namen haben, die man sich vorstellen kann.
{
"label" : " Female voice 1 (US) " ,
"name" : " Android Speech Recognition and Synthesis from Google en-us-x-tpc-network " ,
"language" : " en-US "
}
Namen
Für jede empfohlene Stimme ist name
erforderlich, der als Hauptidentifikator für Stimmen in diesem Projekt verwendet wird.
Namen sind größtenteils browserübergreifend stabil, was bedeutet, dass für die meisten Stimmen eine einzelne Zeichenfolge ausreicht.
Aber es gibt leider einige Ausreißer: Android-, iOS-, iPadOS- und macOS-Stimmen.
Bei diesen Stimmen ist häufig zumindest ein Teil der Zeichenfolge lokalisiert, die Benennung kann in allen Browsern inkonsistent sein und sie können sich je nach Anzahl der installierten Varianten ändern.
Aus diesem Grund kann jede Liste auch die folgenden Eigenschaften enthalten:
-
altNames
mit einem Array alternativer Zeichenfolgen für eine bestimmte Stimme - und
localizedName
, der das Zeichenfolgenmuster identifiziert, das zum Lokalisieren dieser Stimmen verwendet wird
Beispiel 3: Alternative Version einer von Apple vorinstallierten Stimme
{
"label" : " Samantha (US) " ,
"name" : " Samantha " ,
"localizedName" : " apple " ,
"altNames" : [
" Samantha (Enhanced) " ,
" Samantha (English (United States)) "
],
"language" : " en-US "
}
Sprachen
Für jede empfohlene Stimme ist language
erforderlich.
Es enthält ein BCP 47-Sprach-Tag, bei dem auf einen zweibuchstabigen Sprachcode in Kleinbuchstaben ein zweibuchstabiger Ländercode in Großbuchstaben folgt.
Die Sprach- und Ländercodes werden durch einen Bindestrich (-) getrennt.
Einige Stimmen können auch eine andere Sprache verstehen, zum Beispiel kann eine spanische Stimme für die Vereinigten Staaten möglicherweise auch Englisch verstehen.
Aus diesem Grund steht auch eine Eigenschaft additionalLanguages
zur Verfügung, die jedoch derzeit eher selten verwendet wird.
Es enthält eine Liste von Sprachen, die nur aus zwei Buchstaben bestehende Codes ohne Unter-Tag verwenden.
Einige brandneue Stimmen von Microsoft sind auch zu einer mehrsprachigen Ausgabe fähig. Der Sprachwechsel wird in der Mitte eines Satzes nicht unterstützt, aber die Ausgabe scheint in der Lage zu sein, die Sprache jedes Satzes automatisch zu erkennen und sich entsprechend anzupassen.
Um dies zu unterstützen, kann die Ausgabe dabei automatisch auf eine andere Stimme umgeschaltet werden.
Diese Stimmen werden mithilfe des booleschen Werts multiLingual
identifiziert.
Beispiel 4: Stimme mit mehrsprachiger Ausgabe
{
"label" : " Emma (US) " ,
"name" : " Microsoft EmmaMultilingual Online (Natural) - English (United States) " ,
"language" : " en-US " ,
"multiLingual" : true
}
Beispiel 5: Stimme, die eine Sekundärsprache beherrschen kann
{
"label" : " Sylvie (Canada) " ,
"name" : " Microsoft Sylvie Online (Natural) - French (Canada) " ,
"language" : " fr-CA " ,
"otherLanguages" : [
" en "
]
}
Geschlechter- und Kinderstimmen
gender
ist eine optionale Eigenschaft für jede Stimme, die das jeder Stimme zugeordnete Geschlecht dokumentiert.
Folgende Werte werden unterstützt: female
, male
oder neutral
.
children
ist ebenfalls optional und identifiziert Kinderstimmen mithilfe eines booleschen Werts.
Beispiel 6: Stimme weiblicher Kinder
{
"label" : " Ana (US) " ,
"name" : " Microsoft Ana Online (Natural) - English (United States) " ,
"language" : " en-US " ,
"gender" : " female " ,
"children" : true
}
Qualität
quality
ist eine optionale Eigenschaft für jede Stimme, die die Qualität der verschiedenen Varianten einer Stimme dokumentiert.
Die folgenden Werte werden unterstützt:
- sehrHoch
- Sehr hohe, von Menschen kaum zu unterscheidende Qualität der Sprachsynthese
- hoch
- Hohe, menschenähnliche Qualität der Sprachsynthese
- Normal
- Normale Qualität der Sprachsynthese
- niedrig
- Geringe, nicht menschenähnliche Qualität der Sprachsynthese
- sehr niedrig
- Sehr geringe, aber immer noch verständliche Qualität der Sprachsynthese
Beispiel 7: Eine Apple-Stimme, verfügbar in drei Qualitätsvarianten
{
"label" : " Ava (US) " ,
"name" : " Ava " ,
"note" : " This voice can be installed on all Apple devices and offers three variants. Like all voices that can be installed on Apple devices, it suffers from inconsistent naming due to localization. " ,
"altNames" : [
" Ava (Premium) " ,
" Ava (Enhanced) " ,
" Ava (English (United States)) " ,
],
"language" : " en-US " ,
"gender" : " female " ,
"quality" : [
" low " ,
" normal " ,
" high "
],
"rate" : 1 ,
"pitch" : 1 ,
"os" : [
" macOS " ,
" iOS " ,
" iPadOS "
]
}
Betriebssystem und Browser
Sowohl os
als auch browser
sind optionale Eigenschaften. Sie werden verwendet, um anzugeben, in welchen Betriebssystemen und Browsern eine Stimme verfügbar ist.
Diese beiden Eigenschaften sollten separat und nicht als Kombination interpretiert werden.
Beispiel 8: Eine Microsoft-Stimme, die sowohl in Edge als auch in Windows verfügbar ist
{
"label" : " Denise (France) " ,
"name" : " Microsoft Denise Online (Natural) - French (France) " ,
"note" : " This voice is preloaded in Edge on desktop. In other browsers, it requires the user to run Windows 11 and install the voice pack. " ,
"language" : " fr-FR " ,
"gender" : " female " ,
"os" : [
" Windows "
],
"browser" : [
" Edge "
]
}
Darüber hinaus gibt preloaded
an, ob die Stimme in allen identifizierten Betriebssystemen und Browsern vorinstalliert ist.
Mit dem aktuellen Ansatz ist es nicht möglich anzugeben, dass eine Stimme in Chrome und Windows verfügbar ist, sondern erfordert beispielsweise einen Download unter Windows.
Beispiel 9: Eine in Chrome Desktop vorinstallierte Google-Stimme
{
"label" : " Google female voice (UK) " ,
"name" : " Google UK English Female " ,
"language" : " en-GB " ,
"gender" : " female " ,
"browser" : [
" ChromeDesktop "
],
"preloaded" : true
}
Sprechgeschwindigkeit und Tonhöhe
Bei Verwendung der Web Speech API unterstützt SpeechSynthesisUtterance
optionale Werte für:
-
rate
um die Sprechgeschwindigkeit zu steuern - und
pitch
um die Tonhöhe zu steuern
Jede in diesem Repo dokumentierte Stimme unterstützt die folgenden optionalen Eigenschaften:
-
pitchControl
ist ein boolescher Wert, der standardmäßig true
ist und angibt, ob eine Stimme in der Tonhöhe gesteuert werden kann -
rate
ist eine Ganzzahl zwischen 0,1 und 10, die standardmäßig 1 ist und eine empfohlene Standard-Sprechgeschwindigkeit für jede Stimme bereitstellt -
pitch
ist eine Ganzzahl zwischen 0 und 2, die standardmäßig 1 ist und eine empfohlene Standardtonhöhe für jede Stimme bereitstellt
Beispiel 10: Microsoft-Sprache, bei der die Tonhöhe nicht angepasst werden kann
{
"label" : " Ana (US) " ,
"name" : " Microsoft Ana Online (Natural) - English (United States) " ,
"language" : " en-US " ,
"gender" : " female " ,
"pitchControl" : false
}
Beispiel 11: Google Voice mit empfohlenen Tonhöhen- und Geschwindigkeitsraten
{
"label" : " Voix Google féminine (France) " ,
"name" : " Google français " ,
"language" : " fr-FR " ,
"gender" : " female " ,
"rate" : 1 ,
"pitch" : 0.8
}
Zusätzliche Hinweise
Durch die Arbeit an der Dokumentation einer Liste empfohlener Stimmen habe ich letztendlich auch verschiedene Browser/Betriebssysteme getestet, um zu sehen, wie sie sich verhalten. In diesem Abschnitt sollen einige dieser Informationen zusammengefasst werden.
Außerdem steht ein spezielles Label zur Verfügung, um externe Probleme zu verfolgen, die Apple, Google, Microsoft oder Mozilla gemeldet werden.
Allgemein
- Die Web Speech API gibt über die Methode
getVoices()
die folgenden Felder zurück: name
, voiceURI
, lang
, localService
und default
. - Während
voiceURI
theoretisch die konsistenteste Methode zur Identifizierung einer Stimme sein sollte, könnte dies in der Praxis nicht weiter von der Wahrheit entfernt sein. Die meisten Browser verwenden für voiceURI
denselben Wert wie name
und erzwingen keine Eindeutigkeit. - Wie wir in den Hinweisen für bestimmte Browser/Betriebssysteme sehen werden, ist
name
auch inkonsistent implementiert und kann unterschiedliche Werte für dieselbe Stimme auf demselben Gerät zurückgeben. -
localService
zeigt an, ob eine Stimme für die Offline-Nutzung verfügbar ist und wie erwartet zu funktionieren scheint, weshalb die aktuelle Liste der empfohlenen Stimmen diese Informationen nicht enthält. -
lang
scheint in allen Implementierungen größtenteils zuverlässig zu sein und gibt eine Sprache mit BCP 47-Sprachtags zurück, wobei die Hauptsprache in Kleinbuchstaben und das Untertag in Großbuchstaben ( pt-BR
) geschrieben wird. - Es gibt leider ein paar Ausreißer:
- Unter Android verwenden Samsung und Chrome stattdessen einen Unterstrich als Trennzeichen:
en_us
(verwandtes Problem) - Während Firefox auf Android noch kreativer wird, werden Drei-Buchstaben-Codes für Sprachen verwendet und am Ende eine zusätzliche Zeichenfolge hinzugefügt:
eng-US-f000
(verwandtes Problem)
-
default
soll angeben, ob eine Stimme die Standardstimme für die aktuelle App-Sprache ist. Theoretisch sollte dies äußerst nützlich sein, aber in der Praxis ist es aufgrund von Inkonsistenzen zwischen den Implementierungen, begrenztem Kontext (Systemstandard vs. Benutzerstandard) und der fehlenden Möglichkeit, eine Standardstimme pro Sprache festzulegen, wirklich schwierig zu verwenden. - Zusätzlich zur Verwendung von
default
sollten Implementierer immer auch die Verwendung des HTTP-Headers Accept-Language
in Betracht ziehen, da dieser eine geordnete Liste der bevorzugten Sprache/Region für einen bestimmten Benutzer enthält.
Android
- Im Moment haben wir uns nur mit Tests und Dokumentation für Vanilla-Versionen von Android befasst, die auf Google Pixel-Geräten verfügbar sind. Die Liste der verfügbaren Stimmen kann je nach OEM, Gerät und Android-Version stark variieren.
- Aufgrund der Natur von Android wird es sehr schwierig sein, alle diese Variationen zu dokumentieren. Weitere Versuche werden in zukünftigen Versionen dieses Projekts durch den Einsatz von Gerätefarmen unternommen (verwandtes Problem).
- In neueren Versionen von Vanilla Android gibt es eine hervorragende Auswahl an hochwertigen Stimmen, die ein breites Spektrum an Sprachen/Regionen abdecken (67, Stand April 2024).
- Um diese Stimmen zu verwenden, muss der Benutzer ziemlich tief in die Systemeinstellungen eintauchen, um sie entweder herunterzuladen (standardmäßig sind nur Ihre Systemsprache und einige der beliebtesten Sprachen vorinstalliert) oder seine bevorzugte Stimme pro Sprache/Region auszuwählen.
- Leider gibt Chrome auf Android nicht die Liste der für die Nutzer verfügbaren Stimmen zurück, sondern eine ungefilterte Liste der Sprachen/Regionen (verwandtes Problem).
- Erschwerend kommt hinzu, dass diese Stimmen und Regionen alle mit dem Systemgebietsschema lokalisiert werden.
- Dies bedeutet unter anderem, dass auch Sprachen und Regionen, die die Installation eines Sprachpakets erfordern, in der von der Web Speech API zurückgegebenen Liste angezeigt werden (verwandtes Problem).
- Wenn der Benutzer eine Sprache/Region auswählt, für die das Sprachpaket heruntergeladen werden muss, verwendet Chrome stattdessen standardmäßig eine englische Stimme (verwandtes Problem).
- Selbst wenn ein Sprachpaket installiert wurde, muss der Benutzer möglicherweise eine Standardstimme für jede Region auswählen, bevor eine Sprache/Region überhaupt verwendet werden kann.
- Aufgrund dieses schlechten Ansatzes zur Sprachauswahl zeigt Chrome unter Android auch nicht
default
die bevorzugte Sprache/Region des Benutzers an (verwandtes Problem).
Chrome-Desktop
- Auf dem Desktop ist Chrome mit einer begrenzten Auswahl von 19 hochwertigen Stimmen in 15 Sprachen vorinstalliert.
- Alle diese Stimmen erfordern einen Online-Zugriff, um sie nutzen zu können, ohne dass auf eine Offline-Variante mit geringerer Qualität zurückgegriffen werden muss.
- Leider sind diese Stimmen auch von einem Fehler geplagt, wenn eine von der Web Speech API gelesene Äußerung länger als 14 Sekunden dauert (verwandtes Problem) und keine Grenzereignisse zurückgibt (verwandtes Problem).
- Unter den aktuellen Umständen haben diese Google-Stimmen in der Liste der empfohlenen Stimmen eine niedrigere Priorität als ihre Microsoft-/Apple-Pendants.
- Insgesamt ist es bedauerlich, dass Chrome Desktop in Bezug auf die standardmäßig unterstützten Stimmen und Sprachen weit hinter Android und Chrome OS zurückbleibt (verwandtes Problem).
Chrome OS
- Chrome OS verfügt über vier Stimmensätze: Chrome OS-Stimmen, Android-Stimmen (über 50 Sprachen), natürliche Stimmen und eSpeak-Stimmen (38 Sprachen).
- Standardmäßig lädt Chrome OS Chrome OS-Stimmen für Ihre Systemsprache herunter, während Android- und eSpeak-Stimmen für alle Sprachen verfügbar sind.
- Google fügt nach und nach auch Unterstützung für natürliche Stimmen hinzu, bei denen es sich im Grunde um höherwertige Varianten ihrer Android-Stimmen handelt, die den zusätzlichen Vorteil haben, offline zu arbeiten. Natürliche Stimmen erfordern, dass der Benutzer zu seinen Systemeinstellungen geht, um sie zu installieren.
- Chrome OS neigt unglücklicherweise dazu, Sprachpakete zu deinstallieren, wenn ein neues Chrome OS-Update installiert wird, was sehr häufig vorkommt.
- Die meisten Android-Stimmen bieten Offline- und Online-Varianten und sind hinsichtlich der Qualität mit dem Angebot von Apple an herunterladbaren Stimmen vergleichbar.
- Diese Android-Stimmen haben einige der schlechtesten Namen auf allen Plattformen/Browsern, sodass sie ohne die Art der Umbenennung, die dieses Projekt bietet, kaum verwendbar sind.
- Android-Stimmen leiden außerdem unter Problemen mit der Latenz und/oder Verfügbarkeit. In manchen Fällen kann es bis zu einer Minute dauern, bis die erste Äußerung vorgelesen wird.
- Chrome-Stimmen liegen eine Stufe unter Android-Stimmen, bieten aber eine gute Auswahl für die gängigsten Sprachen.
- eSpeak-Stimmen sollten aufgrund ihrer extrem geringen Qualität unbedingt vermieden werden und wurden separat dokumentiert, um sie herauszufiltern.
Rand
- Auf dem Desktop bietet Edge die beste Auswahl an hochwertigen Stimmen mit über 250 vorinstallierten Stimmen in 75 Sprachen (Stand April 2024).
- Alle diese sogenannten „natürlichen“ Stimmen basieren auf maschinellem Lernen (ML) und benötigen daher einen Online-Zugriff, um sie nutzen zu können.
- Eine kleine Anzahl dieser Stimmen ist auch mehrsprachig und scheint in der Lage zu sein, die Sprache eines Satzes zu erkennen und sich entsprechend anzupassen. Leider funktioniert dies nicht so gut, wenn mitten im Satz ein Sprachwechsel erfolgt.
- Zumindest unter macOS gibt es einen seltsamen Fehler, bei dem Edge anfänglich nur 18 natürliche Stimmen anzeigt, dies jedoch auf 250+ ansteigt, sobald die Web Speech API zur Ausgabe einer Äußerung verwendet wurde.
- Darüber hinaus gibt es weitere Probleme, die Implementierer bei der Verwendung dieser Stimmen beachten sollten: Sie unterstützen keine Tonhöhenanpassung (verwandtes Problem) und eine Reihe von Zeichen müssen mit Escapezeichen versehen werden, um Wiedergabeprobleme zu vermeiden (verwandtes Problem).
- Auf Mobilgeräten ist Edge bei weitem nicht so interessant:
- Unter Android ist es völlig unbrauchbar, da es eine leere Liste von Stimmen zurückgibt, was die Verwendung mit der Web Speech API unmöglich macht (verwandtes Problem).
- Unter iOS/iPadOS sind derzeit alle Browser gezwungen, Safari als Engine zu verwenden, was bedeutet, dass sich Edge genau wie Safari Mobile verhält.
Firefox
- Auf dem Desktop scheint Firefox bei der Sprachauswahl recht einfach zu sein.
- Im Gegensatz zu Chrome und Edge verfügt Firefox über keine vorinstallierte eigene Stimme.
- Firefox verfolgt einen anderen Ansatz für
voiceURI
, bei dem jede Stimme wirklich durch eine eindeutige URN identifiziert wird. - Da dies nur für Firefox gilt, dokumentieren die aktuellen JSON-Dateien diese URIs noch nicht, dies könnte jedoch eine zukünftige Ergänzung sein.
- Unter macOS erfordert Firefox einen vollständigen Systemneustart, damit neue Stimmen in der Liste angezeigt werden.
iOS und iPadOS
- Beide Betriebssysteme verfügen über die gleichen vorinstallierten und herunterladbaren Stimmen wie macOS. Weitere Informationen zu den verfügbaren Stimmen finden Sie im Abschnitt „MacOS“ weiter unten.
- Aus einem unbekannten Grund werden einige vorinstallierte Stimmen ebenfalls doppelt aufgeführt, bieten aber die gleiche Audioausgabe.
- Alle Browser müssen in der System-Webansicht ausgeführt werden, was bedeutet, dass sie nur eine Shell auf Safari Mobile sind und keine wirklich unterschiedlichen Browser.
- Diese Situation könnte sich aufgrund des Digital Market Act in Europa ändern, der Apple dazu zwingt, seine Richtlinien zu Browsern und Webviews von Drittanbietern zu ändern.
macOS
- macOS bietet eine umfangreiche Liste von Stimmen in 45 Sprachen, sowohl vorinstalliert als auch herunterladbar.
- Diese Stimmen können je nach Qualität der Ausgabe (und Downloadgröße) bis zu drei verschiedene Varianten haben.
- Die hochwertigsten Stimmen sind wahrscheinlich diejenigen, die für Siri verfügbar sind, aber leider sind sie nicht über die Web Speech API verfügbar (verwandtes Problem).
- Am anderen Ende des Spektrums hatte Apple die unglückliche Idee, eine große Auswahl minderwertiger und seltsamer Stimmen wie die Sprachpakete Eloquence (8 Stimmen) und Effects (15 Stimmen) vorab zu laden.
- Allein die Existenz dieser Stimmen ist ein guter Grund, die für macOS-Benutzer verfügbaren Stimmen zu filtern und die in diesem Repo empfohlenen Stimmen hervorzuheben.
- Im Gegensatz zu anderen Plattformen/Betriebssystemen hat macOS beschlossen, Sprachnamen zu lokalisieren. Dies wäre kein Problem, wenn
voiceURI
als zuverlässige Kennung für Stimmen verwendet werden könnte, aber das ist nicht der Fall (verwandtes Problem). - In seinem aktuellen Zustand dokumentiert dieses Repo nur Lokalisierungen für die offiziell unterstützten Sprachen und nicht die 45 Sprachen, die von der macOS TTS-Engine unterstützt werden.
Safari
- Im Guten wie im Schlechten ist das Verhalten von Safari zwischen der Desktop- und der mobilen Version größtenteils gleich.
- Herunterladbare Stimmen werden nicht in der von der Web Speech API zurückgegebenen Liste angezeigt (verwandtes Problem).
- Schlimmer noch: Bei der Installation hochwertigerer Varianten vorinstallierter Stimmen verschwinden diese Stimmen in Safari, was bedeutet, dass ganze Sprachen vollständig verschwinden können.
- In Safari geben alle Stimmen als
default
true
zurück, was es unmöglich macht, den System-/Benutzerstandard zu erkennen und auszuwählen (verwandtes Problem).
Windows
- Microsoft stellt eine sehr hilfreiche Seite zur Verfügung, auf der alle in Windows 10 und 11 verfügbaren Stimmen aufgelistet sind, also insgesamt 98 Stimmen in 36 Sprachen.
- Natürliche Stimmen bieten ein weitaus besseres Erlebnis, erfordern jedoch eine aktuelle Version von Windows 11 und müssen heruntergeladen werden (mit dem zusätzlichen Vorteil, dass sie auch offline funktionieren).
- Microsoft hat diese natürlichen Stimmen insgesamt nur langsam in Windows 11 integriert. Bis vor Kurzem waren nur US-Stimmen (3 Stimmen) verfügbar. Die Liste ist jetzt etwas länger (23 Stimmen in 8 Sprachen), bleibt aber weit hinter dem zurück, was sie über Edge anbieten (250+ Stimmen in 75 Sprachen).
- Leider werden diese höherwertigen Stimmen derzeit in Chrome oder Firefox nicht richtig aufgeführt (verwandtes Problem). Sie werden nur in Edge angezeigt, wo sie ohnehin vorinstalliert sind, jedoch ausschließlich für die Online-Nutzung.