#!/usr/bin/env python3
"""
VoiceCal Streamlit App with WebRTC Integration (unmute.sh pattern)
"""
import streamlit as st
import sys
from datetime import datetime
import os
import asyncio
import json
def main():
st.set_page_config(
page_title="VoiceCal - Voice Assistant",
page_icon="đ¤",
layout="wide"
)
st.title("đ¤đ
VoiceCal - Voice-Enabled AI Assistant")
st.markdown("**WebRTC Voice Integration Following unmute.sh Pattern**")
# Service status dashboard
col1, col2, col3 = st.columns(3)
with col1:
st.metric("đ¤ VoiceCal", "Online", "â
")
st.metric("đĄ WebRTC", "Ready", "đ")
with col2:
st.metric("đ§ STT Service", "Available", "â
")
st.metric("đ TTS Service", "Available", "â
")
with col3:
st.metric("đ WebSocket", "Initializing", "âŗ")
st.metric("đą Client", "Pending", "đ")
# WebRTC Integration Section
st.markdown("---")
st.header("đ WebRTC Voice Integration")
# JavaScript for WebRTC implementation following unmute.sh pattern
webrtc_html = """
đ¤ Voice Interface (unmute.sh Pattern)
Status: Initializing WebRTC connection...
Transcription: Ready for voice input...
"""
# Render the WebRTC interface
st.components.v1.html(webrtc_html, height=600)
# Technical Information
st.markdown("---")
st.header("đ§ Technical Details")
col1, col2 = st.columns(2)
with col1:
st.subheader("đĄ WebRTC Configuration")
st.code(f"""
WebSocket URL: wss://pgits-voicecal.hf.space/ws/webrtc/{{client_id}}
STT Endpoint: wss://pgits-stt-gpu-service.hf.space/ws/stt
TTS Endpoint: wss://pgits-tts-gpu-service.hf.space/ws/tts
Audio Format: WebM/Opus (16kHz, Mono)
Chunk Size: 250ms (unmute.sh pattern)
""")
with col2:
st.subheader("đ¯ Features")
st.write("â
Real-time audio streaming")
st.write("â
WebRTC MediaRecorder integration")
st.write("â
unmute.sh pattern implementation")
st.write("â
Automatic chunking & buffering")
st.write("â
Flush trick for end-of-stream")
st.write("â
Bidirectional voice communication")
# Connection Status
st.subheader("đ Service Endpoints")
st.json({
"voicecal_websocket": f"wss://pgits-voicecal.hf.space/ws/webrtc/demo-xxxx",
"stt_service": "wss://pgits-stt-gpu-service.hf.space/ws/stt",
"tts_service": "wss://pgits-tts-gpu-service.hf.space/ws/tts",
"pattern": "unmute.sh WebRTC implementation",
"status": "Ready for voice interaction"
})
# Footer
st.markdown("---")
st.markdown("đ **VoiceCal WebRTC Integration** - Following unmute.sh pattern for optimal voice processing")
if __name__ == "__main__":
main()