问答社区
探索 Whisper-TikTok,这是一款创新的人工智能驱动工具强大功能
探索 Whisper-TikTok,这是一款创新的人工智能驱动工具,它利用Edge TTS、OpenAI-Whisper和FFMPEG的强大功能来制作引人入胜的 TikTok 视频。利用 OpenAI 的 Whisper 模型的功能,Whisper-TikTok 可以轻松地从提供的音频文件中生成准确的转录,为通过使用FFMPEG创建令人着迷的 TikTok 视频奠定了基础。此外,该程序无缝集成了Microsoft Edge 云文本转语音 (TTS) API,为视频提供充满活力的配音。选择 Microsoft Edge Cloud TTS API 的配音是一个深思熟虑的选择,因为它提供了显着的自然而真实的听觉体验,使其与众多 TikTok 视频中普遍存在的单调和人工画外音区分开来。
Streamlit 网络应用程序:
使用 Whisper-TikTok 非常简单:只需修改video.json即可。 JSON 文件包含以下字段:
series
: 系列名称。part
:视频的部分编号。text
:视频中要朗读的文字。outro
:视频中要说出的结尾文本。tags
:用于视频的标签。
总结一下程序的功能:
该程序配备了包含系列名称、视频零件号、视频文本和片尾文本等详细信息的结构化 JSON 数据集,可以编排包含所提供文本和片尾的视频的合成。随后,生成的视频将存储在指定的
output
文件夹中。网络应用程序(在线)
感谢 Streamlit 托管了一个 Web 应用程序,该应用程序在 HuggingFace 中公开可用,只需单击链接即可直接进入该 Web 应用程序。
https://huggingface.co/spaces/MatteoFasulo/Whisper-TikTok-Demo
本地安装
Whisper-TikTok 在配备Python 版本 3.8、3.9 和 3.11的 Windows 10、Windows 11 和 Ubuntu 23.04 系统上经过了严格的测试。
如果您想在本地运行 Whisper-TikTok,可以使用以下命令克隆存储库:
git clone https://github.com/MatteoFasulo/Whisper-TikTok.git
不过,还有一个适用于 Whisper-TikTok 的 Docker 镜像,可用于在容器化环境中运行该程序。
依赖关系
要简化必要依赖项的安装,请在终端中执行以下命令:
pip install -U -r requirements.txt
它还需要在您的系统上安装命令行工具FFMPEG ,大多数包管理器都可以提供该工具:
# on Ubuntu or Debian
sudo apt update && sudo apt install ffmpeg
# on Arch Linux
sudo pacman -S ffmpeg
# on MacOS using Homebrew (<https://brew.sh/>)
brew install ffmpeg
# on Windows using Chocolatey (<https://chocolatey.org/>)
choco install ffmpeg
# on Windows using Scoop (<https://scoop.sh/>)
scoop install ffmpeg
请注意,为了获得最佳性能,建议在使用 OpenAI Whisper 模型进行语音识别时配备 GPU。然而,该程序在没有 GPU 的情况下也可以运行,但运行速度会更慢。这种性能差异是因为 GPU 可以有效处理 fp16 计算,而 CPU 使用速度较慢的 fp32 或 fp64(取决于您的机器)。
Web-UI(本地)
要在本地运行 Web-UI,请在终端中执行以下命令:
streamlit run app.py --server.port=8501 --server.address=0.0.0.0
命令行
要从命令行运行该程序,请在终端中执行以下命令:
python main.py
CLI 选项
Whisper-TikTok 支持以下命令行选项:
python main.py [OPTIONS]
Options:
--model TEXT Model to use [tiny|base|small|medium|large] (Default: small)
--non_english Use general model, not the English one specifically. (Flag)
--url TEXT YouTube URL to download as background video. (Default: <https://www.youtube.com/watch?v=intRX7BRA90>)
--tts TEXT Voice to use for TTS (Default: en-US-ChristopherNeural)
--list-voices Use `edge-tts --list-voices` to list all voices.
--random_voice Random voice for TTS (Flag)
--gender TEXT Gender of the random TTS voice [Male|Female].
--language TEXT Language of the random TTS voice(e.g., en-US)
--sub_format TEXT Subtitle format to use [u|i|b] (Default: b) | b (Bold), u (Underline), i (Italic)
--sub_position INT Subtitle position to use [1-9] (Default: 5)
--font TEXT Font to use for subtitles (Default: Lexend Bold)
--font_color TEXT Font color to use for subtitles in HEX format (Default: #FFF000).
--font_size INT Font size to use for subtitles (Default: 21)
--max_characters INT Maximum number of characters per line (Default: 38)
--max_words INT Maximum number of words per segment (Default: 2)
--upload_tiktok Upload the video to TikTok (Flag)
-v, --verbose Verbose (Flag)
如果您使用 --random_voice 选项,请同时指定 --gender 和 --language 参数。如果您想使用非英语语音,您还需要指定 --non_english 参数,否则程序将使用英语模型。 Whisper模型会自动检测音频文件的语言并使用相应的模型。
使用示例
- 使用特定的 TTS 模型和语音生成 TikTok 视频:
python main.py --model medium --tts en-US-EricNeural
- 不使用英文模型生成 TikTok 视频:
python main.py --non_english --tts de-DE-KillianNeural
- 使用自定义 YouTube 视频作为背景视频:
python main.py --url https://www.youtube.com/watch?v=dQw4w9WgXcQ --tts en-US-JennyNeural
- 修改字幕字体颜色:
python main.py --sub_format b --font_color #FFF000 --tts en-US-JennyNeural
- 生成带有随机 TTS 语音的 TikTok 视频:
python main.py --random_voice --gender Male --language en-US
- 列出所有可用的声音:
edge-tts --list-voices
其他资源:
reddit2json是一个 Python 脚本,可将 Reddit 帖子 URL 转换为 JSON 文件,从而简化创建 video.json 文件的过程。该工具不仅可以转换 Reddit 链接,还提供使用 DeepL 翻译 Reddit 帖子内容以及通过自定义 OpenAI GPT 调用修改内容等功能。
reddit2json:直接将 Reddit 链接转换为 JSON
reddit2json 旨在处理 Reddit 帖子 URL 列表,将它们转换为可直接用于视频创建的 JSON 格式。该工具通过提供更快、更有效的方式来生成 video.json 文件,从而增强了视频创建过程。
这是 reddit2json 的详细自述文件,其中包括安装说明、设置 .env 文件、示例调用等。