首頁 >後端開發 >Python教學 >使用 OpenAI Whisper 和 Streamlit 建立語音轉錄和翻譯應用程序

使用 OpenAI Whisper 和 Streamlit 建立語音轉錄和翻譯應用程序

Patricia Arquette
Patricia Arquette原創
2024-11-30 20:31:111049瀏覽

本指南將教您如何使用 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