जेएस स्पीच सिंथेसिस टू नोड। जेएस रीडेबल स्ट्रीम

Aug 17 2020

जावास्क्रिप्ट का अंतर्निहित टेक्स्ट-टू-स्पीच फ़ंक्शन है SpeechSynthesis.speak()। मैं discord.js का उपयोग कर रहा हूं और मैं स्पीच सिंथेसिस को एक नोड में बदलना चाहता हूं। पठनीय स्ट्रीम ताकि मैं इसे वॉइस चैनल पर प्रसारण के रूप में वापस खेल सकूं ।

मैं मिला इस Github रेपो , लेकिन यह मेरे लिए काम नहीं किया और मैं एक मुश्किल समय इसका प्रसारण (इसके अलावा था, जबकि मैं 100% कुछ नहीं कर रहा हूँ, मैं कर रहा हूँ यह सोचते हैं जो महान जब नहीं है, यह टीटीएस रिकॉर्ड करता है, पाठ के बड़े तारों से निपटना)।

उपरोक्त कोड का उपयोग करते समय मुझे मुख्य त्रुटियां मिलीं:

The AudioContext was not allowed to start. It must be resumed (or created) after a user gesture on the page.

तथा

Uncaught TypeError: Cannot read property 'getUserMedia' of undefined

मेरा लक्ष्य Google की tts API जैसी कुछ चीज़ों से बचना है और केवल मूल जावास्क्रिप्ट का उपयोग करना है। क्या स्पीच सिंथेसिस को रीडेबल स्ट्रीम में बदलना संभव है जिसे मैं कलह में उपयोग कर सकता हूं। यदि हां, तो कैसे? या, पिछले रेपो का उपयोग करने का कोई तरीका है? कृपया मेरी मदद करो, यह बहुत सराहना की जाएगी।

(यह भी, मुझे पता है कि कलह के लिए संदेश पढ़ने के लिए एक अंतर्निहित tts बटन है - यह पूरी तरह से अलग चीज के लिए है)

जवाब

1 Luke Aug 17 2020 at 23:50

वेब स्पीच API (SpeechSynthesis.speak ()) अंतर्निहित OS या ब्राउज़र संश्लेषण कार्यान्वयन का उपयोग करता है, और वेब ऑडियो API के माध्यम से नहीं जाता है। कि गितुब रेपो वास्तव में भाषण प्रणाली को रिकॉर्ड करने के लिए आपके सिस्टम के माइक्रोफोन का उपयोग करता है। यह एक हैक के अलावा एक अच्छा विचार नहीं है। आपको सामग्री उत्पन्न करने के लिए कुछ और उपयोग करने की आवश्यकता होगी - शायद Say.js जो क्रॉस ब्राउज़र है और नोड.जेएस में सीधे काम करता है?