🌐 多语种翻译
多语种翻译 一个实时多语言翻译应用程序,允许用户用一种语言说话或打字,并接收另一种语言的即时翻译,可选地带有音频输出。它支持20多种语言,并通过干净的界面实现流畅的对话式交互 溪流 界面。后端是用 烧瓶 并使用 OpenAI的LLMs 用于高质量的翻译和文本到语音合成。
我将前端和后端分开以保持角色干净可靠:Streamlit处理用户体验,而Flask公开API、运行模型调用和提供文件。Flask更适合二进制上传和静态MP3,它避免了Streamlit在长时间操作中的重新运行问题。将逻辑保存在Flask中可以稳定状态,集中机密,并将凭据排除在UI之外。相同的API稍后可以为其他客户端供电。HTTP GET/POST还可以干净地处理大型输入和文件上传。
🎯 特性
- 🎙️ 语音输入(STT):从麦克风录制,并在停止时自动填充输入框。
- 🔤 文本到文本翻译:主要语言之间的确定性翻译。
- 🔊 文本转语音输出:为翻译后的文本生成MP3音频。
- 🌍 20+语言:通过并排下拉菜单快速选择源/目标。
- ⚡ 实时用户界面:立即更新成绩单;麦克风和翻译在一条线上。
- 🖥️ 流线型前端:干净、响应迅速的界面。
- 🔗 烧瓶后端API:
/stt演讲→text,/translate对于文本→翻译+MP3,/audio/用于播放。
所用型号:
- 语音转文本:
Wishper-1 - 文本到文本:
gpt-4o-mini - 文本转语音:
gpt-4o-mini-tts (voice: alloy)
架构概述
┌──────────────────────────────┐
│ Streamlit UI │
│ - Textarea (key="inp") │
User speaks │ - ⏺️/⏹️ mic button │
──stop────────▶│ - Source/Target dropdowns │
│ - Translate button │
└───────┬───────────┬──────────┘
│ │
POST /stt │ │ GET /translate?input_text
(audio bytes) │ └──────────────────────────────────────────────┐
│ │
▼ ▼
┌───────────────────┐ ┌─────────────────────────┐
│ Flask API │ │ Flask API │
│ /stt │ │ /translate │
│ - Whisper STT │ │ - GPT-4o-mini translate │
│ → {text} │ │ - gpt-4o-mini-tts MP3 │
└────────┬──────────┘ │ - save → /audio/*.mp3 │
│ └───────────┬─────────────┘
│ │
set st.session_state["inp"] ◀────────────── JSON { text } │
│ │
▼ ▼
┌──────────────────────────────┐ JSON { translated_text,
│ Streamlit Output │ audio_url:/audio/… }
│ - Translated textarea ◀──────────────────────────────────────────┐
│ - st.audio player ◀─────────────┐ │
└──────────────────────────────┘ │ │
▼ ▼
┌────────────────────┐ ┌──────────────────────┐
│ Flask /audio/ │◀────┤ MP3 files on disk │
│ serves audio/mpeg │ └──────────────────────┘
└────────────────────┘
📸 模型结果
作者
与我联系🌐


© Created by Vetrivel Maheswaran</p?
