Modern bir sesli asistan uygulaması - AssemblyAI'nin batch (dosya yükleme) API'si ile yüksek kaliteli konuşma tanıma.
- AssemblyAI Batch STT: Yüksek kaliteli konuşma tanıma
- Gerçek zamanlı ses kaydı: Web Audio API ile optimize edilmiş kayıt
- Çok dilli destek: Türkçe ve İngilizce otomatik dil algılama
- Modern UI: React + TypeScript + Tailwind CSS
- Progress tracking: Yükleme ve işleme durumu takibi
- Web Speech API TTS: Yerleşik metin-konuşma dönüşümü
Frontend (React + TypeScript)
├── VoiceAssistant.tsx # Ana sesli asistan bileşeni
├── utils/audioUtils.ts # Ses kaydı ve API utility'leri
└── components/ui/ # Shadcn/ui bileşenleri
Backend (Python + Flask)
├── backend_server.py # Ana Flask sunucusu
├── /api/assemblyai-batch-transcribe # Batch STT endpoint'i
├── /chat # Chat API endpoint'i
└── /metrics # Sistem metrikleri
- Node.js 18+
- Python 3.8+
- AssemblyAI API anahtarı
# Frontend bağımlılıkları
npm install
# Backend bağımlılıkları
pip install flask flask-cors requests python-dotenv openai psutil
.env.local
dosyası oluşturun:
ASSEMBLYAI_API_KEY=your_assemblyai_api_key_here
OPENAI_API_KEY=your_openai_api_key_here # Opsiyonel
python backend_server.py
Backend http://localhost:8000 adresinde çalışacak.
npm run dev
Frontend http://localhost:5173 adresinde çalışacak.
- Mikrofon izni verin: İlk kullanımda tarayıcı mikrofon erişimi isteyecek
- Kayıt başlatın: Mikrofon butonuna tıklayarak kayıt başlatın
- Konuşun: Net ve anlaşılır konuşun
- Kayıt durdurun: Tekrar butona tıklayarak kaydı durdurun
- Sonucu görün: AssemblyAI batch API'si sesi transkript edecek
POST /api/assemblyai-batch-transcribe
Content-Type: application/json
{
"audio": "base64_encoded_audio_data",
"language": "auto|tr|en"
}
POST /chat
Content-Type: application/json
{
"guest_id": "user123",
"message": "transcribed_text",
"language": "auto|tr|en"
}
GET /metrics
Batch STT endpoint'ini test etmek için:
python test_assemblyai_batch.py
- Ses kalitesi: 16kHz, mono, WebM/Opus formatı
- Yükleme süresi: Dosya boyutuna bağlı (genellikle 1-5 saniye)
- Transkripsiyon süresi: AssemblyAI batch API'sine bağlı (genellikle 10-30 saniye)
- Toplam gecikme: ~15-35 saniye (yüksek kalite için)
-
Mikrofon erişimi reddedildi
- Tarayıcı ayarlarından mikrofon iznini kontrol edin
- HTTPS üzerinden çalıştığınızdan emin olun
-
AssemblyAI API hatası
- API anahtarınızın doğru olduğunu kontrol edin
- API kotanızı kontrol edin
-
Backend bağlantı hatası
- Backend sunucusunun çalıştığını kontrol edin
- Port 8000'in açık olduğunu kontrol edin
# Backend log'ları
python backend_server.py
# Frontend log'ları (browser console)
F12 > Console
- Frontend'de yeni bileşen oluşturun
- Backend'de gerekli endpoint'i ekleyin
- API utility'lerini güncelleyin
- Test edin
# Tailwind CSS'i yeniden derleyin
npm run build
MIT License
- Fork edin
- Feature branch oluşturun (
git checkout -b feature/amazing-feature
) - Commit edin (
git commit -m 'Add amazing feature'
) - Push edin (
git push origin feature/amazing-feature
) - Pull Request oluşturun
Sorunlar için GitHub Issues kullanın veya iletişime geçin.