هذه مكتبة Python وأداة سطر أوامر تساعدك في البحث عن كلمة أو عبارة داخل ملف صوتي (تنسيق wav). كما أنه يعتمد على قدرة البحث الأولية ويوفر بعض [ما يسمى] قدرات البحث المتقدمة!
لقراءة الوثائق، قم بزيارة هنا.
افتح محطة وأدخل:
نقطة تثبيت SimpleAudioIndexer
يمكن العثور على تفاصيل التثبيت في الوثائق هنا.
يوجد ملف dockerfile مضمن في الريبو إذا كنت غير قادر على إجراء تثبيت أصلي أو كنت تستخدم نظام Windows.
افتح محطة وأدخل:
نقطة إلغاء تثبيت SimpleAudioIndexer
ومع ذلك، فإن إلغاء تثبيت sox يعتمد على ما إذا كنت تستخدم نظام التشغيل Linux أو Mac. لمزيد من المعلومات، قم بزيارة هنا.
لنفترض أن لديك هذا الملف الصوتي:
قم بتنزيله إلى دليل فارغ للتبسيط. سنشير إلى هذا الدليل باسم SRC_DIR واسم الملف الصوتي هذا باسم Small_audio.wav.
وإليك كيف يمكنك البحث من خلاله.
افتح محطة وأدخل.
$ sai --mode "ibm" --username_ibm USERNAME --password_ibm PASSWORD --src_dir SRC_DIR --بحث "يُستدعى" {'يُستدعى': {'small_audio.wav': [(1.25، 1.71)]}}
استبدل USERNAME وPASSWORD ببيانات اعتماد IBM Watson الخاصة بك وSRC_DIR بالمسار المطلق إلى الدليل الذي قمت بإعداده للتو.
سيكون الناتج، كما هو مذكور أعلاه، قاموسًا يحتوي على الاستعلام، والملف (الملفات) الذي يظهر فيه وكل (البداية الثانية، النهاية الثانية) لهذا الاستعلام.
لاحظ أن جميع الأوامر تعمل بشكل موحد بالنسبة للمحركات الأخرى (أي Pocketsphinx)، على سبيل المثال يمكن إدخال الأمر أعلاه على النحو التالي:
$ sai - الوضع "cmu" --src_dir SRC_DIR --بحث عن "الحياة" {'حياة': {'small_audio.wav': [(3.12، 3.88)]}}
والذي سيستخدم Pocketsphinx بدلاً من Watson للحصول على الطوابع الزمنية. لاحظ أن جودة/دقة Pocketsphinx أقل بكثير من Watson.
بدلاً من البحث عن كلمة، يمكنك أيضًا مطابقة نمط التعبير العادي، على سبيل المثال:
$ sai --mode ibm --src_dir SRC_DIR --username_ibm USERNAME --password_ibm PASSWORD --regexp " [az] [az] " {ش' في': {'small_audio.wav': [(2.81، 2.93)]}، {u' إلى': {'small_audio.wav': [(1.71، 1.81)]}}
وكان ذلك نتيجة البحث عن كلمتين من حرفين. لاحظ أن نتائجك ستتطابق مع أي تعبيرات عادية اعتباطية.
يمكنك أيضًا حفظ وتحميل البيانات المفهرسة من البرنامج النصي لسطر الأوامر. لمزيد من المعلومات، قم بزيارة هنا.
لنفترض أن لديك هذا الملف
>> > from SimpleAudioIndexer import SimpleAudioIndexer as sai
بعد ذلك، يجب عليك إنشاء مثيل لـ sai
>> > indexer = sai ( mode = "ibm" , src_dir = "SRC_DIR" , username_ibm = "USERNAME" , password_ibm = "PASSWORD" )
يمكنك الآن فهرسة جميع الملفات الصوتية المتاحة عن طريق استدعاء الأسلوب Index_audio:
>> > indexer . index_audio ()
يمكن أن يكون لديك مولد بحث:
>> > searcher = indexer . search_gen ( query = "called" )
>> > print ( next ( searcher ))
{ 'Query' : 'called' , 'File Name' : 'small_audio.wav' , 'Result' : ( 1.25 , 1.71 )}
يوجد الآن عدد غير قليل من الوسائط التي تم تنفيذها لـ search_gen. لنفترض أنك تريد أن يكون بحثك حساسًا لحالة الأحرف (افتراضيًا ليس كذلك). أو، لنفترض أنك تريد البحث عن عبارة ولكن هناك فجوة زمنية ولم يلتقطها المفهرس بشكل صحيح، يمكنك تحديد Timing_error. أو لنفترض أن بعض الكلمات مفقودة تمامًا، فيمكنك تحديد تسامح_الكلمات_المفقودة وما إلى ذلك.
للحصول على القائمة الكاملة، راجع مرجع API هنا
لاحظ أنه يمكنك أيضًا استدعاء الأسلوب search_all للبحث عن قائمة الاستعلامات داخل جميع الملفات الصوتية:
أخيرًا، يمكنك إجراء بحث عن regex!
>> > print ( indexer . search_regexp ( pattern = "[A-Z][^l]* " )
{ u'Americans are ca' : { 'small_audio.wav' : [( 0.21 , 1.71 )]}}
هناك المزيد من الوظائف المنفذة. للحصول على شرح مفصل، اقرأ الوثائق هنا.
إذا كنت ترغب في المساهمة برمز أو أفكار، أو تقديم طلب خطأ أو تقديم تعليقات، تفضل بزيارة ملف المساهمة.
انظر أيضًا قائمة المساهمين في هذا المشروع.
تم ترخيص هذا المشروع بموجب ترخيص Apache v2.0 - راجع ملف الترخيص لمزيد من التفاصيل.