⏱️ زمان مطالعه: ۴۵ دقیقه

🎙️ آموزش ساخت دستیار صوتی شخصی با OpenAI Whisper + GPT

✨ دستیار صوتی هوشمند خود را بسازید: تحولی در تعامل با تکنولوژی

تصور کنید دستیاری شخصی داشته باشید که نه تنها به تمام سوالات شما پاسخ می‌دهد، بلکه می‌تواند با صدای طبیعی با شما صحبت کند، یادداشت‌هایتان را بنویسد، ایمیل‌هایتان را بررسی کند و حتی خلاقانه داستان بسازد. این دیگر یک رویای علمی-تخیلی نیست! با پیشرفت‌های چشمگیر در حوزه هوش مصنوعی، به ویژه مدل‌های Whisper و GPT شرکت OpenAI، حالا هر کسی می‌تواند یک دستیار صوتی شخصی و هوشمند برای خودش بسازد.

در این مقاله جامع، قدم به قدم به شما آموزش می‌دهیم چگونه با استفاده از Whisper برای تشخیص گفتار و GPT برای تولید پاسخ‌های هوشمند، یک دستیار صوتی کامل بسازید که می‌تواند به زبان فارسی و انگلیسی با شما تعامل داشته باشد. این پروژه نه تنها یک ابزار کاربردی برای استفاده شخصی است، بلکه می‌تواند نقطه شروعی برای ساخت محصولات تجاری در حوزه هوش مصنوعی باشد.

فصل اول: چرا دستیار صوتی هوشمند؟ انقلابی در تعامل انسان و کامپیوتر

مفهوم دستیار صوتی هوشمند
تصویر ۱: دستیارهای صوتی هوشمند آینده تعامل انسان با کامپیوتر را متحول خواهند کرد

۱.۱ رشد explosive دستیارهای صوتی در جهان

بازار دستیارهای صوتی هوشمند در حال رشد تصاعدی است. بر اساس گزارش‌های اخیر، تا سال ۲۰۲۶ بیش از ۸.۴ میلیارد دستگاه با دستیار صوتی فعال در سراسر جهان وجود خواهد داشت. آمازون الکسا، گوگل اسیستنت و اپل سیری تنها چند نمونه از این فناوری هستند. اما مشکل اصلی این دستیارها چیست؟

۱.۲ آمارهای شگفت‌انگیز درباره دستیارهای صوتی

📈 رشد بازار

۳۰٪

نرخ رشد سالانه بازار دستیارهای صوتی

🎯 دقت تشخیص

۹۸.۵٪

دقت Whisper در تشخیص گفتار انگلیسی

🌍 زبان پشتیبانی

۱۰۰+

زبان زنده دنیا شامل فارسی

⚡ سرعت پاسخ

۱.۲s

میانگین زمان پاسخ دستیارهای مدرن

فصل دوم: معرفی تکنولوژی‌های مورد نیاز

قبل از شروع کدنویسی، بهتر است با تکنولوژی‌های اصلی که در این پروژه استفاده می‌کنیم آشنا شویم.

OpenAI Whisper: سیستم تشخیص گفتار پیشرفته

قدرتمندترین مدل تشخیص گفتار متن‌باز

🎯 دقت ۹۸٪

Whisper یک سیستم تشخیص گفتار است که توسط OpenAI توسعه داده شده و می‌تواند صوت را به متن تبدیل کند. این مدل از بیش از ۱۰۰ زبان از جمله فارسی پشتیبانی می‌کند و دقت بسیار بالایی دارد.

import whisper
model = whisper.load_model("base")
result = model.transcribe("persian_audio.wav", language="fa")
print(result["text"])

OpenAI GPT: مدل زبانی پیشرفته

مغز متفکر دستیار صوتی شما

🧠 قدرتمند

GPT (مخفف Generative Pre-trained Transformer) یک مدل زبانی قدرتمند است که می‌تواند متن‌های طبیعی و روان تولید کند. این مدل می‌تواند به سوالات پاسخ دهد، متن بنویسد، کد تولید کند و کارهای زبانی پیچیده دیگری انجام دهد.

import openai
response = openai.ChatCompletion.create(
    model="gpt-3.5-turbo",
    messages=[{"role": "user", "content": "سلام دستیار!"}]
)
print(response.choices[0].message.content)
تنظیمات API OpenAI
تصویر ۲: دریافت API Key از پلتفرم OpenAI - اولین قدم برای ساخت دستیار

فصل سوم: مقایسه Whisper با سایر سرویس‌های تشخیص گفتار

معیار مقایسهWhisper (OpenAI)Google Speech-to-TextAmazon TranscribeAzure Speech
قیمترایگان (محلی) / ۰.۰۰۶$ در دقیقه (API)۰.۰۰۶$ تا ۰.۰۲۴$ در دقیقه۰.۰۰۲۴$ تا ۰.۰۴۸$ در دقیقه۰.۰۰۶$ تا ۰.۰۳۶$ در دقیقه
پشتیبانی از فارسی✅ عالی✅ خوب✅ متوسط✅ خوب
اجرای محلی (Offline)✅ بله❌ خیر❌ خیر❌ خیر
مدل‌های متن‌باز✅ بله❌ خیر❌ خیر❌ خیر
دقت در محیط‌های نویزیعالیخوبمتوسطخوب

فصل چهارم: پیاده‌سازی گام به گام دستیار صوتی

مرحله ۱: نصب و راه‌اندازی محیط توسعه

قبل از شروع کدنویسی، باید محیط توسعه خود را آماده کنید. در این آموزش از پایتون استفاده می‌کنیم.

نصب کتابخانه‌های لازم

pip install openai
pip install speechrecognition
pip install pyaudio
pip install gtts
pip install pygame
pip install flask

دریافت API Key از OpenAI

برای استفاده از سرویس‌های OpenAI باید یک کلید API دریافت کنید:

مرحله ۲: ساخت ماژول تشخیص گفتار با Whisper

در این مرحله، ماژولی می‌سازیم که بتواند صوت را از میکروفون دریافت کرده و به متن تبدیل کند.

import speech_recognition as sr
import openai

openai.api_key = 'YOUR_API_KEY_HERE'

def record_audio():
    recognizer = sr.Recognizer()
    microphone = sr.Microphone()
    
    with microphone as source:
        print("🎤 در حال گوش دادن...")
        recognizer.adjust_for_ambient_noise(source)
        audio = recognizer.listen(source)
        
    try:
        print("🔄 در حال پردازش...")
        with open("audio.wav", "wb") as f:
            f.write(audio.get_wav_data())
            
        with open("audio.wav", "rb") as audio_file:
            transcript = openai.Audio.transcribe(
                "whisper-1", 
                audio_file,
                language="fa"
            )
            
        return transcript["text"]
    except Exception as e:
        print(f"❌ خطا در تشخیص گفتار: {e}")
        return None
💡 نکته مهم: برای بهبود دقت تشخیص گفتار فارسی، می‌توانید پارامتر language="fa" را حذف کنید تا Whisper به صورت خودکار زبان را تشخیص دهد. همچنین می‌توانید از مدل‌های بزرگتر مثل whisper-1 استفاده کنید که دقت بالاتری دارند اما هزینه بیشتری هم دارند.

مرحله ۳: ساخت ماژول تولید پاسخ با GPT

حالا ماژولی می‌سازیم که بتواند به سوالات کاربر پاسخ هوشمندانه بدهد.

import openai

def get_gpt_response(user_input, conversation_history=[]):
    conversation_history.append({"role": "user", "content": user_input})
    
    try:
        response = openai.ChatCompletion.create(
            model="gpt-3.5-turbo",
            messages=[
                {"role": "system", "content": "You are a helpful assistant that responds in the same language as the user."},
                *conversation_history
            ],
            max_tokens=500,
            temperature=0.7
        )
        
        assistant_response = response.choices[0].message.content
        conversation_history.append({"role": "assistant", "content": assistant_response})
        
        return assistant_response, conversation_history
        
    except Exception as e:
        print(f"❌ خطا در دریافت پاسخ از GPT: {e}")
        return "متأسفانه در پردازش درخواست شما مشکلی پیش آمده است.", conversation_history

مرحله ۴: ساخت ماژول تبدیل متن به گفتار

برای کامل کردن چرخه تعامل، باید پاسخ متنی GPT را به صوت تبدیل کنیم.

from gtts import gTTS
import pygame
import io

def text_to_speech(text, lang='fa'):
    try:
        tts = gTTS(text=text, lang=lang, slow=False)
        audio_bytes = io.BytesIO()
        tts.write_to_fp(audio_bytes)
        audio_bytes.seek(0)
        
        pygame.mixer.init()
        pygame.mixer.music.load(audio_bytes)
        pygame.mixer.music.play()
        
        while pygame.mixer.music.get_busy():
            pygame.time.Clock().tick(10)
            
    except Exception as e:
        print(f"❌ خطا در تبدیل متن به گفتار: {e}")

مرحله ۵: یکپارچه‌سازی و ساخت دستیار کامل

حالا تمام ماژول‌ها را با هم ترکیب می‌کنیم تا دستیار صوتی کامل ما ساخته شود.

from speech_to_text import record_audio
from text_to_response import get_gpt_response
from text_to_speech import text_to_speech

class VoiceAssistant:
    def __init__(self):
        self.conversation_history = []
        self.is_listening = False
        
    def start_listening(self):
        self.is_listening = True
        print("🎙️ دستیار صوتی فعال شد. برای خروج بگویید 'خداحافظ'")
        
        while self.is_listening:
            user_text = record_audio()
            
            if user_text:
                print(f"👤 شما: {user_text}")
                
                if "خداحافظ" in user_text.lower() or "خدا حافظ" in user_text.lower():
                    self.stop_listening()
                    break
                
                response, self.conversation_history = get_gpt_response(user_text, self.conversation_history)
                print(f"🤖 دستیار: {response}")
                text_to_speech(response)
                
    def stop_listening(self):
        self.is_listening = False
        print("👋 دستیار صوتی غیرفعال شد.")

if __name__ == "__main__":
    assistant = VoiceAssistant()
    assistant.start_listening()
🚀 شروع سریع: برای شروع، ابتدا نسخه پایه دستیار را اجرا کنید و سپس به تدریج قابلیت‌های جدید اضافه کنید. با پروژه کوچک شروع کنید و به مرور آن را گسترش دهید. مهمترین عامل موفقیت، تست مداوم و دریافت بازخورد از کاربران است.

فصل پنجم: شخصی‌سازی و بهبود دستیار

معماری دستیار صوتی
تصویر ۳: معماری کامل دستیار صوتی ساخته شده با Whisper و GPT

حالا که دستیار پایه ما کار می‌کند، می‌توانیم آن را بهبود بخشیده و شخصی‌سازی کنیم.

قابلیت‌های پیشرفته برای افزودن

کد نمونه: کنترل دستگاه‌های خانگی

افزودن قابلیت خانه هوشمند به دستیار

🏠 خانه هوشمند
def handle_smart_home_commands(command):
    command = command.lower()
    
    if "چراغ" in command and "روشن" in command:
        # کد برای روشن کردن چراغ از طریق API
        return "✅ چراغ روشن شد"
    elif "چراغ" in command and "خاموش" in command:
        # کد برای خاموش کردن چراغ
        return "✅ چراغ خاموش شد"
    elif "دما" in command:
        # کد برای خواندن دمای محیط
        return "🌡️ دمای اتاق ۲۲ درجه سانتیگراد است"
    else:
        return None

def enhanced_get_response(user_input, conversation_history):
    smart_home_response = handle_smart_home_commands(user_input)
    
    if smart_home_response:
        return smart_home_response, conversation_history
    else:
        return get_gpt_response(user_input, conversation_history)

فصل ششم: ساخت رابط کاربری وب

برای دسترسی راحت‌تر به دستیار، می‌توانید یک رابط کاربری وب برای آن بسازید.

رابط کاربری وب دستیار صوتی
تصویر ۴: رابط کاربری وب برای دستیار صوتی ساخته شده با Flask
from flask import Flask, render_template, request, jsonify
from voice_assistant import VoiceAssistant
import threading

app = Flask(__name__)
assistant = VoiceAssistant()

@app.route('/')
def index():
    return render_template('index.html')

@app.route('/start_listening', methods=['POST'])
def start_listening():
    thread = threading.Thread(target=assistant.start_listening)
    thread.daemon = True
    thread.start()
    return jsonify({"status": "started"})

@app.route('/stop_listening', methods=['POST'])
def stop_listening():
    assistant.stop_listening()
    return jsonify({"status": "stopped"})

if __name__ == '__main__':
    app.run(debug=True)

فصل هفتم: نکات عیب‌یابی و رفع مشکلات رایج

🔧 مشکلات رایج و راه‌حل‌ها

  • مشکل: PyAudio روی ویندوز نصب نمی‌شود
    راه‌حل: از فایل precompiled wheel استفاده کنید: pip install pipwin & pipwin install pyaudio
  • مشکل: خطای RateLimitError از OpenAI
    راه‌حل: یک sleep بین درخواست‌ها اضافه کنید یا از روش backoff استفاده کنید
  • مشکل: تشخیص نادرست گفتار فارسی
    راه‌حل: از میکروفون با کیفیت بهتر استفاده کنید یا نویز محیط را کاهش دهید
  • مشکل: تأخیر زیاد در پاسخ‌دهی
    راه‌حل: از مدل GPT-3.5-turbo استفاده کنید (سریع‌تر از نسخه‌های دیگر)

فصل هشتم: راه‌اندازی روی سرور و دپلوی پروژه

برای استفاده ۲۴ ساعته از دستیار، باید آن را روی یک سرور دپلوی کنید.

گزینه‌های دپلوی پیشنهادی

# نصب وابستگی‌ها روی سرور اوبونتو
sudo apt update
sudo apt install python3-pip portaudio19-dev python3-pyaudio
pip3 install -r requirements.txt

# اجرا با gunicorn برای production
gunicorn --workers 4 --bind 0.0.0.0:5000 app:app

فصل نهم: داستان موفقیت - چگونه یک دستیار صوتی به یک تیم کمک کرد

یک تیم استارتاپی از این آموزش استفاده کردند و دستیار صوتی اختصاصی برای پشتیبانی مشتریان خود ساختند. نتیجه؟

فصل دهم: برنامه عملی ۳۰ روزه برای تسلط بر ساخت دستیار صوتی

📅 برنامه ۳۰ روزه پیشنهادی

هفته اول: نصب و راه‌اندازی محیط، دریافت API Key، تست Whisper به تنهایی
هفته دوم: ساخت ماژول تشخیص گفتار و تست با فایل‌های صوتی مختلف
هفته سوم: یکپارچه‌سازی با GPT و تست پاسخ‌های تولید شده
هفته چهارم: افزودن TTS، ساخت رابط کاربری و دپلوی نهایی

🎯 هدف نهایی: داشتن یک دستیار صوتی کارآمد که حداقل ۱۰ دستور مختلف را به درستی اجرا کند.

سوالات متداول درباره ساخت دستیار صوتی با هوش مصنوعی

❓ آیا برای ساخت دستیار صوتی به دانش برنامه‌نویسی پیشرفته نیاز است؟

دانش پایه پایتون کافی است. تمام کدهای مورد نیاز در این مقاله ارائه شده و شما فقط باید آن‌ها را کپی و اجرا کنید. با این حال، برای شخصی‌سازی پیشرفته، آشنایی بیشتر با پایتون مفید خواهد بود.

❓ هزینه استفاده از API چقدر است؟

مدل Whisper API حدود ۰.۰۰۶ دلار در دقیقه هزینه دارد (حدود ۳۶۰۰ تومان در دقیقه با نرخ دلار ۶۰ هزار تومانی). مدل GPT-3.5-turbo حدود ۰.۰۰۲ دلار به ازای هر ۱۰۰۰ توکن. برای استفاده شخصی و معمولی، ماهانه کمتر از ۵ دلار هزینه خواهد داشت.

❓ آیا می‌توان دستیار را به صورت کاملاً آفلاین اجرا کرد؟

بله! مدل Whisper را می‌توانید به صورت محلی (offline) اجرا کنید. برای GPT نیز مدل‌های متن‌باز مثل Llama 2 یا Falcon وجود دارند که می‌توانید به صورت محلی اجرا کنید، اما نیاز به سخت‌افزار قوی‌تری دارند.

❓ دستیار صوتی من چقدر هوشمند خواهد بود؟

با استفاده از GPT-3.5-turbo یا GPT-4، دستیار شما می‌تواند به اکثر سوالات عمومی پاسخ دهد، مکالمه طبیعی داشته باشد، متن‌های خلاقانه بنویسد، کد تولید کند، تحلیل کند و حتی شوخی کند! هرچه مدل قوی‌تری استفاده کنید، دستیار هوشمندتر خواهد بود.

❓ آیا می‌توان دستیار را به تلگرام یا واتس‌اپ متصل کرد؟

کاملاً! با استفاده از APIهای تلگرام (python-telegram-bot) یا واتس‌اپ بیزینس می‌توانید دستیار خود را به این پیام‌رسان‌ها متصل کنید. این قابلیت در مقاله بعدی به طور کامل آموزش داده خواهد شد.

🎯 جمع‌بندی: از ایده تا اجرا

ساخت دستیار صوتی با Whisper و GPT نه تنها یک پروژه جذاب برنامه‌نویسی است، بلکه پنجره‌ای به آینده تعامل انسان با کامپیوتر می‌باشد. با مهارت‌هایی که در این آموزش کسب کردید، حالا می‌توانید ایده‌های خود را به واقعیت تبدیل کنید و محصولات هوشمندی بسازید که زندگی مردم را ساده‌تر کنند.

به یاد داشته باشید که این تنها شروع راه است. هوش مصنوعی به سرعت در حال پیشرفت است و فرصت‌های جدیدی هر روز ایجاد می‌شوند. با ادامه یادگیری و آزمایش ایده‌های جدید، می‌توانید در این حوزه پیشرو باشید و سهمی در شکل‌دهی به آینده فناوری داشته باشید.

🤖 همین امروز اولین دستیار صوتی خود را بسازید و وارد دنیای هوش مصنوعی شوید!

← بازگشت به صفحه اصلی هوش ناب
📞 پشتیبانی و مشاوره: support@hoshnab.ir | 📢 کانال تلگرام: @hoshnab