Dies ist eine Beispiel -WebApp -Implementierung von Openai Whisper, einem ASR -System (Automatic Spracherkennung), das Next.js.
Es werden Audiodaten automatisch aufgezeichnet und die Audiodaten auf den Server hochgeladen, um das Transkriptieren/Übersetzen zu transkribieren/zu übersetzen. Sendet das Ergebnis an das Frontend zurück. Es ist auch möglich, das aufgenommene Audio zu verschieben, um die Ausgabe zu überprüfen.
UPDATE: Wenn Sie
Next 13mit experimenteller Funktion aktivieren möchten (AppDIR), lesen Sie stattdessen OpenAi-Whisper-API. Stellen Sie einfach das Flag ein, um das Whisper Python -Modul anstelle von Whisper -API zu verwenden.
Überprüfen Sie mit OpenAI -Rede zu Text-API Openai-Whisper-API
Wenn Sie mit Whatchat-App mit Whisper suchen, lesen Sie bitte Openai-Whisper-Talk.
Für Nuxt.js Version finden Sie bitte die OpenAi-Chatterbox.
Es wurde gesagt, dass Whisper selbst nicht so konzipiert ist, dass sie Echtzeit- Streaming-Aufgaben an sich unterstützen, aber es bedeutet nicht, dass wir es nicht versuchen können, vergeblich wie es sein mag, lol.
Dieses Projekt ist also mein Versuch, mit Openai Whisper eine fast Echtzeit- Transkribent-Webanwendung zu erstellen. Die Wirksamkeit hängt davon ab, wie schnell der Server das Audio transkribieren/übersetzen kann.
Ich habe Next.js verwendet, damit ich keine separaten Backend- und Frontend -Apps erstellen muss.
Was das Backend betrifft, habe ich exec verwendet, um Shell -Befehl auszuführen, Whisper aufgerufen hat. Ich habe noch keinen Weg gefunden, es als node.js -Modul zu import . Alle Beispiele mit import scheinen python Server zu verwenden.
import { exec } from 'child_process'
exec ( `whisper './ ${ filename } ' --model tiny --language Japanese --task translate` , ( err , stdout , stderr ) => {
if ( err ) {
console . log ( err )
} else {
console . log ( stdout )
console . log ( stderr )
}
} ) Beachten Sie, dass ich nur das tiny Modell benutze, um eine superschnelle Transkriptionsaufgabe auszuführen. Dies ist alles, was mein System erledigen kann, sonst wird es still.

Ich habe das Verhalten der App aus der früheren Version geändert. Vorher erfasst die App die Audiodaten kontinuierlich in einem Zeitintervall standardmäßig 5S. Im Moment wird es nur mit der Aufnahme beginnen, wenn es Ton erkennen kann.
Es gibt eine Schwellenwerteinstellung, um Hintergrundgeräusche aus dem Auslösen der Audioerfassung zu beseitigen. Standardmäßig wird es auf -45dB gesetzt (0DB ist das lauteste Geräusch). Passen Sie die variablen minDecibels in Settings an, wenn Sie sie je nach Ihren Anforderungen auf niedriger oder höher einstellen möchten.
Im normalen menschlichen Gespräch wird gesagt, dass wir durchschnittlich etwa 2 Sekunden zwischen den einzelnen Sätzen innehalten. Wenn Sie dies berücksichtigen, wird die Aufzeichnung gestoppt, wenn der Ton nicht länger als 2 Sekunden festgestellt wird, und die Audiodaten werden zur Transkription an das Backend gesendet. Sie können dies ändern, indem Sie den Wert von maxPause standardmäßig auf 2500ms bearbeiten.

Es ist möglich, das hochgeladene Audio abzuspielen und die Textausgabe zu befolgen, da der Zeitraum angezeigt wird.
Was den Code selbst betrifft, habe ich class component verwendet (ich weiß, ich weiß ...), weil ich es schwer hatte, bei der Entwicklung von Hooks auf state variables zuzugreifen.

Abgesehen von minDecibels und maxPause können Sie auch mehrere Whisper wie language , model und task aus dem Dialogfeld " Settings ändern. Bitte überprüfen Sie das Github -Repository von Whisper nach der Erläuterung der Optionen.
Es gibt noch viele Dinge zu tun, damit dieses Projekt noch in Arbeit ist ...
Zuerst müssen Sie Whisper und seine Python -Abhängigkeiten installieren
$ pip install git+https://github.com/openai/whisper.git Sie müssen auch ffmpeg auf Ihrem System installiert
# macos
$ brew install ffmpeg
# windows using chocolatey
$ choco install ffmpeg
# windows using scoop
$ scoop install ffmpeg Zu diesem Zeitpunkt können Sie Whisper mit der Befehlszeile testen
$ whisper myaudiofile.ogg --language Japanese --task translateWenn dies erfolgreich ist, können Sie diese App installieren.
Klonen Sie das Repository und installieren Sie die Abhängigkeiten
$ git clone https://github.com/supershaneski/openai-whisper.git myproject
$ cd myproject
$ npm install
$ npm run dev Öffnen Sie Ihren Browser in http://localhost:3006/ um die Anwendungsseite zu laden.
Möglicherweise möchten Sie diese App mithilfe https -Protokolls ausführen. Dies ist erforderlich, wenn Sie ein separates Gerät für die Audioerfassung verwenden und Ihren Computer als Server verwenden möchten.
Bereiten Sie dazu das richtige certificate und key vor und bearbeiten Sie server.js im Stammverzeichnis.
Dann rennen
$ node server.js Öffnen Sie jetzt Ihren Browser für https://localhost:3006/ um die Seite zu laden.