ホームページ >バックエンド開発 >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 は 2 つのエンドポイントを提供します:

  • 文字起こし
  • 翻訳

ストリームリットとは

公式 Web サイトより、Streamlit はデータ アプリをより迅速に構築して共有する方法です。これは、分析結果を共有し、複雑なインタラクティブなエクスペリエンスを構築し、新しい機械学習モデル上で反復処理するための Web アプリケーションを構築するのに役立つオープンソースの Python ライブラリです。

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 ファイル内の秘密キーを読み取り、ユーザーとして認証されていることを確認します。

追記: 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 を使用して音声の書き起こしに必要なファイル形式が作成され、文字列を取得して Web アプリに直接書き込む st.write() 関数を使用してテキストが出力されます。

アプリの左上にある正確なロゴを使用するには、これをダウンロードしてプロジェクト ディレクトリに保存します。

次に、ターミナルで次のコマンドを使用してこのアプリを実行してみましょう:

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 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。