這是一個 Python 庫和命令列工具,可協助您在音訊檔案(wav 格式)中搜尋單字或短語。它也建立在初始搜尋能力的基礎上,並提供了一些[所謂的]高級搜尋能力!
若要閱讀文檔,請造訪此處。
打開終端機並輸入:
pip 安裝 SimpleAudioIndexer
安裝詳細資訊可以在此處的文件中找到。
如果您無法進行本機安裝或使用 Windows 系統,則儲存庫中包含一個 dockerfile。
打開終端機並輸入:
pip 卸載 SimpleAudioIndexer
然而,卸載 sox 取決於您使用的是 Linux 還是 Mac 系統。欲了解更多信息,請訪問此處。
假設你有這個音檔:
為了簡單起見,將其下載到空目錄。我們將該目錄稱為 SRC_DIR,並將該音訊檔案的名稱稱為small_audio.wav。
您可以透過以下方式進行搜尋。
打開終端機並輸入。
$ sai --mode "ibm" --username_ibm 使用者名稱 --password_ibm 密碼 --src_dir SRC_DIR --搜尋“被叫” {'叫': {'small_audio.wav': [(1.25, 1.71)]}}
將 USERNAME 和 PASSWORD 替換為您的 IBM Watson 憑證,並將 SRC_DIR 替換為您剛剛準備的目錄的絕對路徑。
與上面一樣,輸出將是一個字典,其中包含查詢、查詢出現的文件以及該查詢的所有內容(從第二個開始,到第二個結束)。
請注意,所有命令對於其他引擎(即 Pocketsphinx)統一工作,例如上面的命令可以輸入為:
$ sai --mode "cmu" --src_dir SRC_DIR --search "lives" {'lives': {'small_audio.wav': [(3.12, 3.88)]}}
它將使用 Pocketsphinx 而不是 Watson 來取得時間戳記。請注意,Pocketsphinx 的品質/準確性遠低於 Watson。
您也可以匹配正規表示式模式,而不是搜尋單字,例如:
$ sai --mode ibm --src_dir SRC_DIR --username_ibm 使用者名稱 --password_ibm 密碼 --regexp " [az][az] " {u' in ': {'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 方法來搜尋所有音訊檔案中的查詢清單:
最後,您可以進行正規表示式搜尋!
>> > print ( indexer . search_regexp ( pattern = "[A-Z][^l]* " )
{ u'Americans are ca' : { 'small_audio.wav' : [( 0.21 , 1.71 )]}}
也實現了更多功能。有關詳細說明,請閱讀此處的文件。
如果您想貢獻程式碼或想法、提交錯誤請求或提供回饋,請造訪貢獻文件。
另請參閱該項目的貢獻者清單。
該項目已獲得 Apache v2.0 許可證的許可 - 有關更多詳細信息,請參閱許可證文件。