পিপার, পাইপার -হুইসেল এবং নামযুক্ত পাইপ ব্যবহার করে কীভাবে একজন অ্যাড-হক, স্থানীয় (অফলাইন) টেক্সট-টু-স্পিচ সিন্থেসাইজার সেটআপ করতে পারে তা দেখে নেওয়া যাক।
একটি GNU/Linux ভিত্তিক সিস্টেমে পাইপার সেটআপ করার জন্য, আমি নামযুক্ত পাইপ ব্যবহার করে একটি সাধারণ আর্কিটেকচার বর্ণনা করব, যা সিস্টেম ওয়াইড টেক্সট-টু-স্পীচের জন্য যথেষ্ট সোজা, কিছুটা ম্যানুয়াল সেটআপ সহ, পাইপারের সাহায্যে -হুইসেল এবং কিছু ছোটখাটো ট্রেড-অফ (এটি সহজ, তবুও এটি সমান্তরাল স্পিচ প্রসেসিং সমর্থন করবে না)।
শুরু করতে, গিথুবে হোস্ট করা তার সংগ্রহস্থল থেকে সর্বশেষ পাইপার স্ট্যান্ড-অলোন তৈরি করা যাক (এটি লেখার সময় 2023.11.14-2 )। সংকুচিত সংরক্ষণাগারটি ডাউনলোড করার পরে, আমরা আমাদের পাইপার সেটআপের জন্য একটি ডিরেক্টরি কাঠামো তৈরি করব। রুট ডিরেক্টরিটি নিম্নলিখিত সাব-ডিরেক্টরি সহ /opt/wind
এ থাকবে:
/opt/wind/piper
(নির্মিত পাইপার বসবে)/opt/wind/channels
(নামিত পাইপ থাকবে)
ডিকম্প্রেস করার পরে, পাইপার এক্সিকিউটেবল /opt/wind/piper/piper
এ পাওয়া উচিত, সেইসাথে সাথে থাকা লাইব্রেরি এবং espeak-ng-data
।
পাইপার দ্বারা ব্যবহৃত ভয়েস মডেলগুলি পরিচালনা করার জন্য, আমি পাইপার-হুইসেল ব্যবহার করার সুপারিশ করব, পাইথনে লেখা একটি কমান্ড-লাইন ইউটিলিটি, যা ভয়েসগুলি ডাউনলোড এবং পরিচালনা করা আরও সুবিধাজনক করে তোলে।
আপনি এর গিটল্যাব বা গিথুব রিলিজ পৃষ্ঠা থেকে সর্বশেষ চাকা ফাইল পেতে পারেন। হুইল ফাইলটি ইনস্টল করার পরে, আসুন কিছু স্পিচ জেনারেট করার জন্য একটি ভয়েস নিয়ে আসি। প্রথমে piper_whistle -vR
কল করে ডাটাবেস আপডেট করা যাক। ইংরেজি বক্তৃতার জন্য, আমি আলবা নামক মহিলা কণ্ঠকে বেশ পছন্দ করি। হুইসেল ব্যবহার করে, আমরা piper_whistle list -l en_GB -i 2
ব্যবহার করে সমস্ত উপলব্ধ ইংরেজি (GB) ভয়েসের তালিকা পেতে পারি। ভয়েসটি ইনডেক্স 2 এ আছে। তাই ইন্সটল করতে শুধু piper_whistle install en_GB 2
।
এর পরে, আসুন প্রয়োজনীয় নামযুক্ত পাইপ তৈরি করি। ফলস্বরূপ গঠন এই মত দেখাবে:
/opt/wind/channels/speak
(JSON পেলোড গ্রহণ করে)/opt/wind/channels/input
(piper দ্বারা পড়া)/opt/wind/channels/ouput
(পাইপার দ্বারা লিখিত)
একটি নামযুক্ত পাইপ তৈরি করতে, আপনি নিম্নলিখিত কমান্ড ব্যবহার করতে পারেন: mkfifo -m 755 /opt/wind/channels/input
অবশেষে, আমরা পৃথক শেলে তিনটি প্রক্রিয়া তৈরি করি:
tail -F /opt/wind/channels/speak | tee /opt/wind/channels/input
/opt/wind/piper/piper -m $(piper_whistle path alba@medium) --debug --json-input --output_raw < /opt/wind/channels/input > /opt/wind/channels/output
aplay --buffer-size=777 -r 22050 -f S16_LE -t raw < /opt/wind/channels/output
tty0 এর প্রক্রিয়া নিশ্চিত করে, পাইপার বা এপ্লে দ্বারা প্রক্রিয়াকরণ শেষ হওয়ার পরেও পাইপটি খোলা রাখা হয়েছে। এইভাবে, আমরা টিটিএস অনুরোধগুলি সারিবদ্ধ করতে পারি এবং পরবর্তীতে সেগুলি চালাতে বা সংরক্ষণ করতে পারি।
যেহেতু উপরের কাঠামোটি ব্যবহার করলে পাইপার-হুইসেল অতিরিক্ত বৈশিষ্ট্য অফার করে, তাই আমরা এখন piper_whistle speak "This is quite neat"
। X11 এর সাথে সিস্টেমে আপনি piper_whistle speak "$(xsel --clipboard --output)"
এর মাধ্যমে আপনার ক্লিপবোর্ডে পাঠ্যের একটি উচ্চারিত সংস্করণ তৈরি করতে পারেন।