مكتبة micropython ل yutone voicetx syn6988 النص إلى وحدة الكلام.
أو تنزيل الصوت التجريبي: Syn6988-Micropython-demo.mp3
الذي "يقرأ" النص التالي:
[g2]Hello! [g1]你好![g2]
I can speak in English, and also in Chinese:
[g1]千里之行,始于足下。[g2]
which means: a journey of five hundred kilometres starts with the first step
[s1]I can speak slowly, [s9] and I can speak very fast[s5]
[v5]I can be [v10]loud or [v1]very quiet. [v5]
I can use [t1]low tones [t5]or [t8]high tones[t5]
[d][g0]my work here is done [x1]soundy[d]

تعد SYN6988 واحدة من عدة وحدات مزج الكلام / النص إلى الكلام (TTS) المتوفرة بشكل غير مكلف على Aliexpress وغيرهم من البائعين. إنه أمر مثير للإعجاب لأن:
ينتج خطابًا إنجليزيًا واضحًا دون اللجوء إلى الصوتيات ؛
يحتوي على خط خارج / سماعة رأس ومخرجات مكبر صوت صغيرة ، وكلاهما يتميز بصوت نظيف للغاية ؛
من السهل الواجهة ، إما من خلال المسلسل أو SPI غير المتزامن (الأخير لم يحاول هنا) ؛
لديها بعض المرونة في الحجم والملعب ومعدل الكلام (ولكن ليس dectalk) ؛
لديها مكتبة كبيرة من نغمات التنبيه مدمجة ؛
انها ليست باهظة الثمن ، يجري حولها ؟؟ 15 دولار.
بالطبع ، هناك سلبيات:
كل الوثائق حتى الآن باللغة الصينية.
إنه يحتوي على صوت أنثى واحد فقط مع تسليم روبوتية قليلاً ؛
قد لا تحصل على اللوحة التي طلبتها! لقد تم بيع هذه اللوحة على أنها تحتوي على شريحة XFS5152 عندما يكون لها بوضوح SYN6988.
من الصعب التوصية ببائع ، حيث لا أستطيع أن أضمن أنهم يبيعون لوحة مع SYN6988 عليها. تأكد من أن وصف البائع يقول SYN6988 (هناك رقائق مماثلة SYN6288 و SYN6658 مع قدرات مختلفة) ولوحة الشريحة مع SYN6988 SILKSCREEN. لقد رأيت بعض المجالس للبيع تقول Syn6658 على شاشة PCB ، ولكن لديك Syn6988 في الصورة والوصف.
Syn6988 هو جهاز 3.3 فولت لكل من المنطق والطاقة. يتطلب اتصال UART من سلكين بالإضافة إلى دبوس إدخال رقمي إضافي لمراقبة الحالة المزدحمة لـ TTS.
SYN6988 MicroPython Board Raspberry Pi Pico
========= =================== ===================
RDY Digital Input GPIO 2
RXD UART TXD GPIO 0 (UART 0 TX)
TXD UART RXD GPIO 1 (UART 0 RX)
GND Ground Any GND pin
3V3 3V3 supply 3V3(OUT)
يستخدم SYN6988 معدل منفذ تسلسلي ثابت محدده ترتيب المقاومات في كتلة اختيار السرعة التسلسلية. منجم شاق ل 9600 باود.
بالنسبة إلى Raspberry Pi Pio ، قد يتم دعم هذه الاتصالات في الكود مع:
ser = machine . UART ( 0 , baudrate = 9600 , bits = 8 , parity = None , stop = 1 )
busyPin = machine . Pin ( 2 , machine . Pin . IN , machine . Pin . PULL_UP )يكون إخراج الصوت إما من خلال مقبس سماعة الرأس / الخط أو عن طريق دبابيس السماعة. هذا الإخراج غير مضخم. يمكنني قيادة مكبر صوت بيضاوي صغير جدًا في حجم مريح من دبابيس السماعة ، لكن الكانافيات الكبيرة يمكن أن تكون هادئة للغاية.
اللوحة التي لدي ليست صديقة للوح. لقد حللت ذلك من خلال أخذ رؤوس arduino التي تتسع من 6 أسنان ، وانحناء المسامير للخارج والعودة في الزوايا اليمنى ، ثم تلصق الرؤوسين بالعودة إلى الخلف. هذا يعطي كتلة رأس تسد الحوض الرئيسي في لوح الخبز ، مما يسمح لوح Syn6988 بالجلوس مركزيًا.

إذا تم توصيل اللوحة بشكل صحيح ، فسيتم إضاءة LED Red Ready عندما لا يتحدث TTS. سوف يخرج هذا LED عندما يتحدث TTS ، وسوف ينخفض دبوس RDY قريبًا (حوالي 0.1 إلى 0.7 ثانية) بعد بدء الكلام ، وينتقل عند الانتهاء من الكلام.
إذا تم استخدام رمز التهيئة أعلاه ، فسيتحدث Micropython التالي "Hello" هادئًا من اللوحة:
import syn6988
s = syn6988 . SYN6988 ( ser , busyPin )
s . speak ( "[v1]hello" )هناك عدد قليل جدًا من الطرق والخصائص لهذه الوحدة:
تحدث ( سلسلة ) - يرسل سلسلة إلى TTS. يمكن تشكيل الإخراج بأوامر نص مضمّنة. يقبل نص Unicode بما في ذلك الأحرف الصينية التقليدية. يجعل وظيفة سيئة للغاية في محاولة اللغة غير الإنجليزية أو غير الصينية.
كتلة = صواب | خطأ - بشكل افتراضي ، ينبعث الكلام في وضع الحظر : أي ، لن تعود طريقة speak() حتى يتم الإشارة إلى أنه تم الانتهاء من ذلك. إذا تم تعيين block = False ، فسوف يعود speak() على الفور ، لكن TTS سيظل يتحدث ويترك الانتظار حتى المبرمج.
ISBUSY () - إذا تم استدعاؤه في وضع عدم الحظر ، isBusy() يعيد صوابًا أثناء حديث TTS. يمكن استخدام هذا لمنع مقاطعة الكلام. إذا تم استدعاؤه في وضع الحظر ، فسوف يعود دائمًا خطأ.
يتم التحكم في SYN6988 بأوامر محاطة [] . هناك الكثير من هذه ، وأنا لا أفهمهم جميعًا. لقد وضعت عدد قليل منهم في test-syn6988.py مع آمل معاني واضحة لما يفعلونه. باختصار:
[d] - إعادة تعيين TTS إلى الوضع القياسي. يمكن أن تكون مفيدة بعد استدعاء أي من أصوات التنبيه.
[g0] - تخمين اللغة التلقائي ؛ [g1] - تفضيل اللغة الصينية ؛ [g2] - تفضيل اللغة الإنجليزية. إن اللغة الإنجليزية المنطوقة في الوضع الصيني لها تجويد غريب ، في حين أن الصينيين يتحدثون في الوضع باللغة الإنجليزية قد لا يتم اكتشافه بشكل صحيح.
[p*] - توقف مؤقت ، على سبيل المثال [p500] يتوقف عن 500 مللي ثانية.
[s*] - معدل الكلام: [s0] أبطأ لـ [s10] الأسرع.
[t*] - Tone/Pitch: [t0] أدنى إلى [t10] الأعلى.
[x0] / [x1] - فسر سلسلة تبدأ بـ "صوت" كواحدة من عدة مئات (؟) نغمات مختلفة وأدقة وأجهزة الإنذار. على سبيل المثال [x1]soundy[d] يلعب رنينًا ممتعًا إلى حد ما أفرط فيه بشكل كبير. من المهم استخدام [d] بعد حدوث هذا الأمر أو نتائج غير متوقعة. مرجع الجدول الصوتي هنا: SYN-6988 خطاب مع micropython-رأينا دجاج ...
[v*] - المجلد: [v0] صامت ، [v1] الأكثر هدوءًا إلى [v10] أعلى.
يقبل SYN6988 مجموعة واسعة من ترميزات الإدخال ، لا يدعم أي منها micropython. ومع ذلك ، فإنه يدعم UTF16-BE (بايتان لكل Char ، لا BOM ، بايت مرتفع أولاً ؛ على سبيل المثال: "Hello" => b'x00hx00ex00lx00lx00o' ) والتي يمكن أن تكون سهلة العمل. إذا كانت البيانات المشفرة الخاصة بنا في UTF-16BE في data_bytes ونحددها
tx_len = len ( data_bytes ) + 2سيقبل SYN6988 دفق البايت التالي فوق المنفذ التسلسلي ويحاول التحدث به:
0xFD, tx_len // 256, tx_len % 256, 0x01, 0x04, data_bytes
لا ينبغي أن تكون سلسلة البيانات طويلة جدًا: شيء أقل من 4096 حرفًا ، ربما. يمكن أن يستغرق المجلس ما يصل إلى 700 مللي ثانية لمعالجة النص ، وبالتالي نتوقف لفترة طويلة للتأكد من أن النص يتحدث عنه كل شيء.
Stewart Russell - Scruss.com - AKA @scruss @xoxo.zone
معهد ماساتشوستس للتكنولوجيا. إذا قمت بتحسين هذا ، فيرجى إخبارنا بذلك حتى أتمكن من تحسين ذلك.
يعمل رمز UTF-8-> UTF-16BE ولكنه يبدو أنه يمكن تحسينه. يجب أن تبقى شيئًا يمكنني فهمه.
هناك فرصة صغيرة أن يتم تخطي نص طويل حقًا لأنني لا أنتظر طويلاً بما يكفي حتى يتم معالجته عند القراءة في وضع الحظر.
قم بتعميم هذا الرمز (إن أمكن) للعمل مع شرائح SYN6288 و SYN6658 و XFS5152. لدي العديد من هذه حسب الطلب.
Yutone Voicetx Syn6988 Documentation (باللغة الصينية فقط): 语音合成芯 片 -syn6988 中英文 tts 语音芯 片.
محاولاتي المبكرة لقيادة هذا اللوحة من Cpython: خطاب من Python مع وحدة Syn6988 - رأينا دجاجًا ... هذا ينتج الصوت ، لكنني أقوده بالفعل بشكل خاطئ. لا يزال يعمل ، رغم ذلك. لديه نسخة مترجذ تلقائيًا من مرجع البرمجة ، وهو كل ما كان علي العمل منه.
قصيدة ريتشارد بروتيجان التي شاهدتها جميعها من قبل آلات المحبة النعمة ، "اقرأ" بواسطة رقاقة TTS Syn6988 TTS التي يقودها Micropython: جميعها تشاهدها آلات Loving Grace | SoundCloud.