Watch2Earn

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

توضیحات متا (Meta Description):
آموزش کامل ساخت دستیار صوتی هوشمند با Whisper و GPT: راهنمای جامع پیاده‌سازی، کدنویسی و شخصی‌سازی دستیار صوتی با هوش مصنوعی. ساخت دستیار صوتی فارسی و انگلیسی.

مقدمه: انقلاب دستیارهای صوتی هوشمند

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

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

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

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

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

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

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

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

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

سایر کتابخانه‌های مورد نیاز

برای کامل کردن پروژه به کتابخانه‌های زیر نیز نیاز داریم:

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

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

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

با استفاده از pip کتابخانه‌های مورد نیاز را نصب کنید:

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

دریافت API Key از OpenAI

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

تنظیمات API OpenAI
دریافت API Key از پلتفرم OpenAI

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

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

کد تشخیص گفتار

کد زیر را در یک فایل به نام speech_to_text.py ذخیره کنید:

import speech_recognition as sr
import openai

# تنظیم کلید API
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:
        # استفاده از Whisper برای تشخیص گفتار
        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

توضیح کد

این کد چه کاری انجام می‌دهد:

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

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

کد تولید پاسخ

کد زیر را در یک فایل به نام text_to_response.py ذخیره کنید:

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
فرآیند تولید پاسخ هوشمند با مدل GPT

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

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

کد تبدیل متن به گفتار

کد زیر را در یک فایل به نام text_to_speech.py ذخیره کنید:

from gtts import gTTS
import pygame
import io
import os

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}")

توضیح کد

این ماژول چه قابلیت‌هایی دارد:

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

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

کد اصلی دستیار صوتی

کد زیر را در یک فایل به نام voice_assistant.py ذخیره کنید:

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

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
                
                # دریافت پاسخ از GPT
                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:
        # کد برای روشن کردن چراغ
        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:
        # در غیر این صورت از GPT استفاده می‌کنیم
        return get_gpt_response(user_input, conversation_history)
💡 نکته طلایی: برای بهبود دقت تشخیص گفتار فارسی، می‌توانید از مدل‌های اختصاصی فارسی استفاده کنید یا Whisper را با داده‌های فارسی بیشتری آموزش دهید. همچنین می‌توانید از سرویس‌های تشخیص گفتار بومی ایرانی که برای زبان فارسی بهینه‌تر هستند استفاده کنید.

مرحله ۷: ساخت رابط کاربری وب

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

کد نمونه با Flask

یک اپلیکیشن وب ساده با 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 جداگانه
    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)

کد HTML برای رابط کاربری

یک فایل index.html در پوشه templates ایجاد کنید:

<!DOCTYPE html>
<html lang="fa" dir="rtl">
<head>
    <meta charset="UTF-8">
    <title>دستیار صوتی هوشمند</title>
    <style>
        body { font-family: Arial, sans-serif; text-align: center; padding: 50px; }
        button { padding: 15px 30px; font-size: 18px; margin: 10px; cursor: pointer; }
        .listening { background-color: #ff4444; color: white; }
    </style>
</head>
<body>
    <h1>دستیار صوتی هوشمند</h1>
    <button id="startBtn" onclick="startListening()">شروع گوش دادن</button>
    <button id="stopBtn" onclick="stopListening()" disabled>توقف گوش دادن</button>
    <div id="status">دستیار آماده است</div>
    
    <script>
        function startListening() {
            fetch('/start_listening', { method: 'POST' })
            .then(response => response.json())
            .then(data => {
                document.getElementById('startBtn').disabled = true;
                document.getElementById('stopBtn').disabled = false;
                document.getElementById('status').textContent = 'در حال گوش دادن...';
                document.getElementById('status').className = 'listening';
            });
        }
        
        function stopListening() {
            fetch('/stop_listening', { method: 'POST' })
            .then(response => response.json())
            .then(data => {
                document.getElementById('startBtn').disabled = false;
                document.getElementById('stopBtn').disabled = true;
                document.getElementById('status').textContent = 'دستیار آماده است';
                document.getElementById('status').className = '';
            });
        }
    </script>
</body>
</html>
رابط کاربری وب دستیار صوتی
رابط کاربری وب برای دستیار صوتی ساخته شده با Flask

نکات مهم برای توسعه و بهبود

برای تبدیل این پروژه به یک محصول تجاری یا بهبود آن، این نکات را در نظر بگیرید:

بهینه‌سازی عملکرد

امنیت و حریم خصوصی

قابلیت‌های تجاری

🚀 شروع سریع: برای شروع، ابتدا نسخه پایه دستیار را اجرا کنید و سپس به تدریج قابلیت‌های جدید اضافه کنید. با پروژه کوچک شروع کنید و به مرور آن را گسترش دهید. مهمترین عامل موفقیت، تست مداوم و دریافت بازخورد از کاربران است.

سخن پایانی: آینده در دستان شماست

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

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

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

بازگشت به صفحه اصلی
پشتیبانی: support@watch2earn.ir
کسب درآمد مطمئن از تبلیغات