Kode ini dirancang untuk membuat sejumlah besar transkrip Whisper Openai mudah dicari. Jadi orang dapat menemukan bagian atau istilah tertentu terjadi dan pada jam berapa dalam transkrip. Namun, itu harus bekerja dengan folder. VTT File: Non OpenAi Transkrip Podcast.
Saya menggunakan Whisper OpenAi untuk menyalin podcast Tech yang tidak disengaja, dan saya menggunakan situs web mesin pencari langsung di sini, ditenagai oleh modul ini (khususnya SearchTranscripts ).
Modul ini memiliki dua kelas:
LoadTranscripts : Ini membuat basis data SQLite dan tabel virtual FTS5 dari folder file transkrip (file .vtt atau .json ). Ini menciptakan potongan teks yang lebih panjang (masing -masing sekitar 300 kata) dari segmen transkrip pendek dalam file asli untuk membuat blok teks dapat dicari. Ini melestarikan segmen transkrip individu dalam database terpisah.
SearchTranscripts : Ini adalah kelas Python yang menggunakan database SQLITE untuk mengembalikan data Pandas dari hasil teratas untuk kueri pencarian.
Once the sqlite database is created with LoadTranscripts , you can access that database via any sqlite interface you like such as datasette, dbeaver, the command line, SQL alchemy, etc. The SearchTranscripts class is meant to be a simple and convenient way to access the data from python, using the built-in sqlite3 module and pandas, but it is somewhat limited.
Klon dan CD ke direktori utama repo, lalu jalankan:
pip install .
from search_transcripts import LoadTranscripts, SearchTranscripts
l = LoadTranscripts('transcripts') ## will create main.db and bm25.pickle
s = SearchTranscripts()
## Returns a pandas dataframe of the top scoring transcript sections, across all transcripts.
s.search('starship enterprise')
##find the exact phrase
s.search('"starship enterprise"')
Jadi, sebelum saya menyadari Whisper akan membuat file .vtt standar, saya menggunakan API Python secara langsung. Ini menghasilkan daftar kamus Python. Menyimpan itu karena JSON tampak logis pada saat itu. Saya menemukan JSON lebih mudah dibaca mesin daripada .vtt, dan dapat dengan mudah dikonversi ke VTT, jadi saya masih mendukung format yang agak unik ini. Sepertinya begitu:
[
{
"start": 606.1800000000001,
"end": 610.74,
"text": " It's important to have a goal to work toward and accomplish rather than just randomly learning and half building things"
},
{
"start": 610.74,
"end": 613.0600000000001,
"text": " Having a specific thing you want to build is a good substitute"
},
{
"start": 613.38,
"end": 619.78,
"text": " Keep making things until you've made something you're proud enough a proud of enough to show off in an interview by the time you've built a few"
},
{
"start": 619.78,
"end": 624.26,
"text": " Things you'll start developing the taste you need to make that determination of what's quote unquote good enough"
},
]