首页 >后端开发 >Python教程 >使用 OpenAI Whisper 和 Streamlit 构建语音转录和翻译应用程序

使用 OpenAI Whisper 和 Streamlit 构建语音转录和翻译应用程序

Patricia Arquette
Patricia Arquette原创
2024-11-30 20:31:11970浏览

本指南将教您如何使用 Streamlit st.audio_input 小部件在与 OpenAI Whisper 模型配对的设备麦克风上录制您的声音,以将您的语音转录和/或翻译为英语文本。您稍后可以将转录内容下载为 .txt 格式的文本文件。

先决条件

  • Python基础知识
  • 流光
  • OpenAI API 密钥。注册一个帐号

什么是耳语

Whisper 是一个训练有素的开源神经网络,在英语语音识别方面接近人类水平的鲁棒性和准确性。

OpenAI API 提供两个端点:

  • 转录
  • 翻译

什么是 Streamlit

从官方网站来看,Streamlit 是构建和共享数据应用程序的更快方式。它是一个开源 Python 库,可帮助您构建 Web 应用程序以共享分析结果、构建复杂的交互式体验以及在新的机器学习模型之上进行迭代。

Streamlit 是 Python 开发人员的首选,因为它具有内置且方便的方法,从接受文本、数字和日期等用户输入到使用最流行、最强大的 Python 图形库显示交互式图形。

安装 Streamlit

要运行任何 Streamlit 应用程序,您必须首先使用以下命令安装 Streamlit:

pip install streamlit

安装其他库

由于我们正在将音频转换为文本,因此我们需要安全地存储环境变量。

pip install openai python-dotenv

创建环境变量

在项目根目录下创建一个新文件,命名为.env。

粘贴您的 OpenAI API 密钥:

.env

OPENAI_API_KEY="sk-..."

创建应用程序

在您的目录中创建此文件,streamlit_app.py,其中将包含用于转录和翻译音频并输出结果文本的所有 Python 代码。

要初始化 OpenAI 客户端的实例,请复制粘贴以下代码:

streamlit_app.py

import os
from dotenv import load_dotenv
from openai import OpenAI

load_dotenv()

api_key = os.getenv('OPENAI_API_KEY')

client = OpenAI()

代码块连接并读取 .env 文件中的密钥,确保我们作为用户进行身份验证。

PS:使用 OpenAI API 并不是免费的,因为您必须购买一些积分才能使用该服务。

用 Whisper 进行转录

让我们使用以下内容更新streamlit_app.py:

streamlit_app.py

...
import streamlit as st

st.logo(
  "logo.png",
  size="medium",
  link="https://platform.openai.com/docs",
)

st.title("Transcription with Whisper")

audio_value = st.audio_input("record a voice message to transcribe")

if audio_value:
  transcript = client.audio.transcriptions.create(
    model="whisper-1",
    file = audio_value
  )

  transcript_text = transcript.text
  st.write(transcript_text)

转录 API 将使用 st.audio_input 小部件转换我们的音频来录制我们的声音。如果录音存在,模型 Whisper 用于创建音频转录所需的文件格式,并使用 st.write() 函数输出文本,该函数接受一个字符串并将其直接写入我们的 Web 应用程序。

要使用应用程序左上角的确切徽标,请下载此徽标并将其保存在您的项目目录中。

现在,让我们在终端中使用以下命令运行此应用程序:

pip install streamlit

下载转录文本

下载转录的消息供以后使用的功能可以在您需要时用于保存记录。

Streamlit 提供了一个输入小部件,允许显示下载按钮。返回streamlit_app.py 文件,使用以下内容更新代码库:

streamlit_app.py

pip install openai python-dotenv

上面的代码行中出现以下内容:

  • Streamlit 中的 st.session_state 允许您在每个用户会话的重新运行之间共享变量
  • transcript_text 变量将包含转录文本的内容
  • 赋值的txt_file变量,transcription.txt是下载文件时转录文本的文件名。
  • 在 st.download_button() 函数中,标签向用户描述了该按钮的用途。

保存文件时,st.success 状态元素会显示成功消息,如下所示:

Building a Voice Transcription and Translation App with OpenAI Whisper and Streamlit

耳语翻译

创建翻译的过程与创建转录的过程类似。翻译端点将从音频文件的输入将外语翻译成英语书面文本。

复制并粘贴此代码。

streamlit_app.py

OPENAI_API_KEY="sk-..."

如果您想创建一个文件将翻译后的音频文件另存为文本,您可以使用下载转录按钮执行相同的操作。

完整的源代码位于此存储库中,并尝试使用此应用程序将您的语音转录并翻译为文本。

祝你好运!

结论

不像 OpenAI 文档中那样使用来自互联网的预先录制的音频,Streamlit 为您提供了使用您的语音并将其与 OpenAI 提供的转录和翻译端点配对来创建这个出色项目的机会。

设备中的麦克风可以做很多事情,因为技术已经使其超越了在会议和通话期间使用它进行通信的范围。

以上是使用 OpenAI Whisper 和 Streamlit 构建语音转录和翻译应用程序的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn