本地搭建 Whisper 语音识别模型

2024-09-05 19:28

本文主要是介绍本地搭建 Whisper 语音识别模型,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

Whisper 是由 OpenAI 开发的一款强大的语音识别模型,具有出色的多语言处理能力。搭建和使用 Whisper 模型可以帮助您将音频内容转换为文本,这在语音转写、语音助手、字幕生成等应用中都具有广泛的用途。本指南将对如何在本地环境中搭建 Whisper 语音识别模型进行详细的说明,并通过实例演示使您更容易理解和应用。

2. 准备工作

2.1 硬件要求

  • 处理器:最低双核 CPU,推荐四核以上。
  • 内存:至少 8GB RAM,推荐 16GB RAM。
  • 存储:足够的硬盘空间,用于安装软件和存储模型及音频数据,建议至少 10GB 可用空间。
  • GPU(可选):如果使用 GPU 加速,建议 NVIDIA GPU,需安装 CUDA。

2.2 软件要求

  • 操作系统:Windows 10 或 Linux(如 Ubuntu)。
  • Python:建议使用 Python 3.8 以上版本。
  • Git:用于克隆代码库。
  • ffmpeg:用于处理音频文件。

3. 安装 Python 环境

如果您的系统尚未安装 Python,可以遵循如下步骤:

Windows

  1. 访问 Python 官网 下载并安装最新版本的 Python。
  2. 在安装过程中,勾选 “Add Python to PATH” 选项。

Linux

在终端中输入以下命令安装 Python:

sudo apt update
sudo apt install python3 python3-pip

4. 下载 Whisper 模型

4.1 了解 Whisper 模型

Whisper 是一个预训练的语音识别模型,支持多种语言,适用于各种音频数据的转录。它生成的文本输出比其他模型更完整,适合用于实时识别和音频转写。

4.2 安装依赖项

使用以下命令安装 Whisper 及其依赖项:

pip install git+https://github.com/openai/whisper.git
pip install torch torchvision torchaudio
pip install ffmpeg-python

安装过程可能需要几分钟,请耐心等待。确保您的网络连接稳定,以便顺利下载所需的库。

5. 使用 Whisper 进行语音识别

5.1 识别音频文件

准备好后,您可以使用 Whisper 对音频文件进行识别。

创建一个新的 Python 文件,命名为 transcribe.py,并在其中添加以下代码:

import whisper# 加载 Whisper 模型
model = whisper.load_model("base") # 可以选择 "tiny", "base", "small", "medium", "large"# 加载和转录音频
def transcribe_audio(file_path):
audio = whisper.load_audio(file_path)
audio = whisper.pad_or_trim(audio)
mel = whisper.log_mel_spectrogram(audio).to(model.device)# 检测语言
_, probs = model.detect_language(mel)
print(f"Detected language: {max(probs, key=probs.get)}")# 转录音频
result = model.transcribe(file_path)
return result["text"]if __name__ == "__main__":
audio_file = "your_audio_file.wav" # 替换为你的音频文件路径
transcription = transcribe_audio(audio_file)
print("Transcription:", transcription)

5.2 实时语音识别

Whisper 还可以用于实时语音识别,您可以使用库 sounddevice 来捕获音频并将其转写。

安装 sounddevice

pip install sounddevice numpy

在 transcribe.py 中添加实时识别功能:

import sounddevice as sd
import numpy as np
import queue# 设置音频参数
SAMPLE_RATE = 16000
DURATION = 10 # 时间限制q = queue.Queue()def callback(indata, frames, time, status):
q.put(indata.copy())# 实时识别音频
def real_time_transcribe():
with sd.InputStream(samplerate=SAMPLE_RATE, channels=1, callback=callback):
print("Recording...")
sd.sleep(DURATION * 1000) # 记录指定时间
print("Recording stopped.")audio_data = np.concatenate(list(q.queue))
audio = whisper.pad_or_trim(audio_data.flatten())
mel = whisper.log_mel_spectrogram(audio).to(model.device)# 转录音频
result = model.transcribe(mel)return result["text"]if __name__ == "__main__":
transcription = real_time_transcribe()
print("Transcription:", transcription)

6. 实际操作案例

6.1 音频文件的准备

我们需要准备一些音频文件进行测试,可以使用自己的录音,或者从网上下载一些公开的音频文件。建议使用 WAV 格式的高质量录音。

例如,可以使用 Free Music Archive 或 LibriVox 下载一些公共领域的音频文件。

6.2 使用 Whisper 识别音频

  1. 将准备好的音频文件放在与 transcribe.py 相同的目录中。
  2. 打开终端,导航到项目目录,运行以下命令:
python transcribe.py
  1. 您将看到输出的转录文本在控制台中打印出来。

7. 常见问题解答

7.1 为什么模型加载缓慢?

Whisper 模型文件较大,加载时间取决于您的计算机性能。可以使用较小的模型(例如 tiny 或 base)来缩短加载时间,但可能会影响识别精度。

7.2 识别的文本不正确,怎么办?

影响识别准确度的因素多种多样,包括音频质量、说话人的口音、背景噪声等。确保使用高质量的音频文件并对音频进行适当的预处理,可以提高识别的准确性。

7.3 如何处理不同格式的音频?

Whisper 支持多种音频格式(如 WAV, MP3)。确保您的音频文件经过适当的解码和处理。如果使用 FFmpeg,可以使用以下命令将文件转换为 WAV 格式:

ffmpeg -i input.mp3 output.wav

通过本指南,您已经成功地在本地搭建了 Whisper 语音识别模型,并学习了如何使用它进行音频转录和实时识别。Whisper 作为一个先进的语音识别工具,具有强大的功能和灵活性,非常适合各种应用场景。

这篇关于本地搭建 Whisper 语音识别模型的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1139847

相关文章

一文详解Git中分支本地和远程删除的方法

《一文详解Git中分支本地和远程删除的方法》在使用Git进行版本控制的过程中,我们会创建多个分支来进行不同功能的开发,这就容易涉及到如何正确地删除本地分支和远程分支,下面我们就来看看相关的实现方法吧... 目录技术背景实现步骤删除本地分支删除远程www.chinasem.cn分支同步删除信息到其他机器示例步骤

前端如何通过nginx访问本地端口

《前端如何通过nginx访问本地端口》:本文主要介绍前端如何通过nginx访问本地端口的问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、nginx安装1、下载(1)下载地址(2)系统选择(3)版本选择2、安装部署(1)解压(2)配置文件修改(3)启动(4)

如何使用Haporxy搭建Web群集

《如何使用Haporxy搭建Web群集》Haproxy是目前比较流行的一种群集调度工具,同类群集调度工具有很多如LVS和Nginx,本案例介绍使用Haproxy及Nginx搭建一套Web群集,感兴趣的... 目录一、案例分析1.案例概述2.案例前置知识点2.1 HTTP请求2.2 负载均衡常用调度算法 2.

Python中图片与PDF识别文本(OCR)的全面指南

《Python中图片与PDF识别文本(OCR)的全面指南》在数据爆炸时代,80%的企业数据以非结构化形式存在,其中PDF和图像是最主要的载体,本文将深入探索Python中OCR技术如何将这些数字纸张转... 目录一、OCR技术核心原理二、python图像识别四大工具库1. Pytesseract - 经典O

一文详解如何在idea中快速搭建一个Spring Boot项目

《一文详解如何在idea中快速搭建一个SpringBoot项目》IntelliJIDEA作为Java开发者的‌首选IDE‌,深度集成SpringBoot支持,可一键生成项目骨架、智能配置依赖,这篇文... 目录前言1、创建项目名称2、勾选需要的依赖3、在setting中检查maven4、编写数据源5、开启热

Java使用HttpClient实现图片下载与本地保存功能

《Java使用HttpClient实现图片下载与本地保存功能》在当今数字化时代,网络资源的获取与处理已成为软件开发中的常见需求,其中,图片作为网络上最常见的资源之一,其下载与保存功能在许多应用场景中都... 目录引言一、Apache HttpClient简介二、技术栈与环境准备三、实现图片下载与保存功能1.

Python基于微信OCR引擎实现高效图片文字识别

《Python基于微信OCR引擎实现高效图片文字识别》这篇文章主要为大家详细介绍了一款基于微信OCR引擎的图片文字识别桌面应用开发全过程,可以实现从图片拖拽识别到文字提取,感兴趣的小伙伴可以跟随小编一... 目录一、项目概述1.1 开发背景1.2 技术选型1.3 核心优势二、功能详解2.1 核心功能模块2.

如何搭建并配置HTTPD文件服务及访问权限控制

《如何搭建并配置HTTPD文件服务及访问权限控制》:本文主要介绍如何搭建并配置HTTPD文件服务及访问权限控制的问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、安装HTTPD服务二、HTTPD服务目录结构三、配置修改四、服务启动五、基于用户访问权限控制六、

pytest+allure环境搭建+自动化实践过程

《pytest+allure环境搭建+自动化实践过程》:本文主要介绍pytest+allure环境搭建+自动化实践过程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐... 目录一、pytest下载安装1.1、安装pytest1.2、检测是否安装成功二、allure下载安装2.

Python验证码识别方式(使用pytesseract库)

《Python验证码识别方式(使用pytesseract库)》:本文主要介绍Python验证码识别方式(使用pytesseract库),具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全... 目录1、安装Tesseract-OCR2、在python中使用3、本地图片识别4、结合playwrigh