OpenAI之Whisper实时语音分析转文字

1.安装ffmpeg

2.安装python3.11

3.安装whisper

pip install whisper

conda环境安装whisper

 conda install whisper

命令行安装openai-whisper

pip install openai-whisper

 

设置环境变量

 4.分析语音并输出(默认使用GPU计算,如果没有安装CUDA,请使用CPU)

 whisper ./test.m4a --model small --output_format srt --language Chinese

5.使用CPU计算分析音频并输出

whisper ./test.m4a --model small --output_format srt --language Chinese --device cpu

 CPU分析音频会比GPU慢

使用python脚本操作whisper:

 

### Whisper 实现中文实时语音文字 #### 使用 Python 和 Streamlit 构建简单的 Web 应用程序 为了实现中文的实时语音文字功能,可以利用 Whisper 的强大特性并结合一些额外的技术栈来构建一个简易的应用程序。下面是一个基于 Python 和 Streamlit 的简单例子。 首先安装必要的库: ```bash pip install streamlit openai-whisper pyaudio sounddevice ``` 创建 `app.py` 文件用于定义应用程序逻辑: ```python import whisper import streamlit as st import sounddevice as sd from scipy.io.wavfile import write import numpy as np def record_audio(duration=5, fs=44100): """录制指定秒数的声音""" myrecording = sd.rec(int(duration * fs), samplerate=fs, channels=2) sd.wait() # Wait until recording is finished return myrecording, fs st.title('Whisper 中文实时语音文字') model_name = "base" if model := st.sidebar.selectbox( '选择模型', ('tiny', 'small', 'medium', 'large')): model_name = model # 加载预训练好的whisper模型 @st.cache_resource(show_spinner="正在加载模型...") def load_model(model_size=model_name): return whisper.load_model(model_size) loaded_model = load_model() option = st.radio("请选择输入方式", ("麦克风录入", "上传音频")) if option == "麦克风录入": duration = st.slider('录音时间(s)', min_value=1, max_value=30, value=5) if st.button(f'开始{duration}秒录音'): with st.spinner(f"正在录音..."): audio_data, sample_rate = record_audio(duration) file_path = f"./temp_recording_{np.random.randint(999)}.wav" write(file_path, sample_rate, audio_data) # Save as WAV file result = loaded_model.transcribe(file_path, language='zh') st.write(result["text"]) else: uploaded_file = st.file_uploader("请上传音频文件") if uploaded_file is not None: bytes_data = uploaded_file.getvalue() with open("./uploaded_temp.wav", "wb") as f: f.write(bytes_data) result = loaded_model.transcribe("./uploaded_temp.wav", language='zh') st.write(result["text"]) ``` 此代码片段展示了如何通过 Streamlit 创建图形界面让用户可以选择从麦克风录制声音或是上传已有音频文件来进行换[^1]。当选择了麦克风选项时,会调用内置函数完成短暂录音并将结果保存至临时位置供后续处理;而如果用户上传了文件,则直接读取该文件的内容进行分析。最后一步都是使用已经加载完毕的 Whisper 模型执行 transcribe 方法得到最终的文字输出[^2]。 #### 关键配置项说明 - **Model Size**: 支持 tiny/small/medium/large 不同大小版本的选择,默认采用 base 版本,在精度与速度之间取得平衡。 - **Language Parameter**: 设置为 zh 来确保只针对中文语料做优化[^3]。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

自由软件开发者

有你的鼓励,我会更加努力。

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值