पायथन में वॉयस एजेंट कैसे बनाएं: 2026 के लिए चरण-दर-चरण मार्गदर्शिका

एक काले बैकग्राउंड पर लगे हुए चमकते क्यूब्स के पास एक धुंधली परछाई, जो कदम-दर-कदम वॉयस एजेंट बनाने का प्रतीक है।

जानें कि स्क्रैच से पायथन (Python) में वॉयस एजेंट कैसे बनाया जाता है। यह व्यापक 2026 गाइड सेटअप, स्पीच रिकग्निशन, टीटीएस (TTS), और कमांड प्रोसेसिंग को कवर करती है।

वॉयस एजेंट्स अब केवल एक नई चीज़ नहीं रह गए हैं, बल्कि आधुनिक डिजिटल इंटरेक्शन का एक मूलभूत हिस्सा बन चुके हैं। स्मार्ट होम हब से लेकर जटिल कस्टमर सर्विस प्लेटफॉर्म तक, परिष्कृत वॉयस एआई को बनाना और तैनात करना डेवलपर्स के लिए एक महत्वपूर्ण कौशल है। इस बाजार का तेजी से विस्तार होना तय है, जिसके 2024 में $14.8 बिलियन से बढ़कर 2033 तक $61 बिलियन से अधिक होने का अनुमान है (AssemblyAI, 2026)। पहले से ही 8.4 बिलियन से अधिक सक्रिय वॉयस असिस्टेंट उपयोग में हैं - जो वैश्विक आबादी से भी अधिक हैं (SeoProfy, 2025) - ऐसे में यह अवसर निर्विवाद है।

यह गाइड उन पायथन डेवलपर्स के लिए है जो बिल्कुल शुरुआत से एक वॉयस एजेंट बनाने के लिए तैयार हैं। चाहे आप पर्सनल असिस्टेंट बनाने वाले शौकिया डेवलपर हों या किसी एप्लीकेशन में वॉयस को एकीकृत करने वाले प्रोफेशनल, यह ट्यूटोरियल एक स्पष्ट और व्यावहारिक मार्ग प्रदान करता है। हम पूरे वर्कफ़्लो को कवर करेंगे: अपना एनवायरमेंट सेट करना, आवाज़ को कैप्चर करना और समझना, कमांड को प्रोसेस करना, और बोलकर उत्तर देना। अंत तक, आपके पास एक काम करने वाला एजेंट होगा जिसे आप कस्टमाइज़ कर सकते हैं। हम व्यापक रूप से उपलब्ध पायथन लाइब्रेरीज़ का उपयोग करेंगे, ताकि आपके मुख्य कौशल मजबूत हो सकें, इससे पहले कि आप रियल-टाइम पर्सनलाइज़ेशन और इमोशन डिटेक्शन जैसी भविष्य की सुविधाओं को शामिल करने वाले अधिक उन्नत सिस्टम्स पर काम करें (CallBotics, 2026)।

आवश्यक शर्तें (Prerequisites): आपको क्या चाहिए होगा

निर्माण शुरू करने से पहले, आइए सुनिश्चित करें कि आपके पास सही टूल्स हैं। इस ट्यूटोरियल के लिए पायथन प्रोग्रामिंग की बुनियादी समझ होना आवश्यक है, लेकिन इसके लिए आपका मशीन लर्निंग एक्सपर्ट होना ज़रूरी नहीं है। उदाहरणों में स्टैंडर्ड लाइब्रेरीज़ का उपयोग किया गया है और इन्हें स्पष्टता के लिए लिखा गया है।

यहाँ आवश्यक चीज़ों की एक चेकलिस्ट दी गई है:

  • पायथन 3.8 या नया संस्करण: सुनिश्चित करें कि पायथन का नवीनतम संस्करण इंस्टॉल है। आप इसे आधिकारिक पायथन वेबसाइट से प्राप्त कर सकते हैं। हम `pip` का उपयोग करेंगे, जो पैकेज इंस्टॉलर है और आधुनिक पायथन इंस्टॉलेशन के साथ ही आता है।

  • एक कोड एडिटर या IDE: हालांकि कोई भी टेक्स्ट एडिटर काम कर सकता है, लेकिन Visual Studio Code या PyCharm जैसी इंटीग्रेटेड डेवलपमेंट एनवायरमेंट (IDE) सिंटैक्स हाइलाइटिंग और डिबगिंग के साथ एक बहुत ही सहज अनुभव प्रदान करेगी।

  • एक माइक्रोफ़ोन: वॉयस कमांड कैप्चर करने के लिए यह बहुत ज़रूरी है। शुरुआती परीक्षणों के लिए आपके लैपटॉप का इन-बिल्ट माइक ठीक है, लेकिन बाहरी माइक बेहतर सटीकता प्रदान करेगा।

  • बुनियादी कमांड लाइन कौशल: आपको पैकेज इंस्टॉल करने और स्क्रिप्ट चलाने के लिए टर्मिनल खोलने, डायरेक्टरीज़ में नेविगेट करने और कमांड चलाने में सहज होना चाहिए।

  • इंटरनेट कनेक्शन: जिन स्पीच रिकग्निशन सर्विसेज़ का हम उपयोग करेंगे, उनमें से कई को काम करने के लिए इंटरनेट कनेक्शन की आवश्यकता होती है।

आपको स्पीच रिकग्निशन या टेक्स्ट-टू-स्पीच APIs का कोई पूर्व अनुभव होने की आवश्यकता नहीं है। हम सभी आवश्यक कॉन्सेप्ट्स और लाइब्रेरी के उपयोग को बिल्कुल शुरुआत से कवर करेंगे।

चरण 1: अपना पायथन एनवायरमेंट सेट करना

एक साफ़-सुथरा डेवलपमेंट एनवायरमेंट किसी भी मजबूत प्रोजेक्ट की नींव होता है। हम एक समर्पित प्रोजेक्ट फ़ोल्डर और एक वर्चुअल एनवायरमेंट बनाकर शुरुआत करेंगे। एक वर्चुअल एनवायरमेंट एक आत्मनिर्भर डायरेक्टरी होती है जिसमें एक विशिष्ट पायथन इंटरप्रेटर और उसके अपने पैकेजेस होते हैं, जो आपके विभिन्न प्रोजेक्ट्स के बीच टकराव को रोकते हैं।

सबसे पहले, अपना टर्मिनल या कमांड प्रॉम्प्ट खोलें, अपने प्रोजेक्ट के लिए एक नई डायरेक्टरी बनाएं, और उसमें जाएं।

BASH

mkdir python_voice_agent
cd python_voice_agent
mkdir python_voice_agent
cd python_voice_agent
mkdir python_voice_agent
cd python_voice_agent

अब, इस फ़ोल्डर के अंदर एक वर्चुअल एनवायरमेंट बनाएं। ऑपरेटिंग सिस्टम के आधार पर कमांड थोड़ा भिन्न हो सकता है।

macOS और Linux पर:

BASH

python3 -m venv venv
python3 -m venv venv
python3 -m venv venv

Windows पर:

BASH

python -m venv venv
python -m venv venv
python -m venv venv

यह कमांड `venv` नाम का एक नया फ़ोल्डर बनाता है। इसका उपयोग शुरू करने के लिए, आपको इसे सक्रिय (activate) करना होगा।

macOS और Linux पर:

BASH

source venv/bin/activate
source venv/bin/activate
source venv/bin/activate

Windows पर:

BASH

.\venv
.\venv
.\venv

एक बार सक्रिय होने के बाद, आपके टर्मिनल प्रॉम्प्ट की शुरुआत में `(venv)` दिखाई देना चाहिए, जो यह दर्शाता है कि आपके द्वारा इंस्टॉल किए जाने वाले कोई भी पायथन पैकेज इस एनवायरमेंट तक ही सीमित रहेंगे।

मुख्य लाइब्रेरीज़ को इंस्टॉल करना

एनवायरमेंट के सक्रिय होने के साथ, हम उन पायथन लाइब्रेरीज़ को इंस्टॉल कर सकते हैं जो मुख्य काम करेंगी। हम ऑडियो को टेक्स्ट में बदलने के लिए `SpeechRecognition` और ऑफ़लाइन टेक्स्ट-टू-स्पीच कन्वर्ज़न के लिए `pyttsx3` का उपयोग करेंगे (Analytics Vidhya, 2025)। हमें माइक्रोफ़ोन इनपुट को संभालने के लिए `PyAudio` की भी आवश्यकता होगी।

अपने सक्रिय टर्मिनल में ये कमांड चलाएँ:

BASH

pip install SpeechRecognition
pip install pyttsx3
pip install PyAudio
pip install SpeechRecognition
pip install pyttsx3
pip install PyAudio
pip install SpeechRecognition
pip install pyttsx3
pip install PyAudio

चरण 2: स्पीच रिकग्निशन के लिए लिसनर बनाना

हमारे एजेंट का पहला सक्रिय घटक उसके 'कान' हैं। यह लिसनर मॉड्यूल माइक्रोफ़ोन से ऑडियो कैप्चर करने और उसे टेक्स्ट में ट्रांसक्राइब करने के लिए ज़िम्मेदार है। हम `SpeechRecognition` लाइब्रेरी का उपयोग करेंगे, जो चतुराई से कई अलग-अलग स्पीच रिकग्निशन इंजन को रैप करती है। इस बिल्ड के लिए, हम Google के Web Speech API से शुरुआत करेंगे—यह मुफ़्त, आसान और टेस्टिंग के लिए बेहतरीन है, लेकिन इसके लिए इंटरनेट कनेक्शन की आवश्यकता होती है।

`listener.py` नाम से एक नई फ़ाइल बनाएं और निम्नलिखित कोड जोड़ें:

PYTHON

import speech_recognition as sr
<p>def listen_for_command():<br>"""Listens for a command from the user and returns it as text."""<br>r = sr.Recognizer()</p>
<pre><code>

import speech_recognition as sr
<p>def listen_for_command():<br>"""Listens for a command from the user and returns it as text."""<br>r = sr.Recognizer()</p>
<pre><code>

import speech_recognition as sr
<p>def listen_for_command():<br>"""Listens for a command from the user and returns it as text."""<br>r = sr.Recognizer()</p>
<pre><code>

लिसनर कोड को समझना

आइए देखें कि यह स्क्रिप्ट क्या करती है। लाइब्रेरी को sr के रूप में इम्पोर्ट करने के बाद, listen_for_command फ़ंक्शन एक Recognizer ऑब्जेक्ट को इनिशियलाइज़ करता है, जो लाइब्रेरी की कार्यक्षमता का मुख्य हिस्सा है।

मुख्य ऑपरेशन्स इस प्रकार हैं:

  • with sr.Microphone() as source: डिफ़ॉल्ट माइक्रोफ़ोन को खोलता है और यह सुनिश्चित करता है कि उपयोग के बाद इसे ठीक से रिलीज़ कर दिया जाए।

  • सटीकता के लिए r.adjust_for_ambient_noise(...) एक महत्वपूर्ण कदम है। यह रिकग्नाइज़र को आस-पास के शोर के स्तर के अनुकूल कैलिब्रेट करने के लिए एक सेकंड तक सुनता है, जिससे इसे बैकग्राउंड के शोर से आवाज़ को अलग करने में मदद मिलती।

  • audio = r.listen(source) माइक्रोफ़ोन से ऑडियो तब तक कैप्चर करता है जब तक कि उसे आवाज़ में कोई ठहराव (पॉज़) न मिले।

  • command = r.recognize_google(...) कैप्चर किए गए ऑडियो को ट्रांसक्रिप्शन के लिए Google के API पर भेजता है। इसका परिणाम एक स्ट्रिंग होता है।

  • try...except ब्लॉक त्रुटियों को सहजता से संभालता है, जैसे कि जब API ऑडियो को समझ नहीं पाता (UnknownValueError) या जब कोई नेटवर्क समस्या होती है (RequestError), जिससे प्रोग्राम क्रैश होने से बच जाता है।

आप अपने टर्मिनल में python listener.py चलाकर सीधे इस फ़ाइल का परीक्षण कर सकते हैं। पूछे जाने पर, अपने माइक्रोफ़ोन में स्पष्ट रूप से बोलें, और आपका ट्रांसक्राइब किया हुआ भाषण दिखाई देना चाहिए। लाइब्रेरी की क्षमताओं के बारे में अधिक जानकारी के लिए, आधिकारिक SpeechRecognition Library Documentation एक उत्कृष्ट संसाधन है, और यह किसी भी Python speech recognition guide के लिए एक अनिवार्य टूल है।

चरण 3: टेक्स्ट-टू-स्पीच (TTS) के लिए स्पीकर बनाना

अब जबकि हमारा एजेंट सुन सकता है, तो इसे आवाज़ देने का समय आ गया है। स्पीकर मॉड्यूल टेक्स्ट की एक स्ट्रिंग लेगा और pyttsx3 लाइब्रेरी का उपयोग करके इसे बोली जाने वाली आवाज़ में बदल देगा। pyttsx3 का मुख्य लाभ यह है कि यह आपके ऑपरेटिंग सिस्टम में निर्मित TTS इंजन (जैसे विंडोज़ पर SAPI5 या macOS पर NSSpeechSynthesizer) का उपयोग करके पूरी तरह से ऑफ़लाइन काम करता है। यह इसे तेज़ और विश्वसनीय बनाता है, जिसमें किसी API की या इंटरनेट निर्भरता की आवश्यकता नहीं होती।

speaker.py नाम से एक नई फ़ाइल बनाएं और यह कोड जोड़ें:

PYTHON

import pyttsx3<p></p><br><p>engine = pyttsx3.init()</p><br><p>def configure_voice():<br>"""Configures the properties of the TTS voice."""<br>voices = engine.getProperty("voices")<br># You can change the index to select a different voice<br>engine.setProperty("voice", voices[0].id)</p><br><pre><code>rate = engine.getProperty("rate")<br>engine.setProperty("rate", 150)  # Speed of speech<br></code></pre><br><p>def speak(text):<br>"""Converts text to speech."""<br>engine.say(text)<br>engine.runAndWait()</p>
import pyttsx3<p></p><br><p>engine = pyttsx3.init()</p><br><p>def configure_voice():<br>"""Configures the properties of the TTS voice."""<br>voices = engine.getProperty("voices")<br># You can change the index to select a different voice<br>engine.setProperty("voice", voices[0].id)</p><br><pre><code>rate = engine.getProperty("rate")<br>engine.setProperty("rate", 150)  # Speed of speech<br></code></pre><br><p>def speak(text):<br>"""Converts text to speech."""<br>engine.say(text)<br>engine.runAndWait()</p>
import pyttsx3<p></p><br><p>engine = pyttsx3.init()</p><br><p>def configure_voice():<br>"""Configures the properties of the TTS voice."""<br>voices = engine.getProperty("voices")<br># You can change the index to select a different voice<br>engine.setProperty("voice", voices[0].id)</p><br><pre><code>rate = engine.getProperty("rate")<br>engine.setProperty("rate", 150)  # Speed of speech<br></code></pre><br><p>def speak(text):<br>"""Converts text to speech."""<br>engine.say(text)<br>engine.runAndWait()</p>

स्पीकर कोड को समझना

यह स्क्रिप्ट काफी सीधी है। हम pyttsx3 इंजन को इनिशियलाइज़ करते हैं, और configure_voice फ़ंक्शन कस्टमाइज़ेशन की अनुमति देता है। आप अपने सिस्टम पर उपलब्ध आवाज़ों की सूची प्राप्त कर सकते हैं और बोलने की गति (speaking rate) जैसे गुणों को समायोजित कर सकते हैं। मुख्य कार्यक्षमता speak फ़ंक्शन में है:

  • engine.say(text) उस टेक्स्ट को कतार (queue) में रखता है जिसे आप इंजन से बुलवाना चाहते हैं।

  • engine.runAndWait() कतार को प्रोसेस करता है। यह एक ब्लॉकिंग कॉल है, जिसका अर्थ है कि जब तक बोलना समाप्त नहीं हो जाता, आपका प्रोग्राम रुक जाएगा, जो कि बातचीत करने वाले एजेंट के लिए बिल्कुल सही है।

परीक्षण वाक्यांशों को सुनने के लिए python speaker.py चलाएं। अपनी पसंद की सेटिंग खोजने के लिए वॉयस इंडेक्स को बदलने या रेट को समायोजित करने का प्रयास करें। हालांकि ऑफ़लाइन प्रोजेक्ट्स के लिए pyttsx3 बेहतरीन है, लेकिन प्रोडक्शन सिस्टम अक्सर उच्च गुणवत्ता वाली आवाज़ों के लिए क्लाउड-आधारित APIs का उपयोग करते हैं। इस प्रक्रिया में building realistic text-to-speech in Python शामिल है जिसमें व्यापक रेंज की आवाज़ें और भावनात्मक टोन की पेशकश करने वाली सेवाएं शामिल हैं। आप pyttsx3 Library Documentation में अधिक विवरण पा सकते हैं।

चरण 4: कोर लॉजिक और कमांड प्रोसेसिंग विकसित करना

यह हमारे वॉयस एजेंट का 'दिमाग' है। यह लिसनर से ट्रांसक्राइब किया हुआ टेक्स्ट प्राप्त करता है, उपयोगकर्ता के इरादे (intent) को निर्धारित करता है, और कार्रवाई का निर्णय लेता है। इस गाइड के लिए, हम बुनियादी स्ट्रिंग मैचिंग का उपयोग करके एक सरल कमांड-एंड-कंट्रोल संरचना लागू करेंगे। यद्यपि आधुनिक वॉयस एजेंट जटिल, बहु-चरणीय लेनदेन को संभाल सकते हैं (RingCentral, 2026), यह कीवर्ड-आधारित दृष्टिकोण शुरुआत करने के लिए एक शानदार तरीका है।

कमांड-हैंडलिंग लॉजिक के लिए processor.py नाम से एक फ़ाइल बनाएं।

PYTHON

import datetime<br>import webbrowser<p></p><br><p>def process_command(command):<br>"""Processes the command and returns a response."""<br>response = ""</p><br><pre><code>if "hello" in command:<br>response = "Hello! How can I help you today?"<br>elif "time" in command:<br>now = datetime.datetime.now().strftime("%I:%M %p")<br>response = f"The current time is {now}."<br>elif "date" in command:<br>today = datetime.date.today().strftime("%B %d, %Y")<br>response = f"Today's date is {today}."<br>elif "open google" in command:<br>response = "Opening Google."<br>webbrowser.open("<a href="https://www.google.com" data-framer-link="Link:{"url":"https://www.google.com","type":"url"}">https://www.google.com</a>")<br>elif "search for" in command:<br># Example: "search for Python tutorials"<br>search_term = command.split("search for")[-1].strip()<br>url = f"<a href="https://www.google.com/search?q=%7Bsearch_term%7D" data-framer-link="Link:{"url":"https://www.google.com/search?q=%7Bsearch_term%7D","type":"url"}">https://www.google.com/search?q={search_term}</a>"<br>webbrowser.open(url)<br>response = f"Here are the search results for {search_term}."<br>elif "goodbye" in command or "exit" in command:<br>response = "Goodbye!"<br>else:<br>response = "I'm sorry, I don't know how to do that yet."<p></p>
import datetime<br>import webbrowser<p></p><br><p>def process_command(command):<br>"""Processes the command and returns a response."""<br>response = ""</p><br><pre><code>if "hello" in command:<br>response = "Hello! How can I help you today?"<br>elif "time" in command:<br>now = datetime.datetime.now().strftime("%I:%M %p")<br>response = f"The current time is {now}."<br>elif "date" in command:<br>today = datetime.date.today().strftime("%B %d, %Y")<br>response = f"Today's date is {today}."<br>elif "open google" in command:<br>response = "Opening Google."<br>webbrowser.open("<a href="https://www.google.com" data-framer-link="Link:{"url":"https://www.google.com","type":"url"}">https://www.google.com</a>")<br>elif "search for" in command:<br># Example: "search for Python tutorials"<br>search_term = command.split("search for")[-1].strip()<br>url = f"<a href="https://www.google.com/search?q=%7Bsearch_term%7D" data-framer-link="Link:{"url":"https://www.google.com/search?q=%7Bsearch_term%7D","type":"url"}">https://www.google.com/search?q={search_term}</a>"<br>webbrowser.open(url)<br>response = f"Here are the search results for {search_term}."<br>elif "goodbye" in command or "exit" in command:<br>response = "Goodbye!"<br>else:<br>response = "I'm sorry, I don't know how to do that yet."<p></p>
import datetime<br>import webbrowser<p></p><br><p>def process_command(command):<br>"""Processes the command and returns a response."""<br>response = ""</p><br><pre><code>if "hello" in command:<br>response = "Hello! How can I help you today?"<br>elif "time" in command:<br>now = datetime.datetime.now().strftime("%I:%M %p")<br>response = f"The current time is {now}."<br>elif "date" in command:<br>today = datetime.date.today().strftime("%B %d, %Y")<br>response = f"Today's date is {today}."<br>elif "open google" in command:<br>response = "Opening Google."<br>webbrowser.open("<a href="https://www.google.com" data-framer-link="Link:{"url":"https://www.google.com","type":"url"}">https://www.google.com</a>")<br>elif "search for" in command:<br># Example: "search for Python tutorials"<br>search_term = command.split("search for")[-1].strip()<br>url = f"<a href="https://www.google.com/search?q=%7Bsearch_term%7D" data-framer-link="Link:{"url":"https://www.google.com/search?q=%7Bsearch_term%7D","type":"url"}">https://www.google.com/search?q={search_term}</a>"<br>webbrowser.open(url)<br>response = f"Here are the search results for {search_term}."<br>elif "goodbye" in command or "exit" in command:<br>response = "Goodbye!"<br>else:<br>response = "I'm sorry, I don't know how to do that yet."<p></p>

यह फ़ंक्शन कीवर्ड की जांच करने के लिए if/elif/else स्टेटमेंट्स की एक श्रृंखला का उपयोग करता है। यदि कोई कीवर्ड मिल जाता है, तो यह एक क्रिया करता है, जैसे कि datetime मॉड्यूल के साथ समय प्राप्त करना या webbrowser मॉड्यूल के साथ एक वेब पेज खोलना। यदि कोई कीवर्ड मेल नहीं खाता है, तो यह एक डिफ़ॉल्ट फ़ॉलबैक प्रतिक्रिया देता है। यह संरचना एक बुनियादी एजेंट के लिए आश्चर्यजनक रूप से प्रभावी है और अपने एजेंट को नए कौशल सिखाने के लिए और अधिक elif ब्लॉक्स जोड़कर इसका विस्तार करना आसान है।

कमांड प्रोसेसिंग को स्केल करना

यद्यपि if/elif चेन्स कुछ कमांड्स के लिए काम करती हैं, लेकिन जैसे-जैसे आपके एजेंट की क्षमताएं बढ़ती हैं, ये जटिल हो जाती हैं। अधिक स्केलेबल आर्किटेक्चर के लिए, आप इस लॉजिक को एक डिक्शनरी या क्लास-आधारित सिस्टम में रिफैक्टर कर सकते हैं। वास्तव में उन्नत इरादे की पहचान (intent recognition) के लिए, डेवलपर्स नेचुरल लैंग्वेज अंडरस्टैंडिंग (NLU) मॉडल्स का उपयोग करते हैं। ये मॉडल वाक्यांशों में विविधताओं को समझ सकते हैं और अनुरोध से विशिष्ट एंटिटीज़ (जैसे नाम या तारीखें) निकाल सकते हैं, जिससे बहुत अधिक लचीली बातचीत संभव हो पाती है। आप विभिन्न भाषाओं में उपयोगकर्ताओं का समर्थन करने के लिए pre-trained multilingual models भी एक्सप्लोर कर सकते हैं।

चरण 5: मुख्य एप्लीकेशन में सब कुछ एकीकृत करना

हमने अलग-अलग घटकों का निर्माण कर लिया है: कान (listener.py), मुंह (speaker.py), और दिमाग (processor.py)। अब, आइए उन्हें एक सुसंगत एप्लीकेशन में जोड़ें। यह अंतिम स्क्रिप्ट एंट्री पॉइंट के रूप में काम करेगी, जो एक मुख्य लूप चलाएगी जो लगातार सुनता, प्रोसेस करता और जवाब देता है।

अपने प्रोजेक्ट डायरेक्टरी में एक अंतिम फ़ाइल, main.py बनाएं।

PYTHON

import listener<br>import speaker<br>import processor<p></p><br><p>def main():<br>"""Main function to run the voice agent."""<br>speaker.configure_voice()<br>speaker.speak("Hello, I am your voice assistant. How can I assist you?")</p><br><pre><code>while True:<br>command = listener.listen_for_command()<p></p>
<pre><code>if command:
    response = processor.process_command(command)
    speaker.speak(response)
<pre><code>if "goodbye" in command or "exit" in command:
    break
</code></pre>
import listener<br>import speaker<br>import processor<p></p><br><p>def main():<br>"""Main function to run the voice agent."""<br>speaker.configure_voice()<br>speaker.speak("Hello, I am your voice assistant. How can I assist you?")</p><br><pre><code>while True:<br>command = listener.listen_for_command()<p></p>
<pre><code>if command:
    response = processor.process_command(command)
    speaker.speak(response)
<pre><code>if "goodbye" in command or "exit" in command:
    break
</code></pre>
import listener<br>import speaker<br>import processor<p></p><br><p>def main():<br>"""Main function to run the voice agent."""<br>speaker.configure_voice()<br>speaker.speak("Hello, I am your voice assistant. How can I assist you?")</p><br><pre><code>while True:<br>command = listener.listen_for_command()<p></p>
<pre><code>if command:
    response = processor.process_command(command)
    speaker.speak(response)
<pre><code>if "goodbye" in command or "exit" in command:
    break
</code></pre>

यह स्क्रिप्ट हमारे ऑर्केस्ट्रा के कंडक्टर की तरह है। यह हमारे तीनों मॉड्यूल को इम्पोर्ट करती है और मुख्य लूप को चलाती है। while True लूप के अंदर, यह listener.listen_for_command() को कॉल करती है, परिणाम को processor.process_command() पर भेजती है, और प्राप्त प्रतिक्रिया को speaker.speak() पर भेजती है। हमने प्रोग्राम को सुचारू रूप से समाप्त करने के लिए 'goodbye' या 'exit' की जांच भी शामिल की है।

अपने पूरी तरह से काम करने वाले वॉयस एजेंट को चलाने के लिए, वर्चुअल एनवायरमेंट सक्रिय होने के साथ अपना टर्मिनल खोलें, और चलाएं:

BASH

python main.py
python main.py
python main.py

आपका एजेंट आपका स्वागत करेगा। इसे "what is the time?" या "open google" जैसे कमांड देने का प्रयास करें। बधाई हो, आपने पायथन में सफलतापूर्वक एक वॉयस एजेंट बना लिया है!

अपने वॉयस एजेंट के लिए सही API चुनना

SpeechRecognition लाइब्रेरी कई APIs का समर्थन करती है, और आपका चयन आपके एजेंट के प्रदर्शन, लागत और क्षमताओं को महत्वपूर्ण रूप से प्रभावित करेगा। हमारा उदाहरण Google Web Speech API का उपयोग करता है, जो त्वरित प्रोजेक्ट्स के लिए सुविधाजनक है लेकिन इसकी कुछ सीमाएं हैं।

API

API Key आवश्यक है

ऑफ़लाइन काम करता है

मुख्य उपयोग मामला (Use Case)

Google Web Speech API (recognize_google)

नहीं

नहीं

दैनिक उपयोग सीमाओं के साथ त्वरित परीक्षण और सरल एप्लीकेशन्स।

Google Cloud Speech API (recognize_google_cloud)

हाँ

नहीं

अधिक सुविधाओं के साथ प्रोडक्शन-ग्रेड, उच्च-सटीकता वाला ट्रांसक्रिप्शन।

CMU Sphinx (recognize_sphinx)

नहीं

हाँ

गोपनीयता-केंद्रित या बिना-इंटरनेट वाले एप्लीकेशन्स के लिए ऑफ़लाइन रिकग्निशन।

Whisper API (recognize_whisper)

हाँ (OpenAI के माध्यम से)

नहीं (API संस्करण)

विभिन्न ऑडियो प्रकारों के लिए उच्च-सटीकता वाला ट्रांसक्रिप्शन, अच्छा बहुभाषी समर्थन।

एक प्रोडक्शन एप्लीकेशन के लिए, आप संभवतः मुफ़्त Web Speech API से हटकर Google Cloud Speech, AWS Transcribe, या किसी विशेष प्रदाता जैसी अधिक शक्तिशाली सेवा पर जाना चाहेंगे। ये सेवाएं उच्च सटीकता, बेहतर शोर प्रबंधन और स्पीकर डायराइजेशन (speaker diarization) जैसी सुविधाएं प्रदान करती हैं। अपनी विशिष्ट आवश्यकताओं के लिए choosing the best speech-to-text API चुनते समय विकल्पों पर शोध करना और उनकी तुलना करना आपके समय के अनुकूल होगा।

सामान्य गलतियाँ और समस्या निवारण (Troubleshooting)

अपना पहला वॉयस एजेंट बनाना काफी संतोषजनक है, लेकिन आपको कुछ सामान्य समस्याओं का सामना करना पड़ सकता है। यहाँ कुछ सबसे लगातार आने वाली समस्याओं को हल करने का तरीका दिया गया है।

  • AttributeError: 'NoneType' object has no attribute 'lower': यह त्रुटि आमतौर पर main.py में तब होती है जब listen_for_command() कुछ भी वापस नहीं करता क्योंकि यह ऑडियो को समझने में विफल रहा। हमारा कोड एक खाली स्ट्रिंग लौटाकर इसे संभालता है, लेकिन हमेशा सुनिश्चित करें कि आपका मुख्य लूप प्रोसेसिंग से पहले जांचता है कि कमांड मान्य है या नहीं (उदा. if command:)।

  • खराब पहचान सटीकता (Poor Recognition Accuracy): यदि एजेंट आपको लगातार गलत समझता है, तो इसका कारण अक्सर ऑडियो गुणवत्ता होती है। बैकग्राउंड का शोर कम करें, सुनिश्चित करें कि आपका माइक्रोफ़ोन ठीक से स्थित है, और स्पष्ट रूप से बोलें। r.adjust_for_ambient_noise() फ़ंक्शन भी बहुत महत्वपूर्ण है; इसे कैलिब्रेट करने के लिए कुछ पल का मौन दें।

  • Could not request results... त्रुटि: यह RequestError लगभग हमेशा एक नेटवर्क समस्या का संकेत देती है। अपना इंटरनेट कनेक्शन जांचें। यह तब भी हो सकता है जब किसी API का मुफ़्त दैनिक उपयोग कोटा समाप्त हो गया हो।

  • TTS आवाज़ रोबोटिक लगती है: pyttsx3 की डिफ़ॉल्ट ऑफ़लाइन आवाज़ें काम तो करती हैं लेकिन बहुत स्वाभाविक नहीं लगती हैं। यह अंतर्निहित OS-स्तरीय TTS इंजनों की एक सीमा है। अधिक जीवंत आवाज़ प्राप्त करने के लिए, आपको क्लाउड-आधारित TTS API को एकीकृत करना होगा। इसके लिए कई Python packages for realistic text-to-speech आपकी मदद कर सकते हैं।

सारांश और अगले कदम

हमने कार्यों को प्रबंधनीय घटकों में विभाजित करके पायथन में सफलतापूर्वक एक कार्यात्मक वॉयस एजेंट बनाया है: एक लिसनर, एक स्पीकर, एक प्रोसेसर और एक मुख्य एप्लीकेशन लूप। अब आपके पास अधिक उन्नत और व्यक्तिगत वॉयस असिस्टेंट बनाने के लिए एक मजबूत आधार है।

वॉयस एआई में आपकी यात्रा अभी शुरू हुई है। आगे बढ़ने के लिए यहाँ कुछ विचार दिए गए हैं:

संभावित संवर्द्धन (Potential Enhancements):

  • कमांड सेट का विस्तार करें: अपने processor.py मॉड्यूल में अधिक कार्यक्षमता जोड़ें। आप मौसम की जानकारी लेने, समाचारों की सुर्खियां पढ़ने, या स्मार्ट होम डिवाइसेस को नियंत्रित करने के लिए अन्य APIs के साथ एकीकृत कर सकते हैं।

  • एक वेक वर्ड (Wake Word) लागू करें: सामान्य कमांड्स को प्रोसेस करना शुरू करने से पहले एक विशिष्ट वेक वर्ड (जैसे 'Hey, assistant') को लगातार सुनने के लिए लिसनर को संशोधित करें।

  • बेहतर TTS आवाज़ में अपग्रेड करें: एक एजेंट की आवाज़ का उपयोगकर्ता अनुभव पर बहुत बड़ा प्रभाव पड़ता है। अपने एजेंट को अधिक प्रोफेशनल आवाज़ देने के लिए क्लाउड-आधारित TTS सेवाओं को एक्सप्लोर करें। यह creating human-like AI voices बनाने की कुंजी है।

  • NLU को एकीकृत करें: नेचुरल लैंग्वेज अंडरस्टैंडिंग सेवा का उपयोग करके सरल कीवर्ड मैचिंग से आगे बढ़ें। यह आपके एजेंट को अधिक जटिल उपयोगकर्ता अनुरोधों को संभालने की अनुमति देगा, जिससे यह काफी अधिक बुद्धिमान बन जाएगा।

वॉयस एआई का क्षेत्र गतिशील और रोमांचक है। इस गाइड का अनुसरण करके, आपने एक महत्वपूर्ण पहला कदम उठाया है और अब आप इसकी विशाल संभावनाओं का पता लगाने के कौशल से लैस हैं।




अक्सर पूछे जाने वाले प्रश्न

क्या मैं इस वॉयस एजेंट को पूरी तरह से ऑफलाइन काम करवा सकता हूँ?

मैं एजेंट की आवाज़ कैसे बदल सकता हूँ?

क्या वॉयस एजेंट बनाने के लिए पायथन सबसे अच्छी भाषा है?

एक वॉइस एजेंट को चलाने में कितना खर्च आता है?

मैं अपने वॉइस एजेंट को विभिन्न भाषाओं को समझाने योग्य कैसे बना सकता हूँ?

लेख सुनें
2:00
लेख सुनें
2:00

एआई (AI) के साथ सारांशित करें

पायथन (Python) में वॉयस एजेंट बनाना शुरू करें

डेवलपर-रेडी वॉयस APIs का अन्वेषण करें

एआई (AI) के साथ सारांशित करें

पायथन (Python) में वॉयस एजेंट बनाना शुरू करें

डेवलपर-रेडी वॉयस APIs का अन्वेषण करें

वॉयस एजेंट ऑर्केस्ट्रेशन के भविष्य का निर्माण करें

311 कैलिफ़ोर्निया स्ट्रीट, सुइट 320
सैन फ्रांसिस्को, सीए 94104

वॉयस एजेंट ऑर्केस्ट्रेशन के भविष्य का निर्माण करें

311 कैलिफ़ोर्निया स्ट्रीट, सुइट 320
सैन फ्रांसिस्को, सीए 94104

वॉयस एजेंट ऑर्केस्ट्रेशन के भविष्य का निर्माण करें

311 कैलिफ़ोर्निया स्ट्रीट, सुइट 320
सैन फ्रांसिस्को, सीए 94104