Fast Whisper 语音转文本

概述

本项目使用 faster_whisper 库对 zh.wav 文件进行语音转文本操作,同时会检测音频文件的语言并输出每个语音段的起始时间、结束时间及文本内容。

库依赖

项目主要依赖以下库:

plaintext 复制代码
faster_whisper

你可以使用以下命令安装所需依赖:

bash 复制代码
pip install faster_whisper

运行环境构建

  1. 确保你已经安装了 Python 3.x 环境。

  2. 打开终端,进入项目目录 /Users/livingbody/workspace/sound5。

  3. 执行以下命令安装依赖:

bash 复制代码
pip install faster_whisper

程序功能

该程序主要完成以下功能:

  1. 检测输入音频文件 zh.wav 的语言,并输出检测到的语言及其概率。

  2. 对 zh.wav 文件进行语音转文本操作,输出每个语音段的起始时间、结束时间及文本内容。

  3. 包含错误处理机制,当程序运行过程中出现异常时,会打印错误信息。

Faster Whisper 相关信息

功能

faster_whisper 是一个基于 Whisper 模型的快速语音识别库,它可以高效地将语音转换为文本,支持多种语言的识别。

重要函数

  • WhisperModel:用于初始化 Whisper 模型。可以指定模型的大小,如 tiny、base、small 等。示例代码:
python 复制代码
from faster_whisper import WhisperModel

model = WhisperModel("tiny")
  • transcribe:对音频文件进行语音转录。返回语音片段列表和语言信息。示例代码:
python 复制代码
segments, info = model.transcribe("zh.wav")

模型介绍

faster_whisper 提供了多种不同大小的模型,模型越大,识别准确率越高,但运行速度越慢。常见的模型大小有:

  • tiny:最小的模型,速度最快,但准确率相对较低。

  • base:基础模型,在速度和准确率之间取得了较好的平衡。

  • small:较大的模型,准确率较高,但运行速度较慢。

运行程序

代码如下:

python 复制代码
# 设置文件编码为 UTF-8

# -*- coding: utf-8 -*-

# 从 faster_whisper 库中导入 WhisperModel 类,用于语音转录

from faster_whisper import WhisperModel

# 导入 os 模块,用于与操作系统进行交互

import os

# 设置环境变量,允许重复加载 libiomp5.dylib 库,避免 OMP 错误

os.environ["KMP_DUPLICATE_LIB_OK"] = "TRUE"

# 尝试执行语音转录操作

try:

# 初始化 WhisperModel 模型,使用 'tiny' 版本

model = WhisperModel("tiny")

# 对 'zh.wav' 文件进行语音转录,返回语音片段和语言信息

segments, info = model.transcribe("zh.wav")

# 打印检测到的语言及其概率

print(f"Detected language '{info.language}' with probability {info.language_probability:.2f}")

# 遍历每个语音片段

for segment in segments:

# 打印每个语音片段的起始时间、结束时间和文本内容

print("[%.2fs -> %.2fs] %s" % (segment.start, segment.end, segment.text))

# 捕获并处理可能出现的异常

except Exception as e:

# 打印错误信息

print(f"An error occurred: {e}")

在终端中进入项目目录,执行以下命令运行程序:

bash 复制代码
python fast-whisper-demo.py
bash 复制代码
Detected language 'zh' with probability 1.00

[0.00s -> 4.48s] 我認為跑步最重要的就是給我帶來了身體健康
相关推荐
程序员海军17 小时前
用了两年多 GPT,我最近开始换模型了,还折腾了个求职避坑 Agent
前端·人工智能·后端
码士集团小青17 小时前
SpringBoot 集成缓存性能之王 Caffeine
spring boot·后端·缓存
excel19 小时前
IndexNow:让搜索引擎更快发现网站更新的主动通知协议
前端·后端·架构
Json____19 小时前
用 FastAPI + Vue3 打造一套完整的在线考试系统:从组卷到阅卷的业务闭环实践
后端·node.js·fastapi·it学习·wwwoop.com
小灰灰搞电子20 小时前
Rust+Slint 实现FTP客户端调试助手源码分享
开发语言·后端·rust
专业程序开发源21 小时前
springboot欧缇蔓月子中心管理系统82697-计算机课程设计、毕业设计
java·spring boot·后端·python·spring·django·课程设计
卷无止境21 小时前
面向arm64桌面客户端开发全景:语言、框架与生态
后端·python
IT_陈寒1 天前
JavaScript的闭包陷阱,这个坑我躺了三天才爬出来
前端·人工智能·后端
用户8356290780511 天前
如何使用 Python 对 Excel 数据进行分组和分级显示
后端·python
vx_Biye_Design1 天前
django房屋租赁推荐系统78455-计算机课程设计、毕业设计
vue.js·spring boot·后端·python·django·课程设计·express