【发布时间】:2020-07-06 20:14:11
【问题描述】:
我正在做一个需要执行以下步骤的项目:
- 录制语音通话 (
.webm-file) - 使用
ffmpeg将webm文件拆分为块并将文件转换为wav - 使用
SpeechRecognition-library 和 Google Cloud API 转录块
我在转录准确性方面遇到了问题,想知道是否可以做些什么来改进它。当时我将原始文件分成 30 多个块。我认为可能存在一个问题,我可能会因为拆分而丢失单词,所以我也尝试过使用 60 秒以下的更长的块,但没有注意到准确性有任何提高。
阅读我决定设置r.energy_threshold = 4000 的speechRecognition 文档,我还尝试像这样动态设置energy_treshold:
with sr.AudioFile(name) as source:
r.dynamic_energy_threshold = True
r.adjust_for_ambient_noise(source, duration = 1)
audio = r.record(source)
我还测试了en-US 和en-GB,看看是否有一些区别,但没有我想要的那么多。该程序应该适用于北欧人说的英语。如果有人在为有口音的人选择正确的语言模型方面有经验,请告诉我。
这是ffmpeg命令用于将webm文件分成块:command = ['ffmpeg', '-i', filename, '-f', 'segment', '-segment_time', '30', parts_dir + outputname + '%09d.wav']
有什么我可以做得更好的吗?我想知道质量是否不够好,谷歌会因此而陷入困境?
主要问题是我从 Google 得到了不好的结果(很多错误的词),我想知道我是否可以做些什么。
【问题讨论】:
标签: python google-cloud-platform ffmpeg speech-recognition speech-to-text