将音频文件转录到.srt
substream的Python项目详细描述
子流
使用word timings from将音频文件转录为.srt字幕格式 google的语音到文本api。
要求:
- 一个谷歌账户,signed up for cloud。
安装:
pip install substream
云设置:
Create a new service account 为一个新的项目专门为您的识别工作。它一定有 以下权限:
- 云语音服务代理
- storage admin或
- storage object viewer如果向脚本提供
gs://
uri。
您可以将位置设置为在中下载的.json凭据文件。 当前环境,如:
exportGOOGLE_APPLICATION_CREDENTIALS=/path/to/cloud_credentials.json
(或)您可以在substream命令之前设置它,例如:
GOOGLE_APPLICATION_CREDENTIALS=/path/to/cloud_credentials.json substream ...
运行时,将创建一个临时bucket,上载文件,并 完成或出错时,a context manager 确保删除bucket。
请小心使用这些凭据,因为云资源可能很昂贵, 所以,如果你真的储存了它们,一定要把它们安全地储存起来,并且确保 项目存储桶将被手动删除,即使应用程序报告它们已经 已成功删除。
完全使用:
usage: substream [-h] -i INPUT -o SRT_FILENAME [--language CODE][-v] Transcribes an audio file or .jsonl dump to .srt using the Google Cloud Speech-to-Text API optional arguments: -h, --help show this help message and exit -i INPUT, --input INPUT mono audio file (flac, opus, 16 bit pcm)(or) gs:// uri to audio file (or) intermediate .jsonl dump (default: None) -o SRT_FILENAME, --output SRT_FILENAME .srt filename (default: None) --language CODE https://cloud.google.com/speech-to-text/docs/languages (default: en-US) -v, --verbose extra logging (default: False)
本地文件使用示例:
substream -v -i test.flac -o test.srt --language en-US
使用uri的示例:
substream -v -i gs://my-bucket/test.flac -o test.srt
正在卸载:
pip uninstall substream
常见问题解答
为什么是长时间运行的api而不是流式api?
长时间运行的api更准确。
什么是.jsonl文件?
文件中的每一行都是一个包含json表示的字符串 一个词的开始和结束时间。此程序的更高版本 可以接受.jsonl文件以更好的方式格式化句子 必须重新运行音频转录。
已知问题:
“文字墙”是由人们不间断地说话造成的。一些 字幕可能必须使用.srt编辑器手动拆分。
说话人识别在长时间运行中当前被破坏 用于长文件的api,因此完全禁用了对此的拆分。 (这加剧了上述问题)
当前长时间运行的API未实现进度报告。