Splits SSML -Streicher in Stapel AWS Polly Ánd Googles Text zu Sprach -API können konsumieren.
hardLimit konfigurieren.. , ; oder Raum. Kann konfiguriert werden.Basierend auf Polly-SSML-Split von @Ollegun
Installieren Sie das Paket mit:
npm install ssml-split --save Importieren Sie das Paket und setzen Sie die Optionen. Verwenden Sie die Methode .split() , um Ihre SSML -Zeichenfolge zu teilen. Sie können den softLimit optimieren, um zu sehen, was für Sie funktioniert. Ich schlage vor, Sie behalten die hardLimit an der Begrenzungsgrenze der jeweiligen API:
import SSMLSplit from 'ssml-split' ;
const ssmlSplit = new SSMLSplit ( {
// The service you are using: "google" or "aws"
synthesizer : 'google' ,
// Finds a possible split moment starting from 4000 characters
softLimit : 4000 ,
// Google Text to Speech limitation
hardLimit : 5000 ,
// Allow to split large paragraphs, set to false to keep your <p></p> intact
breakParagraphsAboveHardLimit : true
} ) ;
const batches = ssmlSplit . split ( '<speak>your long ssml here</speak>' ) ;| Option | Typ | Standard | Beschreibung |
|---|---|---|---|
synthesizer | string | aws | Stellen Sie an welchen Synthesizer Sie verwenden. Nützlich, wenn Sie breakParagraphsAboveHardLimit verwenden. Die Bibliothek kann die korrekte Bruchlänge bestimmen, da sich das Synthesizer -Service unterscheidet. |
softLimit | number | 1500 | Die Anzahl der Zeichen, die das Skript in mehreren Teilen versuchen wird, Ihre SSML zu zerstören. Sie können diese Nummer optimieren, um zu sehen, was für Sie funktioniert. |
hardLimit | number | 3000 | Die Anzahl der Zeichen, die das Skript für eine maximale Größe pro SSML -Teil bleiben sollte. Wenn eine Chargengröße darüber liegt, wird das Skript fehlerhaft. Diese Festgrenze ist die Charaktergrenze der AWS oder der Google -API, die Sie verwenden. |
breakParagraphsAboveHardLimit | boolean | false | Setzen Sie auf true , damit das Skript große Absätze auflösen kann, indem Sie das <p> entfernen und das < / </p> durch ein <break strength="x-strong" /> (für aws ) oder <break strength="x-weak" /> (für google ) ersetzen. Was in der gleichen Pause führt. Erfordert synthesizer eingestellt. |
extraSplitChars | string | ,;. | Zeichen, die als Split -Marker für einfache Text verwendet werden können. |
Durch die Verwendung des Optionssynthesizer synthesizer: 'google' enthält die Bibliothek SSML -Tags -Zeichen, um den bestmöglichen Split -Moment zu bestimmen. Dadurch funktioniert die Bibliothek auch mit Googles Text -to -Speech -API.
Zum Beispiel: <speak><p>some text</p></speak>
Das Standardverhalten würde zählen, dass 9 Zeichen, was für AWS Polly in Ordnung ist, jedoch nicht für Googles Text zu Sprach -API.
Mit synthesizer: 'google' wird es als 31 Zeichen gelten, genau wie der Text von Google to Speech API es zählt.
Dies sollte Sie daran hindern, diesen Fehler zu erkennen, wenn Sie den Text von Google zu Sprach -API verwenden:
INVALID_ARGUMENT: 5000 characters limit exceeded. Durch Hinzufügen der Option breakParagraphsAboveHardLimit: true IHREN SCHRIFF, große Absätze aufzubrechen, indem Sie die <p> durch die <peakfestigkeit durch ein < </p> durch ein <break strength="x-strong" /> für AWS oder <break strength="x-weak" /> für Google ersetzen. Was in der gleichen Pause führt. Dadurch kann die Bibliothek große Absätze ordnungsgemäß teilen.
Die Verwendung dieser Option führt zu 20 weiteren Zeichen pro Absatz zu Ihrer Verwendung, wenn Googles Text zu Sprach -API verwendet wird.
Wenn Sie mit großen Absätzen arbeiten und diese Option nicht verwenden, sind Sie möglicherweise auf Fehler wie SSML tag appeared to be too long .
Die Verwendung dieser Option wird empfohlen, wenn Sie eine SSML -Länge haben, die über dem hardLimit liegt.
new SSMLSplit ( {
synthesizer : 'aws' ,
softLimit : 2000 ,
hardLimit : 3000 , // AWS Polly limitation
breakParagraphsAboveHardLimit : true , // optional, but recommended when you have large <p>'s
} ) new SSMLSplit ( {
synthesizer : 'google' ,
softLimit : 4000 ,
hardLimit : 5000 , // Google Text to Speech API limitation
breakParagraphsAboveHardLimit : true , // optional, but recommended when you have large <p>'s
} ) Die Polly-SSML-Split von der @OlleGun-Bibliothek wird bereits die Aufteilung von SSML für AWS Polly abgeschlossen, funktionierte jedoch nicht ordnungsgemäß für Googles Text zur Sprache. Also habe ich das Paket gerade geändert, um meinen Anforderungen zu entsprechen.
polly-ssml-split :synthesizer -Option hinzugefügt, um Zeichen basierend auf dem vollständigen SSML -Tag und nicht nur den enthaltenen Textzeichen zu zählen. Dies ist erforderlich, wenn Sie mit Googles Text -to Speech -API arbeiten..configure -Methode und verwenden Sie stattdessen die Klassenkonstruktormethode.breakParagraphsAboveHardLimit hinzugefügt, um große Absätze zu zerbrechen, indem das <p> die < / </p> durch ein <break strength="x-strong" /> für AWS oder <break strength="x-weak" /> für Google ersetzt wird. Was in der gleichen Pause führt. Dadurch kann die Bibliothek den Absatz ordnungsgemäß teilen und weniger Stapel an den Text an Speech -APIs senden.Jeder Beitrag wird geschätzt! Bitte lesen Sie unseren Beitrag zum Beitrag zum Beitrag.
Verwenden Sie einen testgetriebenen Ansatz, wenn Sie neue Funktionen entwickeln oder Fehler beheben.
Entwickeln:
$ npm install
$ npm run devFühren Sie Tests in der Dateiänderung aus:
$ npm test:watchErstellen Sie Typenkript in JavaScript:
$ npm run buildFühren Sie alle Tests aus:
$ npm test