现在已经有很多非常不错的语音转文本的AI应用了,比如通义听悟、飞书妙记等。不过,对于大批量、多个文件夹的语音转文本,手工操作就比较麻烦了,还是有个程序自动化运行更方面。
Whisper 是一个由 OpenAI 开发的开源语音识别库,旨在将音频内容转换为文本。它使用深度学习模型来识别和转录语音,支持多种语言和多种音频格式。借助这个开源免费的Whisper库,可以很方便的实现批量语音转文本。
在kimichat对话框中输入提示词:
你是一个Python编程专家,要完成一个Python脚本的编写任务,具体步骤如下:
打开文件夹:D:\CHATGPT For TikTok TikTok Mastery with CHATGPT
文件夹里面有多个子文件夹,子文件夹中有mp3格式的音频,读取子文件夹中的所有音频文件;
用openai-whisper库将mp3格式音频识别为和音频同名的文本文档,然后保存在和mp3音频的同一个文件夹中;
注意:Whisper语音模型使用medium模型,要识别的音频为英文内容
下面是openai-whisper库的使用示例:
import whisper
model = whisper.load_model("medium")
result = model.transcribe("audio.mp3")
print(result["text"])
这是kimichat给出的Python源代码:
import os
import whisper
# 定义 Whisper 模型路径
MODEL_PATH = "medium" # 这里我们直接使用 "medium" 字符串,因为根据你的描述,不需要指定具体的模型文件路径
# 定义音频文件夹路径
AUDIO_FOLDER = 'D:\\CHATGPT For TikTok TikTok Mastery with CHATGPT'
# 初始化 Whisper 模型
model = whisper.load_model(MODEL_PATH)
# 遍历文件夹中的所有子文件夹和文件
for root, dirs, files in os.walk(AUDIO_FOLDER):
for file in files:
# 检查文件是否为 mp3 格式
if file.endswith('.mp3'):
# 构建 mp3 文件的完整路径
mp3_path = os.path.join(root, file)
# 构建文本文件的完整路径
text_path = os.path.splitext(mp3_path)[0] + '.txt'
# 使用 Whisper 模型识别音频并生成文本
try:
result = model.transcribe(mp3_path)
# 保存文本到文件
with open(text_path, 'w', encoding='utf-8') as f:
f.write(result["text"])
print(f'Transcription saved: {text_path}')
except Exception as e:
print(f'Error transcribing audio from {mp3_path}: {e}')
print('Transcription process completed.')
由于whisper库依赖pyTorch,所以还要安装其他几个库。而这几个库由于版本兼容问题,可能会发生冲突,所以最好使用conda生成虚拟的Python环境,然后安装在这个虚拟环境中。
用conda创建一个3.9版本的Python环境:conda create n myenv python=3.9
在这个虚拟环境中安装whisper库:pip install openai-whisper -i
https://
pypi.tuna.tsinghua.edu.cn
/simple
安装pytorch库:conda install pytorch torchvision torchaudio cpuonly -c pytorch
whisper 在处理音频文件时会用到 ffmpeg,也需要安装,下载地址:
https://
github.com/BtbN/FFmpeg-
builds/releases
,安装完成后,然后将ffmpeg.exe所在文件夹路径在系统环境变量设置中添加到变量Path中。
接下来,在vscode里面设置好使用这个虚拟的Python3.9版本环境:
View——command palette——select interpreter——Python3.9.19