【问题标题】:Indexing audio to get timestamps for each word using python使用python索引音频以获取每个单词的时间戳
【发布时间】:2022-01-28 03:37:40
【问题描述】:

我有一个音频文件,我想获取每个单词的时间戳。我想知道每个人所说的话是在哪个时间段内。

(例如,如果一个音频文件说“我是一名医生”,我想知道在哪个瞬间说“我”,说“我”等等)

我想用 python 来做这件事。 我试过下面的代码。

from SimpleAudioIndexer import SimpleAudioIndexer as sai
indexer = sai(mode="ibm", src_dir="D:/Codes/Python/audio recognition",      
username_ibm="", password_ibm="")
indexer.index_audio(basename = "target.wav")
indexer.save_indexed_audio("{}/indexed_audio".format(indexer.src_dir))
indexer.load_indexed_audio("{}/indexed_audio.txt".format(indexer.src_dir))
print(indexer.get_timestamps())

但是我遇到了以下错误。

Traceback (most recent call last):
File "D:\Codes\Python\audio recognition\rec.py", line 5, in <module>
indexer.index_audio(basename = "target.wav")
File "C:\Users\Awais\AppData\Roaming\Python\Python37\site- 
packages\SimpleAudioIndexer\__init__.py", line 1108, in index_audio
self._index_audio_ibm(*args, **kwargs)
File "C:\Users\Awais\AppData\Roaming\Python\Python37\site- 
packages\SimpleAudioIndexer\__init__.py", line 928, in _index_audio_ibm
replace_already_indexed=replace_already_indexed)
File "C:\Users\Awais\AppData\Roaming\Python\Python37\site- 
packages\SimpleAudioIndexer\__init__.py", line 730, in _prepare_audio
self._filtering_step(basename)
File "C:\Users\Awais\AppData\Roaming\Python\Python37\site- 
packages\SimpleAudioIndexer\__init__.py", line 638, in _filtering_step
universal_newlines=True).communicate()
File "C:\Program Files (x86)\Microsoft Visual 
Studio\Shared\Python37_64\lib\subprocess.py", line 800, in __init__
restore_signals, start_new_session)
File "C:\Program Files (x86)\Microsoft Visual 
Studio\Shared\Python37_64\lib\subprocess.py", line 1207, in _execute_child
startupinfo)
FileNotFoundError: [WinError 2] The system cannot find the file specified

【问题讨论】:

    标签: python-3.x audio indexing speech-recognition


    【解决方案1】:

    从您的代码/错误中我可以看出您正在运行 Windows,但您在 src_dir 字符串中使用了正斜杠“/”。这不起作用,因为 Windows 在导航文件夹时使用反斜杠“\”。如: C:\Windows

    虽然许多基于 Unix 的系统使用正斜杠,如下所示: /home/Awais

    在您的代码中,您应该尝试将“/”更改为“\”,看看是否会有所不同。

    如果您打算在 Windows 和 Unix 系统上使用这个程序,您应该使用 python3 的“pathlib”来确保您的目录路径在任何一个操作系统上都可以工作。这是一个链接,您可以使用它来了解有关在 python3 中处理路径的更多信息:

    https://medium.com/@ageitgey/python-3-quick-tip-the-easy-way-to-deal-with-file-paths-on-windows-mac-and-linux-11a072b58d5f

    【讨论】:

    • 我试过单反斜杠 "\" ,双反斜杠 "\\" 和正斜杠,但似乎没有一个工作。每次我得到同样的错误。
    • 有没有其他方法可以做这个任务。
    • 另外两个可能有帮助的想法:1. src_dir 的路径中有一个空格,看看你是否可以(保存你的工作)并将你正在查看的目录重命名为“audio_recognition”。
    • 第二个想法是在 src_dir 的末尾添加一个尾随“\”,因为模块可能正在尝试加载“D:\Codes\Python\audio recognitiontarget.wav”而不是"D:\Codes\Python\音频识别\target.wav"
    • 您也可以添加from pathlib import Path,然后使用my_file = Path("/path/to/file/target.wav") if my_file.is_file(): ,然后再添加您的代码,因为如果达到那么远,系统就能够找到您的文件。
    猜你喜欢
    • 2020-03-24
    • 1970-01-01
    • 1970-01-01
    • 2019-02-09
    • 1970-01-01
    • 2018-12-08
    • 1970-01-01
    • 2018-05-24
    • 2022-10-16
    相关资源
    最近更新 更多