تم تصميم هذا الرمز لجعل عدد كبير من نصوص الهمس Openai قابلة للبحث بسهولة. لذلك يمكن للمرء أن يجد مقطعًا أو مصطلحًا معينًا يحدث وفي أي وقت في النص. ومع ذلك ، يجب أن تعمل مع أي مجلد من ملفات .vtt: النصوص غير المفتوحة فقط من البودكاست.
لقد استخدمت Whisper Openai لنسخ بودكاست التكنولوجيا العرضية ، وقمت بنشر موقع Front Web Engwer Live Engine هنا ، مدعوم من هذه الوحدة (على وجه التحديد SearchTranscripts ).
تحتوي هذه الوحدة على فئتين:
LoadTranscripts : هذا ينشئ قاعدة بيانات SQLite والجدول الافتراضي FTS5 من مجلد من ملفات transcript ( .vtt أو .json files). إنه ينشئ قطعًا أطول من النص (حوالي 300 كلمة لكل منهما) من شرائح النص القصير في الملف الأصلي من أجل جعل كتل النص قابلة للبحث. يحافظ على شرائح النص الفردية في قاعدة بيانات منفصلة.
SearchTranscripts : هذه فئة Python تستخدم قاعدة بيانات SQLite لإرجاع DataFrame Pandas لأعلى النتائج لاستعلام البحث.
بمجرد إنشاء قاعدة بيانات SQLite باستخدام LoadTranscripts ، يمكنك الوصول إلى قاعدة SearchTranscripts هذه عبر أي واجهة SQLite التي تحبها مثل DataSette و DBeaver وخط الأوامر و SQL Alchemy ، إلخ.
استنساخ وقرص مضغوط في الدليل الرئيسي لإعادة الريبو ، ثم قم بتشغيله:
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"')
لذلك ، قبل أن أدرك أن Whisper سيقوم بإنشاء ملف .VTT قياسي ، كنت أستخدم Python API مباشرة. يولد قائمة بقواميس بيثون. إنقاذ ذلك كما بدا JSON منطقيا في ذلك الوقت. أجد أن جهاز JSON يمكن قراءته بسهولة أكثر من .VTT ، ويمكن تحويله بسهولة إلى VTT ، لذلك ما زلت أؤيد هذا التنسيق الغريب إلى حد ما. يبدو هكذا:
[
{
"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"
},
]