gTTS কী?
gTTS একটি ওপেন-সোর্স পাইথন লাইব্রেরি ও কমান্ড-লাইন টুল, যা Google Translate-এর টেক্সট-টু-স্পিচ এন্ডপয়েন্ট ব্যবহার করে টেক্সটকে স্পোকেন MP3 অডিওতে পরিণত করে। আপনি আউটপুট ফাইলে, অডিও প্রসেসিংয়ের জন্য ফাইল-লাইক অবজেক্টে বা সরাসরি stdout-এ নিতে পারেন। এটি Pierre Nicolas Durette দ্বারা তৈরি, MIT লাইসেন্সে বিতরণকৃত, এবং PyPI-তে সবচেয়ে বেশি ডাউনলোড হওয়া TTS প্যাকেজগুলোর একটি—লেখার সময় প্রতি সপ্তাহে ১,৭৫,০০০ ডাউনলোড। পাইথনে তিন লাইনে টেক্সটকে MP3-তে রূপান্তর করতে চাইলে, সম্ভবত gTTS-ই প্রথম পছন্দ হবে।
তবে লক্ষ রাখা জরুরি, gTTS মানে Google Cloud Text-to-Speech নয়। এটি Google Translate-এর অপ্রকাশিত ব্যাকএন্ড ব্যবহার করে, যেটি "Listen" বাটনে চলে। এই পার্থক্যই ঠিক করে দেয় — gTTS কোথায় ভালো, কোথায় কাজের নয় এবং কখন অন্য কিছু বেছে নেওয়া ঠিক হবে।

কখন gTTS ব্যবহার করবেন?
ফ্রি, দ্রুত প্রোটোটাইপিংয়ের জন্য; এক লাইনের কোডে টেক্সট থেকে MP3; বহু ভাষার ডেমো; শিক্ষামূলক কাজ বা অ্যাক্সেসিবিলিটি স্ক্রিপ্টে Google Docs এক্সপোর্ট পড়ে শোনাতে হলে gTTS ব্যবহার করুন। প্রোডাকশন গ্রেড নির্ভরযোগ্যতা, ডকুমেন্টেড SLA, ভয়েস ক্লোনিং, SSML নিয়ন্ত্রণ, নিউরাল বা এক্সপ্রেসিভ ভয়েস, স্ট্রিমিং, বা স্পষ্ট বাণিজ্যিক লাইসেন্স লাগলে gTTS ব্যবহার না করাই ভালো।
gTTS কিভাবে কাজ করে?
gTTS লোকালভাবে স্পিচ তৈরি করে না। এটি Google Translate-এর "Listen" ফিচারের মতো একই ব্যাকএন্ডে রিকোয়েস্ট পাঠায়, পাওয়া MP3 ডাউনলোড করে এবং আপনাকে বাইট রিটার্ন করে। এই কারণে ইন্টারনেট লাগবেই, অফলাইন মোড নেই এবং অডিও গুগলের সার্ভারে তৈরি হয়, আপনার ডিভাইসে নয়। এন্ডপয়েন্টটি আনঅফিসিয়াল। gTTS-র সাথে গুগল বা গুগল ক্লাউডের কোনো আনুষ্ঠানিক সম্পর্ক নেই, এবং ব্যাকএন্ড পরিবর্তিত হলে হঠাৎ কাজ বন্ধ হয়ে যেতে পারে।
ইনস্টলেশন
bash
pip install gTTS
gTTS-র জন্য Python 3.7 বা নতুন ভার্সন লাগবে। এটি macOS, Windows ও Linux-এ চলে। বর্তমান PyPI ভার্সন 2.5.4 (নভেম্বর ২০২৪)। ডেবিয়ান সিস্টেমে, প্যাকেজের নাম pip-এ গ্লোবাল gTTS ও apt-এ python3-gtts — নামের অক্ষরের ছোট-বড় লক্ষ্য করুন। নতুন ওএস-এ pip install করলে externally-managed-environment এরর এলে ভার্চুয়াল এনভাইরনমেন্টে ইনস্টল করুন।
মৌলিক ব্যবহার
ন্যূনতম উদাহরণ:
python
from gtts import gTTS
tts = gTTS("Hello, world.")tts.save("hello.mp3")
কমান্ড লাইনে:
bash
gtts-cli "hello" --output hello.mp3
ভাষা ও উচ্চারণ নির্বাচন
python
tts = gTTS("Bonjour le monde", lang="fr")tts.save("bonjour.mp3")
gTTS-এ tld প্যারামিটারের মাধ্যমে আঞ্চলিক উপ-ট্যাগও ব্যবহার করা যায় — যেমন
tld="co.uk" দিলে ব্রিটিশ ইংরেজি উচ্চারণ, আর tld="ca" দিলে কানাডিয়ান ফরাসি — গুগল ট্রান্সলেটের ভিন্ন টপ-লেভেল ডোমেইনের মাধ্যমে রিকোয়েস্ট যায়।
স্লো মোড
python
tts = gTTS("Read this slowly.", lang="en", slow=True)tts.save("slow.mp3")
এটাই মূলত স্পিচ কন্ট্রোলের প্রায় সবকিছু। কোনো pitch প্যারামিটার নেই, slow=True ছাড়া rate বাড়ানো/কমানোর অপশন নেই, একাধিক ভয়েস নেই, SSML নেই।
ডিস্কে না লিখে বাফারে স্ট্রিম করুন
python
from io import BytesIOfrom gtts import gTTS
buf = BytesIO()gTTS("Stream me").write_to_fp(buf)buf.seek(0)# now feed buf into pydub, ffmpeg, a web response, etc.
প্রি-প্রসেসিং ও বড় টেক্সট
gTTS-এর অন্যতম শক্তিশালী ফিচার হল টোকেনাইজার। এটি যেকোনো বড় ইনপুটকে এমনভাবে ভাঙ্গে যা ব্যাকএন্ড গ্রহণ করবে (প্রতি রিকোয়েস্টে প্রায় ১০০ অক্ষর সীমা), চাঙ্কের মধ্যেও টোন বজায় রাখে এবং সংক্ষিপ্ত শব্দ, সংখ্যা, ইত্যাদি ঠিকভাবে পড়ে। পুনরাবৃত্ত উচ্চারণ সমস্যা সমাধানে কাস্টম প্রি-প্রসেসরও ব্যবহার করা যায়—যেমন, প্রোডাক্ট নাম বা সংক্ষিপ্তরূপের জন্য ফনেটিক বানান ম্যাপিং।
gTTS-এর সুবিধা কী?
gTTS (Google Text-to-Speech) ডেভেলপারদের মধ্যে জনপ্রিয় কারণ এটি হালকা, ব্যবহার ও ইন্টিগ্রেশন সহজ। MP3 ফাইল তৈরি করে আউটপুট ফাইল, ফাইল-লাইক অবজেক্ট বা stdout-এ পাঠানো যায়, স্ক্রিপ্টিং ও অটোমেশনে সুবিধা হয়। প্রায় ৬০টি ভাষা ও বিভিন্ন উপভাষা সাপোর্ট করে, tld অপশনে আঞ্চলিক ভ্যারিয়েন্টও বেছে নেওয়া যায়, তাই বহুভাষিক প্রকল্পে ভালো মানায়। কমান্ড-লাইন ইন্টারফেস (gtts-cli) শেল স্ক্রিপ্টে সরাসরি চলে; সংখ্যা, সংক্ষিপ্তরূপের জন্য কাস্টম টোকেনাইজার ও প্রি-প্রসেসর যোগ করা যায়। সোজা API থাকার জন্য Jupyter, Flask, Discord বটের মতো প্রকল্পে খুব কম ঝামেলায় ভয়েস যোগ করা যায়।
gTTS-এর অসুবিধা কী?
সহজ হলেও gTTS আধুনিক এআই ভয়েস প্ল্যাটফর্মের তুলনায় কিছু সীমাবদ্ধতায় ভুগছে। এখানে ভয়েস standard Google Translate-এর স্পিচ-ভিত্তিক, তাই স্বাভাবিকতা, আবেগ বা মানবীয় স্পর্শ কম, আধুনিক টেক্সট-টু-স্পিচ এর মতো নয়। এক ভাষায় একটাই ভয়েস, SSML, pitch, কিংবা স্পষ্ট rate নিয়ন্ত্রণ নেই। শোনানোর আগে পুরো MP3 ডাউনলোড করতে হয়, লাইভ স্ট্রিমিং সাপোর্ট করে না, তাই ইন্টারঅ্যাকটিভ অ্যাপে লেটেন্সি বাড়ে। এসবের পাশাপাশি ইন্টারনেট সংযোগ না থাকলে চলবে না, রিয়েল-টাইম বা অফলাইন পরিবেশে ব্যবহার উপযোগী নয়।
ডেভেলপারদের জন্য gTTS-এর সীমাবদ্ধতা কী?
১. অপ্রকাশিত এন্ডপয়েন্টে রেট-লিমিট
"hello world" ছাড়িয়ে গেলেই এটাই বড় ফাঁদ। gTTS কোনো ইউজ কোটা জানায় না, যেমন গুগলেও জানায় না। ব্যবহারিকভাবে, একটি আইপি দিয়ে প্রতি ঘণ্টায় কয়েক হাজার ক্যারেক্টার পাঠানো যায়, তারপর Google HTTP 429 দিতে শুরু করবে; এর নির্ভরতা ট্রাফিকের ওপর। এক সার্ভার থেকে একাধিক ইউজারের অডিও এলে এ সীমায় পৌঁছাতেই হবে এবং কোনো SLA বা আপিলের পথ নেই।
২. এন্ডপয়েন্ট হঠাৎ বদলাতে পারে
gTTS কোনো অফিসিয়াল API নয়, Google Translate-এর ইন্টার্নাল রুট ব্যবহার করে, তাই Google রিকোয়েস্ট কাঠামো বা রেসপন্স বদলালে হঠাৎই gTTS কাজ করা বন্ধ করে দিতে পারে। মেইন্টেইনার ফিক্স দেয়, আপনি
pip install -U gTTS চালালেই আবার চলবে। শখের স্ক্রিপ্টের জন্য এটা মেনে নেওয়া যায়। প্রোডাকশন সিস্টেমে মাঝরাতে এ ভরসার উপর থাকা নিরাপদ নয়।
৩. রক্ষণাবেক্ষণের গতি
প্রজেক্টটি এখনও রিলিজ দেয় (গত ১২ মাসে অন্তত ১ বার), তবে ইস্যু সলভ ধীর, মূলত এক ব্যক্তির দায়িত্ব। কিছু হেলথ ট্র্যাকার এটিকে "নিষ্ক্রিয়" ট্যাগ করেছে। ফ্রি লাইব্রেরির জন্য সাধারণ হলেও, বাণিজ্যিক পণ্যের জন্য এটি গুরুত্বপূর্ণ রিস্ক।
৪. বাণিজ্যিকতা ও টার্মস-of-সার্ভিস দ্ব্যর্থতা
কারণ gTTS, Google Cloud TTS-এর বদলে Google Translate-এর ফ্রন্টএন্ড ব্যবহার করে, এজন্য পাওয়া অডিওর বাণিজ্যিক লাইসেন্স স্পষ্ট নয়। লাইব্রেরিটি MIT লাইসেন্সে দিলেও অডিও Google-এর সেই সেবার নিয়মে পড়ে, যেটা TTS API হিসেবে ঘোষিত নয়। আইনের পরিষ্কার উত্তর চাইলে, gTTS তা দিয়ে উঠতে পারে না।
৫. সেনসিটিভ ডেটা আপনার মেশিন ছাড়িয়ে যায়
প্রতি স্ট্রিং গুগলের সার্ভারে যায়। যদি আপনি অভ্যন্তরীণ ডকুমেন্ট, কাস্টমার তথ্য, বা Google Docs থেকে নেওয়া কনটেন্ট ভয়েস করেন—ডেটা গভার্নেন্স আগে ভেবে নিন।
gTTS বনাম Google Cloud Text-to-Speech: পার্থক্য কী?
অনেক সময় gTTS ও Google Cloud Text-to-Speech গুলিয়ে ফেলা হলেও, এগুলো এক জিনিস নয়। মূল পার্থক্যগুলো হলঃ
আপনার প্রোডাকশনে Google ভয়েস লাগলে, প্রায় নিশ্চিতভাবেই gTTS নয়, Google Cloud TTS-ই আপনার দরকার।
প্রফেশনাল TTS API-তে কবে আপগ্রেড করবেন?
gTTS থেকে প্রফেশনাল টেক্সট-টু-স্পিচ API-তে যাওয়ার সঠিক সময় নির্ভর করে আপনার প্রকল্পে অডিও কোয়ালিটি, নির্ভরযোগ্যতা ও কাস্টোমাইজেশনের গুরুত্বের উপর। প্রোটোটাইপ, ব্যক্তিগত অ্যাক্সেসিবিলিটি টুল, শিক্ষামূলক কাজ, হালকা পরীক্ষার জন্য gTTS ভালো; কারণ ফ্রি, সহজ ও ইমপ্লিমেন্ট করা যায়। তবে ব্যবহারকারী পণ্যে, স্পিচের মান দিয়ে ইউজার এক্সপেরিয়েন্স নির্ধারক হলে বা নির্দিষ্ট latency ও SLA লাগলে প্রফেশনাল সমাধান দরকার। একাধিক ভয়েস, ভয়েস ক্লোনিং, SSML সাপোর্ট, স্ট্রিমিং, উচ্চারণ নিয়ন্ত্রণ, বা স্পষ্ট লাইসেন্স দরকার হলে আপগ্রেড করাই বুদ্ধিমানের। যখন এক্সপেরিমেন্টেশন থেকে প্রোডাকশনে যাবেন, তখন এগুলো অপরিহার্য হয়ে ওঠে।
gTTS নাকি Speechify API—কোনটা নেবেন?
Speechify-এর টেক্সট-টু-স্পিচ API হলো অফিসিয়াল, পেইড সার্ভিস; নিউরাল ভয়েস, প্রতিভাষায় একাধিক ভয়েস, SSML সাপোর্ট ও বাণিজ্যিক লাইসেন্স চুক্তির অংশ—এটি অপ্রকাশিত এন্ডপয়েন্টের র্যাপার নয়। যদি gTTS-র রেট-লিমিট, ভয়েস, বা TOS সমস্যা তৈরি করে, এটিকে বিকল্প হিসেবে ভাবুন।
FAQ
gTTS ফ্রি?
হ্যাঁ, gTTS ফ্রি ও MIT লাইসেন্সকৃত Python লাইব্রেরি, তবে বাণিজ্যিক লাইসেন্স চাইলে Speechify API দরকার হবে।
gTTS অফলাইনে চলে?
না, gTTS-র জন্য ইন্টারনেট দরকার কারণ এটি গুগলের সার্ভার ডাকে, আর Speechify API-র ক্ষেত্রেও তাই—এটি ক্লাউড সার্ভিস।
gTTS কি বাণিজ্যিক পণ্যে ব্যবহার করা যাবে?
gTTS দিয়ে তৈরি অডিওর লাইসেন্স অস্পষ্ট, কারণ এটি অপ্রকাশিত Google এন্ডপয়েন্টে নির্ভরশীল; Speechify API স্পষ্ট বাণিজ্যিক লাইসেন্স দেয়।
gTTS-এ ভয়েস কীভাবে পরিবর্তন করবেন?
পারবেন না। gTTS-এ প্রতিভাষায় একটাই ভয়েস, কিন্তু Speechify API-তে অনেক নিউরাল ভয়েস আছে।
gTTS কি SSML সাপোর্ট করে?
না, gTTS এ SSML সাপোর্ট, pitch, সূক্ষ্ম rate নিয়ন্ত্রণ নেই; কিন্তু Speechify API SSML পুরোপুরি সাপোর্ট করে।
gTTS কেন HTTP 429 দেয়?
আপনি Google Translate-এর অপ্রকাশিত রেট-লিমিটে পৌঁছে গেছেন, যা ডেভেলপারদের Speechify API-র মতো SLA সমৃদ্ধ সার্ভিসে যাওয়ার বড় কারণ।
gTTS কি Google Cloud Text-to-Speech?
না, gTTS অপ্রকাশিত Google Translate এন্ডপয়েন্ট ব্যবহার করে, Google Cloud TTS আলাদা পেইড প্রোডাক্ট; Speechify API আরেকটি নিউরাল ভয়েসের পেইড বিকল্প।
প্রোডাকশনের জন্য সেরা Python TTS?
gTTS প্রোটোটাইপের জন্য ঠিক আছে; অধিকাংশ ডেভেলপার প্রোডাকশনে Speechify API-এর মতো পেইড API-ই পছন্দ করে।
gTTS কি ভয়েস ক্লোন করতে পারে?
না, ভয়েস ক্লোনিং gTTS-এ নেই, তবে Speechify API-তে আছে।
gTTS দিয়ে অডিও স্ট্রিম করবেন কীভাবে?
gTTS রিয়েল-টাইম স্ট্রিমিং পারে না, সম্পূর্ণ MP3 ফেরত দেয়; তাই কম-লেটেন্সি স্ট্রিমিং চাইলে Speechify API ব্যবহার করুন।

