تقسيم سلاسل SSML إلى دفعات AWS POLLY áND Google to to cleage API يمكن أن تستهلكها.
hardLimit .. , ، ، ; أو الفضاء. يمكن تكوينها.استنادا إلى polly-ssml-split بواسطة eleglegun
تثبيت الحزمة مع:
npm install ssml-split --save استيراد الحزمة وتعيين الخيارات. استخدم طريقة .split() لتقسيم سلسلة SSML الخاصة بك. يمكنك تعديل softLimit لمعرفة ما يناسبك. أقترح عليك الحفاظ على hardLimit في الحد الأقصى لواجهة برمجة التطبيقات المعنية:
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>' ) ;| خيار | يكتب | تقصير | وصف |
|---|---|---|---|
synthesizer | string | aws | تعيين إلى أي مزج تستخدمه. مفيد عند استخدام breakParagraphsAboveHardLimit . إنها تسمح للمكتبة بتحديد طول الفترة الصحيح ، حيث يختلف ذلك لكل خدمة مزج. |
softLimit | number | 1500 | كمية الأحرف التي سيبدأ البرنامج النصي في محاولة تفتيت SSML في أجزاء متعددة. يمكنك تعديل هذا الرقم لمعرفة ما يناسبك. |
hardLimit | number | 3000 | يجب أن يبقى كمية الأحرف التي يظل البرنامج النصي أقل من الحجم الأقصى لكل جزء من SSML. إذا كان أي حجم دفعة أعلى من هذا ، فإن البرنامج النصي سوف يخطئ. هذا الحد الصعب هو الحد الأقصى لحرف AWS أو Google API التي تستخدمها. |
breakParagraphsAboveHardLimit | boolean | false | قم بتعيين true للسماح للنص النصي بتفكيك الفقرات الكبيرة عن طريق إزالة <p> واستبدال < / </p> بـ <break strength="x-strong" /> (for aws ) أو <break strength="x-weak" /> (لـ google ). مما يؤدي إلى نفس الإيقاف المؤقت. يتطلب تعيين synthesizer الخيار. |
extraSplitChars | string | ,;. | الأحرف التي يمكن استخدامها كعلامات تقسيم للنص العادي. |
باستخدام synthesizer: 'google' حساب أحرف علامات SSML لتحديد أفضل لحظة تقسيم ممكنة. هذا يجعل المكتبة تعمل أيضًا مع نص Google إلى API.
على سبيل المثال: <speak><p>some text</p></speak>
سيحسب السلوك الافتراضي أنه على أنه 9 أحرف ، وهو أمر جيد بالنسبة لـ AWS Polly ، ولكن ليس لنص Google إلى API.
مع synthesizer: 'google' سيتم عدها على أنها 31 حرفًا ، تمامًا مثل Text Text to Week API يحسبها.
هذا يجب أن يمنعك من رؤية هذا الخطأ عند استخدام نص Google إلى واجهة برمجة تطبيقات الكلام:
INVALID_ARGUMENT: 5000 characters limit exceeded. من خلال إضافة خيار breakParagraphsAboveHardLimit: true ، تسمح للبرنامج النصي بتفكيك الفقرات الكبيرة عن طريق إزالة <p> واستبدال < / </p> بـ <break strength="x-strong" /> لـ AWS أو <break strength="x-weak" /> for Google. مما يؤدي إلى نفس الإيقاف المؤقت. هذا يسمح للمكتبة بتقسيم الفقرات الكبيرة بشكل صحيح.
سيؤدي استخدام هذا الخيار إلى 20 حرفًا إضافيًا ، لكل فقرة ، إلى استخدامك عند استخدام نص Google إلى API.
إذا كنت تعمل مع فقرات كبيرة ولم تستخدم هذا الخيار ، فقد تواجه أخطاء مثل SSML tag appeared to be too long .
يوصى باستخدام هذا الخيار عندما يكون لديك طول SSML أعلى من hardLimit .
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
} ) يعالج Polly-SSML-SPLIT بواسطة Library eleglegun بالفعل تقسيم SSML بشكل صحيح لـ AWS Polly ، لكنه لم يكن يعمل بشكل صحيح لنص Google إلى الكلام. لذلك قمت فقط بتعديل الحزمة لتناسب احتياجاتي.
polly-ssml-split :synthesizer لحساب الأحرف استنادًا إلى علامة SSML الكاملة وليس فقط أحرف النص المضمّنة. المطلوب إذا كنت تعمل مع نص Google إلى API..configure واستخدم طريقة مُنشئ الفئة لها بدلاً من ذلك.breakParagraphsAboveHardLimit لتفكيك الفقرات الكبيرة عن طريق إزالة <p> واستبدال < / </p> مع <break strength="x-strong" /> لـ AWS أو <break strength="x-weak" /> for Google. مما يؤدي إلى نفس الإيقاف المؤقت. يتيح ذلك للمكتبة تقسيم الفقرة بشكل صحيح وإرسال دفعات أقل إلى النص إلى API.أي مساهمة موضع تقدير! يرجى قراءة المساهمة لدينا. md حول كيفية المساهمة.
استخدم نهجًا يحركه الاختبار عند تطوير ميزات جديدة أو إصلاح الأخطاء.
يطور:
$ npm install
$ npm run devقم بتشغيل الاختبارات في تغيير الملف:
$ npm test:watchبناء TypeScript إلى JavaScript:
$ npm run buildقم بتشغيل جميع الاختبارات:
$ npm test