本指南将教您如何使用 Streamlit st.audio_input 小部件在与 OpenAI Whisper 模型配对的设备麦克风上录制您的声音,以将您的语音转录和/或翻译为英语文本。您稍后可以将转录内容下载为 .txt 格式的文本文件。
Whisper 是一个训练有素的开源神经网络,在英语语音识别方面接近人类水平的鲁棒性和准确性。
OpenAI API 提供两个端点:
从官方网站来看,Streamlit 是构建和共享数据应用程序的更快方式。它是一个开源 Python 库,可帮助您构建 Web 应用程序以共享分析结果、构建复杂的交互式体验以及在新的机器学习模型之上进行迭代。
Streamlit 是 Python 开发人员的首选,因为它具有内置且方便的方法,从接受文本、数字和日期等用户输入到使用最流行、最强大的 Python 图形库显示交互式图形。
要运行任何 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 并不是免费的,因为您必须购买一些积分才能使用该服务。
让我们使用以下内容更新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
上面的代码行中出现以下内容:
保存文件时,st.success 状态元素会显示成功消息,如下所示:
创建翻译的过程与创建转录的过程类似。翻译端点将从音频文件的输入将外语翻译成英语书面文本。
复制并粘贴此代码。
streamlit_app.py
OPENAI_API_KEY="sk-..."
如果您想创建一个文件将翻译后的音频文件另存为文本,您可以使用下载转录按钮执行相同的操作。
完整的源代码位于此存储库中,并尝试使用此应用程序将您的语音转录并翻译为文本。
祝你好运!
不像 OpenAI 文档中那样使用来自互联网的预先录制的音频,Streamlit 为您提供了使用您的语音并将其与 OpenAI 提供的转录和翻译端点配对来创建这个出色项目的机会。
设备中的麦克风可以做很多事情,因为技术已经使其超越了在会议和通话期间使用它进行通信的范围。
以上是使用 OpenAI Whisper 和 Streamlit 构建语音转录和翻译应用程序的详细内容。更多信息请关注PHP中文网其他相关文章!