我有一个脚本,简单地转换视频为wav格式与特定的参数,然后转录其音频。
def video_to_wav(self):
mp4_video = os.path.join(self.dir, self.name + ".mp4")
if os.path.isfile(mp4_video):
subprocess.call("ffmpeg -i {0} -acodec pcm_s16le -ac 1 -ar 16000 {1}.wav".format(
mp4_video, os.path.join(self.dir, self.name)), shell=True, env=os.environ)
os.remove(mp4_video)
else:
raise SystemError
return self.name + ".wav"对于音频转录,PocketSphinx是我的选择,但我从语音识别库中使用它。
PocketSphinx是非常不准确的,除非音频有一个非常高的质量(它几乎不承认讲话的体面/良好的质量)。您可以看到,转换参数是专门为狮身人面像识别选择的:
ffmpeg -i {0} -acodec pcm_s16le -ac 1 -ar 16000 {1}.wav
我能做些什么来提高准确性吗?也许声学模型会调整语音识别的准确性?如果是这样的话,我如何在speech-recognition模块中使用它?
谢谢!
发布于 2020-06-19 18:04:06
提高PocketSphinx的准确度的最佳方法是缩小你希望它识别的词汇量范围。如果你能把它限制在几千个可能的单词上,它的准确性就会大大提高。CMU狮身人面像网站有一些工具可以帮助你做到这一点。
此外,由于您正在使用记录,您可以调整回溯和置信参数,以提供更慢,但更准确的结果。
PocketSphinx在文本输出中包含时间戳,当它对抄写的可信度较低时,还包括通知。您可以尝试运行两个进程--第一个过程使用一个较小的词汇表,然后在第二个过程中用更广泛的词汇表重新尝试那些低自信的时间间隔。然后,你将不得不合并文本转录。
发布于 2018-08-18 22:02:56
为了准确起见,您可以使用更高级的工具包,如卡尔迪。对于python,您可以检查https://github.com/gooofy/py-kaldi-asr。
https://stackoverflow.com/questions/51209028
复制相似问题