| import gradio as gr |
| import whisper |
| import os |
|
|
| |
| |
| model = whisper.load_model("base") |
|
|
| def speech_to_text(audio, language): |
| if audio is None: |
| return "请先上传音频文件或录音。" |
| |
| |
| |
| lang_map = { |
| "自动检测": None, |
| "中文 (Chinese)": "zh", |
| "英语 (English)": "en", |
| "日语 (Japanese)": "ja", |
| "法语 (French)": "fr", |
| "德语 (German)": "de" |
| } |
| |
| selected_lang = lang_map.get(language) |
| |
| |
| |
| result = model.transcribe(audio, language=selected_lang) |
| |
| return result["text"] |
|
|
| |
| iface = gr.Interface( |
| fn=speech_to_text, |
| inputs=[ |
| gr.Audio(type="filepath", label="上传音频或录音"), |
| gr.Dropdown( |
| choices=["自动检测", "中文 (Chinese)", "英语 (English)", "日语 (Japanese)", "法语 (French)", "德语 (German)"], |
| label="音频语言", |
| value="自动检测" |
| ) |
| ], |
| outputs=gr.Textbox(label="转换出的文本"), |
| title="AI 智能语音转文字", |
| description="上传音频文件或直接录音,AI 将自动识别并转换为文字。基于 OpenAI Whisper base 模型。" |
| ) |
|
|
| if __name__ == "__main__": |
| iface.launch() |