type
status
date
slug
summary
tags
category
icon
password
OpenAI Text to Speech (TTS) 能方便地将文字转换为语音,可以用来给 PPT 讲解视频配音。然而,文字转语音的结果和视频的进度的一致性是一个问题。下面简单介绍我的解决方案。

1. 将视频文稿格式化

用你的方式写出视频的文稿。为了方便将音频和视频对齐,也是为了避免超出 4096 个 token 的限制,最好是将文稿分成若干小段。例如,每页 PPT 或者每个段落都可以作为一个小段。假设将文稿保存到了 content 数组中,其中 content[i] 表示第 i 段文稿的字符串。

2. OpenAI TTS API 的使用

OpenAI TTS API 的使用非常简单,只需要调用 client.audio.speech.create 方法即可。下面是一个简单的例子,将 content 中的内容分段保存在 speech_{idx}.mp3 中:
通过 voice 参数,可以选择 alloy, echo, fable, onyx, nova 以及 shimmer 这几种不同的声音。model 参数可选 tts-1tts-1-hd,前者质量较低但速度较快,后者质量较高但速度较慢。

3. 合并音频,录制 PPT 讲解视频

为了确保音频和视频同步,我们先把所有的音频合并成一个音频文件,然后再根据音频的速度和节奏录制视频。

合并音频

录制视频

播放 combined_audio.mp3,根据音频播放 PPT,同时录制屏幕,这样语音和文字就对上了。

4. 优化音视频对齐

通常而言,音频和视频的对齐是不完美的,这时候可以用剪映等软件,把前面得到的各个音频切片手动和视频对齐,进行精细的调整。这样,我们就得到了一段完美对齐的视频 ^_^
在导出视频时,可以用 ffmpeg 高质量地压缩视频:
 
WSL2如何解决clash代理问题Brain Teaser 两则