Upload folder using huggingface_hub
Browse files
src/__pycache__/app.cpython-310.pyc
CHANGED
|
Binary files a/src/__pycache__/app.cpython-310.pyc and b/src/__pycache__/app.cpython-310.pyc differ
|
|
|
src/services/__pycache__/distributed_transcription_service.cpython-310.pyc
CHANGED
|
Binary files a/src/services/__pycache__/distributed_transcription_service.cpython-310.pyc and b/src/services/__pycache__/distributed_transcription_service.cpython-310.pyc differ
|
|
|
src/ui/__pycache__/gradio_ui.cpython-310.pyc
CHANGED
|
Binary files a/src/ui/__pycache__/gradio_ui.cpython-310.pyc and b/src/ui/__pycache__/gradio_ui.cpython-310.pyc differ
|
|
|
src/ui/gradio_ui.py
CHANGED
|
@@ -40,9 +40,64 @@ def create_gradio_interface():
|
|
| 40 |
gr.Blocks: Configured Gradio interface
|
| 41 |
"""
|
| 42 |
|
| 43 |
-
with gr.Blocks(title="
|
| 44 |
-
gr.Markdown("#
|
| 45 |
-
gr.Markdown("
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 46 |
|
| 47 |
# ==================== Podcast Download Tab ====================
|
| 48 |
with gr.Tab("Podcast Download"):
|
|
|
|
| 40 |
gr.Blocks: Configured Gradio interface
|
| 41 |
"""
|
| 42 |
|
| 43 |
+
with gr.Blocks(title="ModalTranscriberMCP") as demo:
|
| 44 |
+
gr.Markdown("# ποΈ ModalTranscriberMCP")
|
| 45 |
+
gr.Markdown("**Advanced Audio Transcription with Modal Cloud Computing & MCP Integration**")
|
| 46 |
+
|
| 47 |
+
# Performance Highlight
|
| 48 |
+
gr.Markdown("""
|
| 49 |
+
### β‘ **Supercharged by Modal Serverless GPU**
|
| 50 |
+
π **10-20x Faster Processing**: 1-hour audio transcribed in just 3-6 minutes
|
| 51 |
+
π― **Parallel GPU Processing**: Up to 10 concurrent GPU containers
|
| 52 |
+
βοΈ **Zero Infrastructure Management**: Fully serverless, pay-per-use
|
| 53 |
+
""", elem_classes=["performance-highlight"])
|
| 54 |
+
|
| 55 |
+
# MCP Usage Instructions
|
| 56 |
+
gr.Markdown("""
|
| 57 |
+
### π How to Use This MCP Server
|
| 58 |
+
|
| 59 |
+
This application provides both a **Web UI** and **MCP (Model Context Protocol) Tools** for AI assistants
|
| 60 |
+
|
| 61 |
+
A youtube video demo is below:
|
| 62 |
+
|
| 63 |
+
[](https://youtu.be/Ut5jw7Epb0o)
|
| 64 |
+
|
| 65 |
+
|
| 66 |
+
|
| 67 |
+
#### π Web Interface
|
| 68 |
+
- Use the tabs above to download podcasts and transcribe audio files
|
| 69 |
+
- Support for multi-platform downloads (Apple Podcasts, XiaoYuZhou)
|
| 70 |
+
- Advanced features: speaker diarization (requires Hugging Face Token), multiple output formats
|
| 71 |
+
- **High-speed processing**: Powered by Modal's distributed GPU infrastructure
|
| 72 |
+
|
| 73 |
+
#### π€ MCP Integration
|
| 74 |
+
**For AI Assistants (Claude, etc.):**
|
| 75 |
+
```
|
| 76 |
+
MCP Server URL: /api/mcp
|
| 77 |
+
Available Tools:
|
| 78 |
+
β’ transcribe_audio_file_tool - High-quality audio transcription
|
| 79 |
+
β’ download_apple_podcast_tool - Apple Podcasts audio download
|
| 80 |
+
β’ download_xyz_podcast_tool - XiaoYuZhou podcast download
|
| 81 |
+
β’ get_mp3_files_tool - Scan directories for audio files
|
| 82 |
+
β’ get_file_info_tool - Get file information
|
| 83 |
+
β’ read_text_file_segments_tool - Read large text files in chunks
|
| 84 |
+
```
|
| 85 |
+
|
| 86 |
+
**Connect via MCP Client:**
|
| 87 |
+
|
| 88 |
+
we deploy mcp server on modal, and we can use the url to connect to the gradio ui
|
| 89 |
+
the url is: http://richardsucran--gradio-mcp-ui-app-entry.modal.run
|
| 90 |
+
and json config is:
|
| 91 |
+
```json
|
| 92 |
+
{
|
| 93 |
+
"mcpServers": {
|
| 94 |
+
"podcast-mcp": {
|
| 95 |
+
"url": "http://richardsucran--gradio-mcp-ui-app-entry.modal.run/api/mcp"
|
| 96 |
+
}
|
| 97 |
+
}
|
| 98 |
+
}
|
| 99 |
+
```
|
| 100 |
+
""", elem_classes=["mcp-instructions"])
|
| 101 |
|
| 102 |
# ==================== Podcast Download Tab ====================
|
| 103 |
with gr.Tab("Podcast Download"):
|