Spaces:
Sleeping
Sleeping
Commit
·
a58ada6
1
Parent(s):
7bc4c94
Code fixing
Browse files
app.py
CHANGED
@@ -9,11 +9,13 @@ import urllib.request
|
|
9 |
import torchaudio
|
10 |
from scipy.spatial.distance import cosine
|
11 |
from RealtimeSTT import AudioToTextRecorder
|
|
|
12 |
from fastrtc import Stream, AsyncStreamHandler, ReplyOnPause
|
13 |
import json
|
14 |
import io
|
15 |
import wave
|
16 |
import asyncio
|
|
|
17 |
|
18 |
# Simplified configuration parameters
|
19 |
SILENCE_THRESHS = [0, 0.4]
|
@@ -621,7 +623,7 @@ def setup_fastrtc_handler():
|
|
621 |
|
622 |
# Create Gradio interface
|
623 |
def create_interface():
|
624 |
-
with gr.Blocks(title="Real-time Speaker Diarization", theme=gr.themes.Monochrome()) as
|
625 |
gr.Markdown("# 🎤 Real-time Speech Recognition with Speaker Diarization")
|
626 |
gr.Markdown("This app performs real-time speech recognition with automatic speaker identification and color-coding.")
|
627 |
|
@@ -639,7 +641,15 @@ def create_interface():
|
|
639 |
<script>
|
640 |
document.getElementById('start-fastrtc').addEventListener('click', function() {
|
641 |
document.getElementById('fastrtc-status').textContent = 'Connecting...';
|
642 |
-
// FastRTC will
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
643 |
});
|
644 |
</script>
|
645 |
</div>
|
@@ -790,29 +800,25 @@ def create_interface():
|
|
790 |
outputs=[conversation_output, status_output]
|
791 |
)
|
792 |
|
793 |
-
return
|
794 |
|
795 |
|
796 |
-
|
797 |
-
|
798 |
-
|
799 |
-
|
800 |
-
|
801 |
-
|
802 |
-
|
803 |
-
|
804 |
-
|
805 |
-
|
806 |
-
stream.mount(app.app)
|
807 |
-
|
808 |
-
# Launch the app
|
809 |
-
app.launch(
|
810 |
-
server_name="0.0.0.0",
|
811 |
-
server_port=7860,
|
812 |
-
share=True
|
813 |
-
)
|
814 |
|
|
|
|
|
|
|
|
|
815 |
|
816 |
if __name__ == "__main__":
|
817 |
-
# Run
|
818 |
-
|
|
|
9 |
import torchaudio
|
10 |
from scipy.spatial.distance import cosine
|
11 |
from RealtimeSTT import AudioToTextRecorder
|
12 |
+
from fastapi import FastAPI
|
13 |
from fastrtc import Stream, AsyncStreamHandler, ReplyOnPause
|
14 |
import json
|
15 |
import io
|
16 |
import wave
|
17 |
import asyncio
|
18 |
+
import uvicorn
|
19 |
|
20 |
# Simplified configuration parameters
|
21 |
SILENCE_THRESHS = [0, 0.4]
|
|
|
623 |
|
624 |
# Create Gradio interface
|
625 |
def create_interface():
|
626 |
+
with gr.Blocks(title="Real-time Speaker Diarization", theme=gr.themes.Monochrome()) as interface:
|
627 |
gr.Markdown("# 🎤 Real-time Speech Recognition with Speaker Diarization")
|
628 |
gr.Markdown("This app performs real-time speech recognition with automatic speaker identification and color-coding.")
|
629 |
|
|
|
641 |
<script>
|
642 |
document.getElementById('start-fastrtc').addEventListener('click', function() {
|
643 |
document.getElementById('fastrtc-status').textContent = 'Connecting...';
|
644 |
+
// FastRTC will initialize the connection
|
645 |
+
fetch('/start-rtc', { method: 'POST' })
|
646 |
+
.then(response => response.text())
|
647 |
+
.then(data => {
|
648 |
+
document.getElementById('fastrtc-status').textContent = 'Connected! Speak now...';
|
649 |
+
})
|
650 |
+
.catch(error => {
|
651 |
+
document.getElementById('fastrtc-status').textContent = 'Connection error: ' + error;
|
652 |
+
});
|
653 |
});
|
654 |
</script>
|
655 |
</div>
|
|
|
800 |
outputs=[conversation_output, status_output]
|
801 |
)
|
802 |
|
803 |
+
return interface
|
804 |
|
805 |
|
806 |
+
# Create FastAPI app and set up routes
|
807 |
+
app = FastAPI()
|
808 |
+
|
809 |
+
# Initialize FastRTC stream
|
810 |
+
rtc_stream = setup_fastrtc_handler()
|
811 |
+
rtc_stream.mount(app)
|
812 |
+
|
813 |
+
# Create Gradio interface
|
814 |
+
gradio_interface = create_interface()
|
815 |
+
app = gr.mount_gradio_app(app, gradio_interface, path="/")
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
816 |
|
817 |
+
# Add endpoint to start RTC connection
|
818 |
+
@app.post("/start-rtc")
|
819 |
+
def start_rtc():
|
820 |
+
return {"status": "success"}
|
821 |
|
822 |
if __name__ == "__main__":
|
823 |
+
# Run with uvicorn
|
824 |
+
uvicorn.run(app, host="0.0.0.0", port=7860)
|