当前位置:AIGC资讯 > AIGC > 正文

利用openai的whisper,识别会议录音

下面是代码的详细解释:

一、 **导入必要的库** 代码开始时,导入了必要的库:`tkinter` 用于创建 GUI,`filedialog` 用于选择音频文件,`os` 用于文件操作,`whisper` 用于语音转文本。

二、**创建 GUI** GUI 由一个框架组成,包含一个按钮用于选择音频文件,一个标签用于显示所选文件,另一个标签用于显示转换结果。 **选择音频文件** 当按钮被点击时,`select_audio_file` 函数被调用,打开一个文件对话框,以便用户选择音频文件。所选文件路径被存储在 `root.filename` 变量中。

三、**将语音转换为文本** `convert_speech_to_text` 函数被调用,带有所选音频文件作为参数。该函数使用 Whisper 库将音频文件转换为文本,并将结果存储在 `text` 变量中。

四、**保存转换结果** `save_text_file` 函数被调用,带有音频文件路径和转换文本作为参数。该函数将转换结果保存到与音频文件相同目录下的文本文件中。 **显示结果** 转换结果被显示在 GUI 标签中。

安装必要的库

pip install whisper

whisper转录需要FFmpeg

安装 FFmpeg 的方法取决于你的操作系统。下面是常见操作系统的安装方法:

Windows

下载 FFmpeg 的 Windows 版本从官方网站:https://ffmpeg.org/download.html 选择合适的版本(32 位或 64 位)并下载安装程序。 运行安装程序并按照提示安装 FFmpeg。 将 FFmpeg 的安装目录添加到系统的 PATH 中。

Mac (via Homebrew)

安装 Homebrew,如果你还没有安装:https://brew.sh/ 打开 Terminal 并输入以下命令:brew install ffmpeg 等待安装完成。

Linux (Ubuntu/Debian)

打开 Terminal 并输入以下命令:sudo apt-get install ffmpeg

在win系统中需要将ffmpeg添加到环境变量中。为了将位于 E:\ffmpeg-7.0-essentials_build\bin (我的ffmpeg在此目录)的 FFmpeg 可执行文件(ffmpeg.exe)添加到系统的 PATH 中,可以按照以下步骤操作:

在桌面上右键点击“计算机”或“此电脑”图标,然后选择“属性”。 在左侧点击“高级系统设置”。 点击“环境变量”。 在“系统变量”部分,滚动到底部找到“Path”变量,然后点击“编辑”。 点击“新建”并添加路径 E:\ffmpeg-7.0-essentials_build\bin 到列表中。 点击“确定”以关闭所有窗口。

或者,你可以使用命令提示符来添加路径到系统的 PATH 环境变量。下面是如何操作:

以管理员身份打开命令提示符。 输入以下命令并按回车键:
setx PATH "%PATH%;E:\ffmpeg-7.0-essentials_build\bin"

这将添加路径到系统的 PATH 环境变量。

一旦添加了路径,你应该能够从命令提示符中的任何目录运行 FFmpeg。

下面是代码实现:

import tkinter as tk
from tkinter import filedialog
import os
import whisper

def select_audio_file():
    root.filename = filedialog.askopenfilename(initialdir="/", title="Select file",
                                              filetypes=(("audio files", "*.wav"), ("all files", "*.*")))
    if root.filename:
        label_file["text"] = os.path.basename(root.filename)
        convert_speech_to_text(root.filename)

def convert_speech_to_text(audio_file):
    model = whisper.load_model("base")
    result = model.transcribe(audio_file, fp16=False)
    text = result["text"]
    save_text_file(audio_file, text)

def save_text_file(audio_file, text):
    text_file_path = os.path.splitext(audio_file)[0] + ".txt"
    with open(text_file_path, 'w') as file:
        file.write(text)
    label_result["text"] = f"Transcription saved to: {text_file_path}"

root = tk.Tk()
root.title("Speech to Text Converter")

frame = tk.Frame(root)
frame.pack(pady=20)

button_load = tk.Button(frame, text="Select Audio File", command=select_audio_file)
button_load.pack()

label_file = tk.Label(frame, text="No file selected")
label_file.pack()

label_result = tk.Label(frame, text="")
label_result.pack()

root.mainloop()

总结

**文章总结**:
本文介绍了一个使用Python和多个库(包括`tkinter`、`filedialog`、`os`和`whisper`)构建的语音转文本(Speech-to-Text)GUI转换工具的实现流程。主要功能包括选择音频文件、调用Whisper库将音频转换为文本、将结果保存为文本文件以及在GUI界面上展示所选文件名称和转换结果。文章还包含了安装`whisper`和FFmpeg的步骤,以及在Windows系统上如何将FFmpeg添加到系统PATH的详细说明。代码实现部分展示了一个基于tkinter的简单界面和对应功能实现的函数(如`select_audio_file`、`convert_speech_to_text`和`save_text_file`)。通过这段代码,用户可以在图形化界面中直观地操作并看到转换的结果。

更新时间 2024-07-17