AutoCut は、動画の字幕を自動的に生成します。 次に、保持する必要がある文を選択し、AutoCut はビデオ内の対応するクリップをトリミングして保存します。 あなたは、ビデオ編集ソフトウェアを使用する必要はありません、あなただけのカットを完了するためにテキストファイルを編集する必要があります。
録画したビデオがこのフォルダに配置されている場合。 その後、実行します
2022-11-04/
autocut -d 2022-11-04
ヒント: OBS ビデオ画面を使用している場合は、スペースを変更できます。 その後、ビデオファイルは、日付が付いたフォルダに配置されます。
设置->高级->录像->文件名格式/%CCYY-%MM-%DD/%hh-%mm-%ss
AutoCut は、このフォルダ内のビデオのキャプション抽出とカットを継続します。 たとえば、ビデオ録画を完了し、保存したとします。 AutoCut が生成されます。 保持する必要がある文を選択すると、AutoCut によって切り取られ、結果をプレビューするために生成されます。
11-28-18.mp4
11-28-18.md
11-28-18_cut.mp4
11-28-18_cut.md
任意の Markdown エディタを使用できます。 たとえば、VS Code と Typora をよく使います。 次の図は、Typora を使用して編集されています。
11-28-18.md
すべて完了したら、スプライスが必要なビデオを選択すると、AutoCut は対応するキャプション ファイルを出力します。
autocut.md
autocut_merged.mp4
まず、Python パッケージをインストールします
pip install git+https://github.com/mli/autocut.git
git clone https://github.com/mli/autocut cd autocut pip install .
pytorch は上記にインストールされます。 GPU を実行する必要があり、既定のインストールバージョンが一致しない場合は、最初に Pytorch をインストールできます。 Whipser のインストールに問題がある場合は、公式ドキュメントを参照してください。
# 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 Scoop (https://scoop.sh/) scoop install ffmpeg
まず、プロジェクトをローカルに複製します。
git clone https://github.com/mli/autocut.git
プロジェクトのルートに移動し、docker イメージを構築します。
docker build -t autocut .
次のコマンドを実行して docker コンテナーを作成し、直接使用できます。
docker run -it --rm -v E:\autocut:/autocut/video autocut /bin/bash
ここで、ホストがビデオを格納するフォルダを仮想マシンにマップするディレクトリです。 は、ホストがビデオを保持するディレクトリであり、ホストがビデオを保持するディレクトリを変更する必要があります。
-v
E:\autocut
/autocut/video
E:\autocut
GPU アクセラレーションを使用するには、ホストに Nvidia のグラフィックス カードが必要で、適切なドライバがインストールされている必要があります。 次に、プロジェクトのルートディレクトリで、次のコマンドを実行して docker イメージを構築します。
docker build -f ./Dockerfile.cuda -t autocut-gpu .
GPU アクセラレーションを使用する場合は、docker コンテナーを実行するときにパラメーターを追加する必要があります。
--gpus all
docker run --gpus all -it --rm -v E:\autocut:/autocut/video autocut-gpu
.srt
.md
autocut -t 22-52-00.mp4
転写品質に満足できない場合は、例えば、より大きなモデルを使用することができます
autocut -t 22-52-00.mp4 --whisper-model large
デフォルトは. より良いモデルは、合計ですが、より良い速度のためにGPUを使用することをお勧めします。 また、より高速な和を使用することができますが、転写品質が低下します。
small
medium
large
tiny
base
ビデオに長い一時停止が多い場合は、余分な VAD モデルを使用してこれらのポーズを事前に識別し、タイムスタンプの認識をより正確にできます。
--vad
autocut -c 22-52-00.mp4 22-52-00.srt 22-52-00.md
デフォルトのビデオビットレートは、必要に応じて小さくすることができます。
--bitrate 10m
Markdown 形式のファイルに慣れていない場合は、ファイル名を入力せずにカットするときに、不要な文をファイルから直接削除することもできます。 です
srt
md
autocut -c 22-52-00.mp4 22-52-00.srt
ファイルのみの場合、編集が不便な場合は、次のようなコマンドを使用してファイルを生成し、ファイルを編集しますが、この時点では、などのプロンプト テキストなしで完全に比較されます。
srt
md
md
srt
no speech
autocut -m test.srt test.mp4
autocut -m test.mp4 test.srt # 支持视频和字幕乱序传入
autocut -m test.srt # 也可以只传入字幕文件
ファイルを直接編集できます (srt ファイルよりもコンパクトで、ビデオが埋め込まれている)。 次に、autocut -s 22-52-00.md 22-52-00.srtを使用して、更新されたキャプション 22-52-00_edited.srtを生成します。 ここでは、文が選択されているかどうかは無視され、すべて srt に変換されることに注意してください。
srt
autocut -s 22-52-00.srt
22-52-00_compact.srt
autocut -s 22-52-00_compact.srt
出力は文字化けですか?
AutoCut のデフォルト出力エンコーディングは. エディタもデコードを使用していることを確認します。 別のエンコード形式を指定できます。 ただし、キャプション ファイルを生成し、キャプション ファイル クリップを使用する場合は、エンコード形式が一貫している必要があります。 たとえば、使用します。
utf-8
utf-8
--encoding
gbk
autocut -t test.mp4 --encoding=gbk
autocut -c test.mp4 test.srt test.md --encoding=gbk
別のエンコード形式 (など) を使用してファイルを生成し、Typora で開くと、ファイルが Typora によって別のエンコード形式に自動的にトランスコードされ、ビルド時に指定したエンコード形式でクリップするときにエンコードがサポートされないアイソクログラム エラーが発生する可能性があります。 したがって、クリップ機能を使用する前に、Typora で編集した後、VSCode などで必要なエンコード形式に変更して保存できます。
gbk
md
GPU を使用して転写するにはどうすればよいですか。
Nvidia GPU があり、対応するバージョンの PyTorch がインストールされている場合、転写は GPU で行われます。 現在 GPU がサポートされているかどうかを確認するには、コマンドを使用します。
python -c "import torch; print(torch.cuda.is_available())"
それ以外の場合は、AutoCut をインストールする前に、対応する GPU バージョン PyTorch を手動でインストールできます。
GPU を使用して誤って表示するには不十分です。
whisper のビッグ モデルには、GPU のメモリが必要です。 十分にメモリが存在していない場合は、例えば、小さいモデルを使用することができます。 それでも大きなモデルを使用する場合は、CPU を強制的に使用できます。 たとえば、
small
--device
autocut -t 11-28-18.mp4 --whisper-model large --device cpu
pipを使用してインストールできますか?
AutoCut の依存 whisper は PyPI でパッケージをリリースしていないため、現時点ではこの方法でのみリリースできます。 困っている学生は、whisper モデルが huggingface hub で直接ダウンロードできるかどうかを確認し、whisper パッケージの依存関係から解放できます。
pip install git+https://github.com/mli/autocut.git
ここでは、貢献を歓迎するフェタチュレを行うにはいくつかある。
autocut
│ .gitignore
│ LICENSE
│ README.md # 一般新增或修改需要让使用者知道就需要对应更新 README.md 内容
│ setup.py
│
└─autocut # 核心代码位于 autocut 文件夹中,新增功能的实现也一般在这里面进行修改或新增
│ cut.py
│ daemon.py
│ main.py
│ transcribe.py
│ utils.py
└─ __init__.py
安装依赖开始安装这个项目的需要的依赖之前,建议先了解一下 Anaconda 或者 venv 的虚拟环境使用,推荐使用虚拟环境来搭建该项目的开发环境。
具体安装方式为在你搭建搭建的虚拟环境之中按照上方安装步骤进行安装。
为什么推荐使用虚拟环境开发?
一方面是保证各种不同的开发环境之间互相不污染。
更重要的是在于这个项目实际上是一个 Python Package,所以在你安装之后 AutoCut 的代码实际也会变成你的环境依赖。
因此在你更新代码之后,你需要让将新代码重新安装到环境中,然后才能调用到新的代码。
开发
- 代码风格目前遵循 PEP-8,可以使用相关的自动格式化软件完成。
-
utils.py
主要是全局共用的一些工具方法。
-
transcribe.py
是调用模型生成srt
和md
的部分。
-
cut.py
提供根据标记后md
或srt
进行视频剪切合并的功能。
-
daemon.py
提供的是监听文件夹生成字幕和剪切视频的功能。
-
main.py
声明命令行参数,根据输入参数调用对应功能。
开发过程中请尽量保证修改在正确的地方,以及合理地复用代码,
同时工具函数请尽可能放在
utils.py
中。
代码格式目前是遵循 PEP-8,变量命名尽量语义化即可。
在开发完成之后,最重要的一点是需要进行测试,请保证提交之前对所有与你修改直接相关的部分以及你修改会影响到的部分都进行了测试,并保证功能的正常。
目前使用
GitHub Actions
CI, Lint 使用 black 提交前请运行 black
。
提交
- commit 信息用英文描述清楚你做了哪些修改即可,小写字母开头。
- 最好可以保证一次的 commit 涉及的修改比较小,可以简短地描述清楚,这样也方便之后有修改时的查找。
- PR 的时候 title 简述有哪些修改, contents 可以具体写下修改内容。
- run test
pip install pytest
then pytest test
- run lint
pip install black
then black .