+
+
+
+
+
+
+
+
+
+ 🎤 Voice Translator Dashboard
+Real-time monitoring of Discord voice translation activity
+
+
+ System Online
+
+ Last updated: <%= moment().format('HH:mm:ss') %> +
+ + Last updated: <%= moment().format('HH:mm:ss') %> +
+
+
+
+
+
+
+
+
+
+
+
+ <%= data.systemStats.totalTranscriptions %>
+Total Transcriptions
+ +<%= data.systemStats.todayTranscriptions %> today +
+
+
+
+
+
+
+
+ + <%= Math.round(data.systemStats.totalSpeakingTime / 3600 * 10) / 10 %>h +
+Speaking Time
+ + Avg: <%= Math.round(data.systemStats.avgTranscriptionTime) %>ms + +
+
+
+
+
+
+
+
+ <%= data.systemStats.activeConnections %>
+Active Sessions
+ Voice channels +
+
+
+
+
+
+
+ + <%= Object.keys(data.systemStats.languageBreakdown).length %> +
+Languages Detected
+ Last 7 days +
+
+
+
+
+
+
+
+
+
+
+ Language Distribution
+ +
+
+
+
+ Performance Metrics
+ +
+
+
+
+
+
+
+
+
+
+
+ Recent Activity
+
+ <% data.recentActivity.forEach(activity => { %>
+
+
+
+ <% }); %>
+
+
+
+ <%= activity.speaker_nickname %>
+
+ <%= activity.languageInfo.flag %> <%= activity.languageInfo.name %>
+
+
+
+ <%= activity.channel_name %>
+ <%= activity.timeAgo %>
+ <%= Math.round(activity.duration_seconds * 10) / 10 %>s
+
+
+ "<%= activity.transcriptPreview %>"
+
+
+
+ <%= activity.processing_time_ms %>ms
+
+
+
+
+
+
+ Top Users (7 days)
+
+ <% data.userActivity.forEach((user, index) => { %>
+
+
+
+ <% }); %>
+
+
+ <%= Math.round(user.total_speaking_time / 60 * 10) / 10 %> min + +
+ <%= user.last_activity_ago %>
+
+ <% if (index === 0) { %><% } %>
+ <%= user.speaker_nickname %>
+
+
+ <%= user.transcription_count %> recordings
+ + <%= Math.round(user.total_speaking_time / 60 * 10) / 10 %> min + +
+
+
+
+
+
+ System Information
+
+
+
+
+ Services Status
+-
+
- Recorder Service +
- Audio Processor +
- Whisper Service (GPU) +
- Translation Service +
- Transcriber Service +
+
+ Performance
+-
+
- Avg Transcription: <%= Math.round(data.systemStats.avgTranscriptionTime) %>ms +
- Avg Translation: <%= Math.round(data.systemStats.avgTranslationTime) %>ms +
- GPU Model: faster-whisper large-v2 +
- Translation: Local NLLB + Google +
+
+ Storage
+-
+
- Database: PostgreSQL +
- Cache: Redis +
- Models: Cached locally +
- Audio: Auto-cleanup +