要生成srt字幕文件,您可以按照以下步骤进行操作:
1. 首先,您需要安装 `pydub` 和 `pysrt` 这两个库。可以使用以下命令进行安装:2. 导入所需的库:from pydub import AudioSegmentimport pysrt
3. 将音频文件加载为 `AudioSegment` 对象:audio = AudioSegment.from_file("3.mp3")
4. 遍历输出的结果,把每个单词的开始时间和结束时间转换为毫秒:subtitles = pysrt.SubRipFile()for i, (word, start, end) in enumerate(outputs): start_time = int(start * 1000) end_time = int(end * 1000) # 创建字幕项 subtitle = pysrt.SubRipItem(i+1, start=pysrt.srttime.Time(milliseconds=start_time), end=pysrt.srttime.Time(milliseconds=end_time), text=word) # 添加到字幕集合 subtitles.append(subtitle)
5. 将生成的字幕保存为srt文件:subtitles.save("output.srt", encoding='utf-8')
下面是完整的代码:from whisper_jax import FlaxWhisperPiplineimport jax.numpy as jnpfrom pydub import AudioSegmentimport pysrtpipeline = FlaxWhisperPipline("openai/whisper-tiny", dtype=jnp.float16)# transcribe and return timestampsoutputs = pipeline("3.mp3", task="transcribe", return_timestamps=True)audio = AudioSegment.from_file("3.mp3")subtitles = pysrt.SubRipFile()for i, (word, start, end) in enumerate(outputs): start_time = int(start * 1000) end_time = int(end * 1000) # 创建字幕项 subtitle = pysrt.SubRipItem(i+1, start=pysrt.srttime.Time(milliseconds=start_time), end=pysrt.srttime.Time(milliseconds=end_time), text=word) # 添加到字幕集合 subtitles.append(subtitle)# 保存字幕为srt文件subtitles.save("output.srt", encoding='utf-8')
执行完上述代码后,您将获得一个名为 `output.srt` 的srt字幕文件。
以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。 |