นี่คือไลบรารี Python และเครื่องมือบรรทัดคำสั่งที่ช่วยคุณค้นหาคำหรือวลีภายในไฟล์เสียง (รูปแบบ wav) มันยังสร้างขึ้นจากความสามารถในการค้นหาเบื้องต้นและให้ [ที่เรียกว่า] ความสามารถในการค้นหาขั้นสูง!
หากต้องการอ่านเอกสาร โปรดไปที่นี่
เปิดเทอร์มินัลแล้วป้อน:
pip ติดตั้ง SimpleAudioIndexer
รายละเอียดการติดตั้งสามารถดูได้จากเอกสารที่นี่
มี dockerfile รวมอยู่ใน repo หากคุณไม่สามารถทำการติดตั้งแบบเนทีฟหรืออยู่บนระบบ Windows
เปิดเทอร์มินัลแล้วป้อน:
pip ถอนการติดตั้ง SimpleAudioIndexer
อย่างไรก็ตาม การถอนการติดตั้ง sox ขึ้นอยู่กับว่าคุณใช้ระบบ Linux หรือ Mac สำหรับข้อมูลเพิ่มเติม โปรดเยี่ยมชมที่นี่
สมมติว่าคุณมีไฟล์เสียงนี้:
ให้ดาวน์โหลดลงในไดเร็กทอรีว่างเพื่อความง่าย เราจะอ้างถึงไดเร็กทอรีนั้นว่า SRC_DIR และชื่อของไฟล์เสียงนี้คือ small_audio.wav
ต่อไปนี้คือวิธีที่คุณสามารถค้นหาได้
เปิดเทอร์มินัลแล้วเข้าไป
$ sai --mode "ibm" --username_ibm USERNAME --password_ibm PASSWORD --src_dir SRC_DIR --search "เรียกว่า" {'เรียกว่า': {'small_audio.wav': [(1.25, 1.71)]}}
แทนที่ USERNAME และ PASSWORD ด้วยข้อมูลประจำตัวของ IBM Watson และ SRC_DIR ด้วยพาธสัมบูรณ์ไปยังไดเร็กทอรีที่คุณเพิ่งเตรียมไว้
เช่นเดียวกับข้างต้น พจนานุกรมที่มีการสืบค้น ไฟล์ที่ปรากฏในนั้น และทั้งหมด (วินาทีเริ่มต้น วินาทีสิ้นสุด) ของการสืบค้นนั้น
โปรดทราบว่าคำสั่งทั้งหมดทำงานเหมือนกันสำหรับเอ็นจิ้นอื่นๆ (เช่น Pocketsphinx) ตัวอย่างเช่น คำสั่งด้านบนสามารถป้อนเป็น:
$ sai --mode "cmu" --src_dir SRC_DIR -- ค้นหา "ชีวิต" {'ชีวิต': {'small_audio.wav': [(3.12, 3.88)]}}
ซึ่งจะใช้ Pocketsphinx แทน Watson เพื่อรับการประทับเวลา โปรดทราบว่าคุณภาพ/ความแม่นยำของ Pocketsphinx นั้นต่ำกว่า Watson มาก
แทนที่จะค้นหาคำ คุณสามารถจับคู่รูปแบบ regex ได้ เช่น
$ sai --mode ibm --src_dir SRC_DIR --username_ibm USERNAME --password_ibm รหัสผ่าน --regexp " [az] [az] " {u' ใน ': {'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 ได้ หรือพูดว่าบางคำพลาดไปโดยสิ้นเชิง จากนั้นคุณสามารถระบุ Missing_word_tolerance เป็นต้น
สำหรับรายการทั้งหมด โปรดดูข้อมูลอ้างอิง 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 - ดูไฟล์ใบอนุญาตสำหรับรายละเอียดเพิ่มเติม