文章目录
实时录制音频并转录 faster-whisper使用教程github:https://github.com/openai/whisper
https://gitcode.com/gh_mirrors/whisp/whisper/overview
https://github.com/jhj0517/Whisper-WebUI
pip install -U openai-whisper
此外你还需要安装ffmpeg。
下载模型:Whisper提供了多种大小的模型,您可以根据需要下载。例如,要下载large-v2模型,可以使用以下命令:
wget https://openaipublic.azureedge.net/main/whisper/models/81f7c96c852ee8fc832187b0132e569d6c3065a3252ed18e56effd0b6a73e524/large-v2.pt
模型文件通常保存在~/.cache/whisper/目录下。
Openai whisper模型下载链接,包括medium(中型),large-v1、large-v2、large-v3
medium:https://openaipublic.azureedge.net/main/whisper/models/345ae4da62f9b3d59415adc60127b97c714f32e89e936602e85993674d08dcb1/medium.pt large-v1: https://openaipublic.azureedge.net/main/whisper/models/e4b87e7e0bf463eb8e6956e646f1e277e901512310def2c24bf0e11bd3c28e9a/large-v1.pt large-v2: https://openaipublic.azureedge.net/main/whisper/models/81f7c96c852ee8fc832187b0132e569d6c3065a3252ed18e56effd0b6a73e524/large-v2.pt large-v3:https://openaipublic.azureedge.net/main/whisper/models/e5b1a55b89c1367dacf97e3e19bfd829a01529dbfdeefa8caeb59b3f1b81dadb/large-v3.pt { "tiny.en": "https://openaipublic.azureedge.net/main/whisper/models/d3dd57d32accea0b295c96e26691aa14d8822fac7d9d27d5dc00b4ca2826dd03/tiny.en.pt", "tiny": "https://openaipublic.azureedge.net/main/whisper/models/65147644a518d12f04e32d6f3b26facc3f8dd46e5390956a9424a650c0ce22b9/tiny.pt", "base.en": "https://openaipublic.azureedge.net/main/whisper/models/25a8566e1d0c1e2231d1c762132cd20e0f96a85d16145c3a00adf5d1ac670ead/base.en.pt", "base": "https://openaipublic.azureedge.net/main/whisper/models/ed3a0b6b1c0edf879ad9b11b1af5a0e6ab5db9205f891f668f8b0e6c6326e34e/base.pt", "small.en": "https://openaipublic.azureedge.net/main/whisper/models/f953ad0fd29cacd07d5a9eda5624af0f6bcf2258be67c92b79389873d91e0872/small.en.pt", "small": "https://openaipublic.azureedge.net/main/whisper/models/9ecf779972d90ba49c06d968637d720dd632c55bbf19d441fb42bf17a411e794/small.pt", "medium.en": "https://openaipublic.azureedge.net/main/whisper/models/d7440d1dc186f76616474e0ff0b3b6b879abc9d1a4926b7adfa41db2d497ab4f/medium.en.pt", "medium": "https://openaipublic.azureedge.net/main/whisper/models/345ae4da62f9b3d59415adc60127b97c714f32e89e936602e85993674d08dcb1/medium.pt", "large-v1": "https://openaipublic.azureedge.net/main/whisper/models/e4b87e7e0bf463eb8e6956e646f1e277e901512310def2c24bf0e11bd3c28e9a/large-v1.pt", "large-v2": "https://openaipublic.azureedge.net/main/whisper/models/81f7c96c852ee8fc832187b0132e569d6c3065a3252ed18e56effd0b6a73e524/large-v2.pt", "large-v3": "https://openaipublic.azureedge.net/main/whisper/models/e5b1a55b89c1367dacf97e3e19bfd829a01529dbfdeefa8caeb59b3f1b81dadb/large-v3.pt", "large": "https://openaipublic.azureedge.net/main/whisper/models/e5b1a55b89c1367dacf97e3e19bfd829a01529dbfdeefa8caeb59b3f1b81dadb/large-v3.pt", }
使用Whisper进行语音识别 import whisper # 加载模型 model = whisper.load_model("large-v2") # 转录音频文件 result = model.transcribe("path_to_your_audio_file.wav") # 打印识别结果 print(result["text"])
首先,我们建议使用Whisper的large-v2模型。根据我的实测结果,这个模型的表现非常优秀,它可以识别多种语言,包括中文,而且中文识别效果非常出色。在某些文字转换的场景中,它的表现甚至优于腾讯云、阿里云。
实时录制音频并转录
import pyaudio import wave import numpy as np from pydub import AudioSegment from audioHandle import addAudio_volume,calculate_volume from faster_whisper import WhisperModel model_size = "large-v3" # Run on GPU with FP16 model = WhisperModel(model_size, device="cuda", compute_type="float16") def GetIndex(): p = pyaudio.PyAudio() # 要找查的设备名称中的关键字 target = '立体声混音' for i in range(p.get_device_count()): devInfo = p.get_device_info_by_index(i) # if devInfo['hostApi'] == 0: if devInfo['name'].find(target) >= 0 and devInfo['hostApi'] == 0: print(devInfo) print(devInfo['index']) return devInfo['index'] return -1 # 配置 FORMAT = pyaudio.paInt16 # 数据格式 CHANNELS = 1 # 声道数 RATE = 16000 # 采样率 CHUNK = 1024 # 数据块大小 RECORD_SECONDS = 5 # 录制时长 WAVE_OUTPUT_FILENAME = "output3.wav" # 输出文件 DEVICE_INDEX = GetIndex() # 设备索引,请根据您的系统声音设备进行替换 if DEVICE_INDEX==-1: print('请打开立体声混音') audio = pyaudio.PyAudio() # 开始录制 stream = audio.open(format=FORMAT, channels=CHANNELS, rate=RATE, input=True, frames_per_buffer=CHUNK, input_device_index=DEVICE_INDEX) data = stream.read(CHUNK) print("recording...") frames = [] moreDatas=[] maxcount=3 count=0 while True: # 初始化一个空的缓冲区 datas = [] for i in range(0, int(RATE / CHUNK * RECORD_SECONDS)): data = stream.read(CHUNK) audio_data = np.frombuffer(data, dtype=np.int16) datas.append(data) # 计算音频的平均绝对值 volume = np.mean(np.abs(audio_data)) # 将音量级别打印出来 print("音量级别:", volume) moreDatas.append(datas) if len(moreDatas)>maxcount: moreDatas.pop(0) newDatas=[i for j in moreDatas for i in j] buffers=b'' for buffer in newDatas: buffers+=buffer print('开始识别') buffers=np.frombuffer(buffers, dtype=np.int16) # a = np.ndarray(buffer=np.array(datas), dtype=np.int16, shape=(CHUNK,)) segments, info = model.transcribe(np.array(buffers), language="en") text='' for segment in segments: print("[%.2fs -> %.2fs] %s" % (segment.start, segment.end, segment.text)) text+=segment.text print(text) print("finished recording") # 停止录制 stream.stop_stream() stream.close() audio.terminate() # 保存录音 wf = wave.open(WAVE_OUTPUT_FILENAME, 'wb') wf.setnchannels(CHANNELS) wf.setsampwidth(audio.get_sample_size(FORMAT)) wf.setframerate(RATE) wf.writeframes(b''.join(frames)) wf.close() #addAudio_volume(WAVE_OUTPUT_FILENAME)
配置麦克风输入
在开始语音识别之前,您需要配置麦克风输入。您可以使用Python的pyaudio库来捕获麦克风输入。例如:
import pyaudio p = pyaudio.PyAudio() stream = p.open(format=pyaudio.paInt16, channels=1, rate=16000, input=True, frames_per_buffer=1024) stream.start_stream()
创建语音识别器对象
接下来,您需要创建一个语音识别器对象。您可以使用Whisper库的create_recognizer函数来创建它。例如:
recognizer = whisper.create_recognizer()
开始语音识别
现在,您可以开始进行语音识别了。您可以使用recognizer对象的listen方法来捕获音频输入,并使用recognizer对象的recognize方法来识别音频内容。例如:
audio = recognizer.listen(stream) text = recognizer.recognize(audio)
处理识别结果
最后,您可以处理识别结果。例如,您可以将识别的文本输出到控制台或将其保存到文件中。例如:
print(text) # 输出到控制台
faster-whisper使用教程
github:https://github.com/SYSTRAN/faster-whisper
https://gitcode.com/gh_mirrors/fas/faster-whisper/overview
https://github.com/ycyy/faster-whisper-webui
Faster Whisper 是一个基于 CTranslate2 的 OpenAI Whisper 模型的重新实现。它是一个快速推理引擎,用于 Transformer 模型,相比 OpenAI 的 Whisper 模型,速度提升了 4 倍。该项目支持 Windows、Linux 和 macOS 平台,并且提供了多种优化选项,如 FP16 和 INT8 计算类型,以适应不同的硬件环境。
安装
pip install faster-whisper
样例
import os os.environ["HF_ENDPOINT"] = "https://hf-mirror.com" from faster_whisper import WhisperModel model_size = "large-v3" # 选择模型大小,这里使用的是较大的模型版本 device = "cuda" # 在GPU上运行则设置为"cuda",如果CPU运行则设置为"cpu" compute_type = "float16" # 使用FP16计算类型进行高效计算 # model = WhisperModel(model_size, device=device, compute_type=compute_type) # 或在CPU上以INT8模式运行 model = WhisperModel(model_size, device="cpu", compute_type="int8") # file_name = "./data/rich_text_example_1.wav" file_name = "./data/2.mp3" # 对音频文件进行转录,beam_size参数影响转录的精度和速度 segments, info = model.transcribe(file_name, beam_size=5) # 输出检测到的语言和置信度 print("Detected language '%s' with probability %f" % (info.language, info.language_probability)) for segment in segments: # 输出每个转录段的内容和时间信息 print("[% 2fs -> % 2fs] %s" % (segment.start, segment.end, segment.text))
whisper参考:https://www.bilibili.com/read/cv28169729/
https://blog.csdn.net/jaja1223/article/details/134991210
https://blog.csdn.net/u010751000/article/details/130333856
https://blog.csdn.net/qq_51116518/article/details/136864350
https://zhuanlan.zhihu.com/p/692375653
https://developer.baidu.com/article/detail.html?id=2850876
https://cloud.tencent.com/developer/article/2421076
whisper-webui使用教程:https://post.smzdm.com/p/a3052kz7/
faster-whisper参考:https://blog.csdn.net/gitblog_00489/article/details/141049036
https://zhuanlan.zhihu.com/p/690424577
总结
### 文章总结:实时录制音频并转录的Faster Whisper使用指南#### 一、引言
本文介绍了如何使用Faster Whisper这一基于OpenAI Whisper模型的快速推理引擎,来实现实时音频录制与转录的功能。Faster Whisper利用CTranslate2优化了Transformer模型,提供了较高的语音识别速度和精度,支持Windows、Linux和macOS平台。
#### 二、安装准备
1. **安装Whisper**:
- 通过pip安装`openai-whisper`库:`pip install -U openai-whisper`
- 下载并配置Whisper模型文件(如`large-v2`、`large-v3`等),模型文件可以从相关链接下载并保存在`~/.cache/whisper/`目录下。
2. **Faster Whisper安装**:
- 通过pip安装Faster Whisper:`pip install faster-whisper`
#### 三、使用Whisper进行语音识别
1. **加载模型和转录音频文件**:
- 使用`whisper.load_model()`加载选定的模型(如`large-v2`)。
- 使用模型的`transcribe()`方法对音频文件进行转录。
2. **实时录制并转录音频**:
- 使用`pyaudio`库进行麦克风输入配置。
- 配置音频格式、采样率、声道数和数据块大小等参数。
- 利用Whisper(或通过Faster Whisper的模拟方式)对录制的音频数据进行实时转录处理。
#### 四、Faster Whisper的功能与优势
1. **快速推理**:
- Faster Whisper通过CTranslate2框架显著提高了Transformer模型的推理速度,可达原生Whisper的4倍。
2. **跨平台支持**:
- 支持Windows、Linux和macOS平台。
3. **硬件优化**:
- 提供多种计算类型和设备选择,如FP16和INT8计算类型,以及GPU或CPU运行选项。
#### 五、示例代码
文章提供了多个示例代码段,包括使用Whisper进行基本音频转录、实时音频录制与转录,以及Faster Whisper的安装、配置和使用示例。其中,Faster Whisper的实时音频处理示例展示了如何在GPU上使用FP16计算类型加载大模型(如`large-v3`),并通过循环读取麦克风数据进行实时转录。
#### 六、其他资源
文章末尾列出了多个参考链接,包括whisper和faster-whisper的GitHub仓库、相关教程和博客文章,帮助用户深入学习和使用这两个库。
### 结论
本文通过详细步骤和示例代码,展示了如何使用Whisper(及其优化版Faster Whisper)来实现实时音频录制和高效转录的功能。无论是对于科研人员,还是开发人员来说,这些工具都是进行智能语音处理工作的有力助手。 whisperopenaiazuregit语音识别githubmediumcpu实时音频gputpuwindowswebuilinuxwebmacmacosctrtransformercode