Ini adalah sampel Webapp Implementasi Openai Whisper, sistem pengenalan ucapan otomatis (ASR), menggunakan Next.js.
Ini mencatat data audio secara otomatis dan mengunggah data audio ke server untuk menyalin/menerjemahkan kemudian mengirimkan kembali hasilnya ke ujung depan. Dimungkinkan juga untuk memutar audio yang direkam untuk memverifikasi output.
UPDATE: Jika Anda ingin menggunakan
Next 13dengan fitur eksperimental diaktifkan (appDir), silakan periksa openai-whisper-api sebagai gantinya. Cukup atur bendera untuk menggunakan Modul Python Whisper bukannya Whisper API.
Menggunakan OpenAI Speech to Text API, silakan periksa OpenAI-WHISPER-API
Jika Anda mencari aplikasi obrolan suara menggunakan Whisper , silakan periksa openai-whisper-talk.
Untuk versi Nuxt.js , silakan periksa OpenAI-Chatterbox.
Telah dikatakan bahwa Whisper itu sendiri tidak dirancang untuk mendukung tugas streaming real-time semata, tetapi itu tidak berarti kita tidak dapat mencoba, sia-sia, lol.
Jadi proyek ini adalah upaya saya untuk membuat aplikasi web transcriber yang hampir real-time menggunakan OpenAI Whisper . Kemanjurannya tergantung pada seberapa cepat server dapat menyalin/menerjemahkan audio.
Saya menggunakan Next.js sehingga saya tidak perlu membuat aplikasi backend dan frontend terpisah.
Sedangkan untuk backend, saya menggunakan exec untuk mengeksekusi perintah shell memohon Whisper . Saya belum menemukan cara untuk import sebagai modul node.js Semua contoh dengan import tampaknya menggunakan server python .
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 )
}
} ) Perhatikan saya hanya menggunakan model tiny untuk melakukan tugas transkripsi yang sangat cepat. Ini semua yang bisa ditangani oleh sistem saya jika tidak, ia akan tetap diam.

Saya mengubah perilaku aplikasi dari versi sebelumnya. Sebelumnya, aplikasi akan merekam data audio terus menerus dengan interval waktu, secara default 5s. Saat ini, itu hanya akan mulai merekam jika dapat mendeteksi suara.
Ada pengaturan ambang batas untuk menghilangkan kebisingan latar belakang dari memicu penangkapan audio. Secara default diatur ke -45dB (0DB adalah suara paling keras). Sesuaikan variabel minDecibels dalam Settings jika Anda ingin mengaturnya ke lebih rendah atau lebih tinggi tergantung pada kebutuhan Anda.
Dalam percakapan manusia normal, dikatakan bahwa kita cenderung berhenti, rata -rata, sekitar 2 detik antara setiap kalimat. Mengingat hal ini, jika suara tidak terdeteksi selama lebih dari 2 detik, perekaman akan berhenti dan data audio akan dikirim ke backend untuk menyalin. Anda dapat mengubah ini dengan mengedit nilai maxPause , secara default diatur ke 2500ms .

Dimungkinkan untuk memainkan audio yang diunggah dan mengikuti output teks sejak periode waktu ditampilkan.
Adapun kode itu sendiri, saya menggunakan class component (saya tahu, saya tahu ...) karena saya memiliki waktu yang sulit untuk mengakses state variables menggunakan kait ketika saya sedang berkembang.

Selain dari minDecibels dan maxPause , Anda juga dapat mengubah beberapa opsi Whisper seperti language , model , dan task dari dialog Settings . Silakan periksa repositori GitHub Whisper untuk penjelasan tentang opsi.
Masih ada banyak hal yang harus dilakukan sehingga proyek ini masih sedang dalam proses ...
Pertama, Anda perlu menginstal Whisper dan dependensi Python
$ pip install git+https://github.com/openai/whisper.git Anda juga perlu ffmpeg terpasang di sistem Anda
# macos
$ brew install ffmpeg
# windows using chocolatey
$ choco install ffmpeg
# windows using scoop
$ scoop install ffmpeg Pada saat ini, Anda dapat menguji Whisper menggunakan baris perintah
$ whisper myaudiofile.ogg --language Japanese --task translateJika itu berhasil, Anda dapat melanjutkan untuk menginstal aplikasi ini.
Klon Repositori dan instal dependensi
$ git clone https://github.com/supershaneski/openai-whisper.git myproject
$ cd myproject
$ npm install
$ npm run dev Buka browser Anda ke http://localhost:3006/ Untuk memuat halaman aplikasi.
Anda mungkin ingin menjalankan aplikasi ini menggunakan protokol https . Ini diperlukan jika Anda ingin menggunakan perangkat terpisah untuk penangkapan audio dan menggunakan mesin Anda sebagai server.
Untuk melakukannya, siapkan certificate dan file key yang tepat dan edit server.js di direktori root.
Lalu jalankan
$ node server.js Sekarang, buka browser Anda ke https://localhost:3006/ untuk memuat halaman.