Heim >Backend-Entwicklung >Python-Tutorial >Erstellen einer Sprachtranskriptions- und Übersetzungs-App mit OpenAI Whisper und Streamlit

Erstellen einer Sprachtranskriptions- und Übersetzungs-App mit OpenAI Whisper und Streamlit

Patricia Arquette
Patricia ArquetteOriginal
2024-11-30 20:31:111048Durchsuche

In dieser Anleitung erfahren Sie, wie Sie mit dem Streamlit st.audio_input-Widget Ihre Stimme auf dem Mikrofon Ihres Geräts aufzeichnen und es mit dem OpenAI Whisper-Modell kombinieren, um Ihre Rede in Text auf Englisch zu transkribieren und/oder zu übersetzen. Sie können den transkribierten Inhalt später als Textdatei im TXT-Format herunterladen.

Voraussetzungen

  • Grundlegende Python-Kenntnisse
  • Streamlit
  • OpenAI-API-Schlüssel. Eröffnen Sie ein Konto

Was ist Flüstern?

Whisper ist ein trainiertes neuronales Open-Source-Netzwerk, das die Robustheit und Genauigkeit der englischen Spracherkennung auf menschlichem Niveau erreicht.

Die OpenAI-API bietet zwei Endpunkte:

  • Transkriptionen
  • Übersetzungen

Was ist Streamlit?

Auf der offiziellen Website bietet Streamlit eine schnellere Möglichkeit, Daten-Apps zu erstellen und zu teilen. Es handelt sich um eine Open-Source-Python-Bibliothek, die Sie beim Erstellen von Webanwendungen zum Teilen von Analyseergebnissen, zum Erstellen komplexer interaktiver Erlebnisse und zum Iterieren auf neuen Modellen des maschinellen Lernens unterstützt.

Streamlit ist die erste Wahl für Python-Entwickler, da es über integrierte und praktische Methoden verfügt, von der Aufnahme von Benutzereingaben wie Text, Zahlen und Daten bis hin zur Anzeige interaktiver Diagramme mithilfe der beliebtesten und leistungsstärksten Python-Grafikbibliotheken.

Streamlit installieren

Um Streamlit-Apps auszuführen, müssen Sie Streamlit zunächst mit dem folgenden Befehl installieren:

pip install streamlit

Andere Bibliotheken installieren

Da wir mit der Umwandlung von Audio in Text arbeiten, müssen wir unsere Umgebungsvariablen sicher speichern.

pip install openai python-dotenv

Erstellen der Umgebungsvariablen

Erstellen Sie eine neue Datei im Stammverzeichnis des Projekts und nennen Sie sie .env.

Fügen Sie Ihren OpenAI-API-Schlüssel ein:

.env

OPENAI_API_KEY="sk-..."

Erstellen der App

Erstellen Sie in Ihrem Verzeichnis diese Datei, streamlit_app.py, die den gesamten Python-Code enthält, um unser Audio zu transkribieren und zu übersetzen und den resultierenden Text auszugeben.

Um eine Instanz des OpenAI-Clients zu initialisieren, kopieren Sie diesen Code und fügen Sie ihn ein:

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()

Der Codeblock stellt eine Verbindung her und liest unseren geheimen Schlüssel in der .env-Datei, um sicherzustellen, dass wir als Benutzer authentifiziert sind.

PS: Die Nutzung der OpenAI-API ist nicht kostenlos, da Sie einige Credits kaufen müssen, um den Dienst nutzen zu können.

Transkription mit Whisper

Aktualisieren wir streamlit_app.py mit Folgendem:

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)

Die Transkriptions-API konvertiert unser Audio mithilfe des st.audio_input-Widgets, um unsere Stimme aufzuzeichnen. Wenn die Aufnahme vorhanden ist, wird das Modell Whisper verwendet, um das gewünschte Dateiformat für die Transkription des Audios zu erstellen und den Text mit der Funktion st.write() auszugeben, die einen String nimmt und ihn direkt in unsere Web-App schreibt.

Um das genaue Logo oben links in der App zu verwenden, laden Sie dieses herunter und speichern Sie es in Ihrem Projektverzeichnis.

Jetzt führen wir diese App mit diesem Befehl im Terminal aus:

pip install streamlit

Herunterladen des transkribierten Textes

Die Möglichkeit, die transkribierte Nachricht für später herunterzuladen, dient der Aufzeichnung, wenn Sie sie benötigen.

Streamlit bietet ein Eingabe-Widget, das die Anzeige eines Download-Buttons ermöglicht. Kehren Sie zur Datei streamlit_app.py zurück und aktualisieren Sie die Codebasis wie folgt:

streamlit_app.py

pip install openai python-dotenv

In den obigen Codezeilen geschieht Folgendes:

  • Mit st.session_state in Streamlit können Sie Variablen zwischen Wiederholungen für jede Benutzersitzung teilen
  • Die Variable transcript_text enthält den Inhalt des transkribierten Textes
  • Die Variable txt_file mit dem zugewiesenen Wert transcription.txt ist der Dateiname des transkribierten Textes, wenn die Datei heruntergeladen wird.
  • Innerhalb der Funktion von st.download_button() beschreibt die Bezeichnung dem Benutzer, wozu die Schaltfläche dient.

Das st.success-Statuselement zeigt eine Erfolgsmeldung an, wenn die Datei wie folgt gespeichert wird:

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

Übersetzung mit Whisper

Der Prozess zum Erstellen der Übersetzung ähnelt dem Erstellen der Transkription. Der Übersetzungsendpunkt übersetzt aus der Eingabe der Audiodatei eine Fremdsprache in geschriebenen Text auf Englisch.

Kopieren Sie diesen Code und fügen Sie ihn ein.

streamlit_app.py

OPENAI_API_KEY="sk-..."

Wenn Sie eine Datei erstellen möchten, um Ihre übersetzte Audiodatei als Text zu speichern, können Sie genauso vorgehen wie mit der Schaltfläche Transkript herunterladen.

Der vollständige Quellcode befindet sich in diesem Repository. Probieren Sie diese App aus, Ihre Stimme zu transkribieren und in Text zu übersetzen.

Viel Glück!

Abschluss

Anstatt wie in den OpenAI-Dokumenten vorab aufgezeichnete Audiodaten aus dem Internet zu verwenden, bietet Ihnen Streamlit die Möglichkeit, Ihre Stimme zu verwenden und sie mit den von OpenAI bereitgestellten Transkriptions- und Übersetzungsendpunkten zu koppeln, um dieses herausragende Projekt zu erstellen.

Das Mikrofon in Ihrem Gerät kann so viel, denn die Technologie ermöglicht es, es nicht nur für die Kommunikation bei Besprechungen und Anrufen zu verwenden.

Das obige ist der detaillierte Inhalt vonErstellen einer Sprachtranskriptions- und Übersetzungs-App mit OpenAI Whisper und Streamlit. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn