Ubuntuで音声付スライド動画作成（Google Slide + VoiceVox + Kdenlive）

# 1. はじめに

## 1.1. 動機

- 開発チームメンバに対して、ツール説明をするための解説動画を作ることになりました。
    - ただし、後にその動画は残るので、顔出し・生声は避けたいという思いがあります。
    - また、要望として、なるべくwebサービスは使わないこと、開発PC（Ubuntu）で作成できること、が求められています。
- 本記事では、上記を加味した音声付きスライド動画の作成方法についてまとめます。 
    - プログラマよりの簡素な作り方です。凝ったものを目指す場合は、youtubeや各種サイト等で紹介される動画作成方法をご参照ください。

## 1.2. 開発環境

※検証として、以下の仮想マシンを立てています。
- OS: Ubuntu 20.04
- CPU: Core(TM) i5-1145G7　(4コア分)
- RAM: 8GB
- Tool:
    - Google Slide (Google Workspaceのもの。スライド静止画作成で使用)
    - VoiceVox 0.10.4 (音声データ作成で使用)
    - Kdenlive 19.12.3 (スライド静止画と音声データの結合で使用)

## 1.3. 参考資料

- [Google Workspace](https://workspace.google.co.jp/intl/ja/)
    - 説明不要の神サービス。今回はスライド静止画の作成で使用します。
- [VoiceVox](https://voicevox.hiroshiba.jp/)
    - サイトでは、「無料で使える中品質なテキスト読み上げソフトウェア」を掲げていますが、大変優れた音声合成ソフトウェアです。神ツールです。利用規約に沿って活用させていただきます。
- [Kdenlive](https://kdenlive.org/en/)
    - Linuxで利用できる動画編集ソフトウェアです。軽快で使い勝手がよいです。
- [https://web-survivor.com/useful/git-error-curl/](https://web-survivor.com/useful/git-error-curl/)
    - VoiceVoxをインストーラからインストールすると「curl: (18) transfer closed with ...」に遭遇します。そのときの対処方法を参考にさせていただきました。
- [Linux で動画編集をしよう (Kdenlive)](https://eng-blog.iij.ad.jp/archives/2643)
    - Kdenliveでの動画編集の参考にさせていただきました。
- [How to Install KdenLive in Ubuntu 20.04](https://linuxhint.com/install_kdenlive_ubuntu/)
    - 基本的にKdenliveのインストールはコマンド一発ですが、OSのインストールの仕方によってはリポジトリを追加する必要があるので、詰まった場合はコチラを参照ください。

# 2. 準備：各ツールの整備

## 2.1. Google Workspace

- Googleアカウントを用意します。準備はおしまいです。

## 2.2. VoiceVox

- [VoiceVox](https://voicevox.hiroshiba.jp/)のトップページからLinux向けインストーラをダウンロードします。
    - 今回は、0.10.4であり、インストーラ名は「VOICEVOX-CPU.Installer.0.10.4.Linux.sh」となります。HOME以下の任意の場所に格納します。
- スクリプトに実行権を付与し、スクリプトを実行してインストールします。
    - インストーラ実行時に、足りないアプリケーションがあるとインストールを求めらるので、入れましょう。git, curl, 7z等のツールが必要です。
    - curl(18)エラーに遭遇した場合は、[https://web-survivor.com/useful/git-error-curl/](https://web-survivor.com/useful/git-error-curl/)で紹介される「post buffer」の設定値を修正しましょう。

<details><summary>インストールログ</summary><div>

```bash
$ ./VOICEVOX-CPU.Installer.0.10.4.Linux.sh 
+-+-+-+-+-+-+-+-+
|V|O|I|C|E|V|O|X|
+-+-+-+-+-+-+-+-+-+-+-+-+-+
        |I|n|s|t|a|l|l|e|r|
+-+-+-+-+-+-+-+-+-+-+-+-+-+
|f|o|r| |L|i|n|u|x|
+-+-+-+-+-+-+-+-+-+
[+] Checking installer prerequisites...
[-] 7z command: 7zr
[+] Checking runtime prerequisites...
[-] libsndfile: OK
[-] Install version: 0.10.4
[-] Install directory: /home/tomoyoshi/.voicevox
[+] Downloading https://github.com/VOICEVOX/voicevox/releases/download/0.10.4/linux-cpu-appimage.7z.txt...

(中略)

Everything is Ok        

Size:       408616761
Compressed: 406343136
[+] Dumping version...
[+] Creating uninstaller...
[+] Removing splitted archives...
[+] Removing VOICEVOX-CPU.AppImage.7z.001...
[+] Removing archive list (list.txt)...
[+] Extacting desktop entry...
squashfs-root/voicevox.desktop
squashfs-root/usr/share/icons/hicolor
squashfs-root/usr/share/icons/hicolor/0x0
squashfs-root/usr/share/icons/hicolor/0x0/apps
squashfs-root/usr/share/icons/hicolor/0x0/apps/voicevox.png
squashfs-root/voicevox.png
[+] Installing desktop entry...
[+] Installing icon...
[+] Registering file association...
[+] Updating file association database...
[+] Updating desktop file database...
The databases in [/usr/share/ubuntu/applications, /usr/local/share/applications, /usr/share/applications, /var/lib/snapd/desktop/applications] could not be updated.
```

</div></details>

- アプリアイコンができます。クリックするとVoiceVoxエディタ（＋処理サーバ）が起動します。

![voicevox-icon.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/624259/d229226a-2b5a-8637-6f29-c5df061a47f0.png)

## 2.3. Kdenlive

- aptを用いて、以下のコマンドでインストールします。

```bash
$ sudo apt install kdenlive
```

# 3. 音声付きスライド動画の作成

## 3.1. スライド静止画の作成

- Googleスライドでプレゼンテーション資料を作成します。
    - 次のステップで各ページの音声データを作成するので、各ページで何を話すか考えて作成します。
    - 音声データ作成では四国めたんを使う予定なので、クレジット「VOICEVOX:四国めたん」を記載します。
- 出来上がったら、各ページをexportしてpng画像を作成します。
    - 本記事では、以下の表紙と目次を作成しました。

![sample-slides.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/624259/d2ffa906-5055-743b-7ff4-207a0ddae48f.png)

## 3.2. 音声データの作成

- VoiceVoxで音声データを作成します。本記事では、四国めたんを使用します。
- エディタ画面は、テキスト入力エリアとアクセントやイントネーション等を編集するエリアに分かれています。テキストを入力後にこれらが自動設定されるので、適宜手動で修正していきます。
- 作成下データは、「1つ書き出し」からwavデータを出力できます。

![voicevox-capture.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/624259/3daadfc9-d4b6-fb8e-0e82-6c2f1b7cb797.png)

## 3.3. スライド静止画と音声データの結合

- Kdenliveを用いて結合します。
- 上記で作成したデータをKdenlive左側のエリアにドラッグ＆ドロップで登録します。
    - コピーが作成されるので、Kdenlive内でこれらを編集しても、元データが編集されることはありません。

![kdenlive-1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/624259/09eb88fd-b219-3231-e57e-71dc0291bedd.png)

- 実施することは、以下の通りです。
    - V◯の行に静止画を配置する。
    - A◯の行に音声データを配置する。スライドのどのタイミングから音声を流すかは音声データの開始位置で調整できます。
- 動画のテスト再生は、右側のプレビューエリアに（色が薄いですが）再生ボタンがあるので適宜確認できます。

![kdenlive-2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/624259/719c67bc-1963-a754-e8fd-5832028daecf.png)

- 保存は、中央付近の「Render」からできます。ここでは、mp4形式で動画を保存します。
    - 他にも色々あります。

![kednlive-3.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/624259/7985f6d2-dcfa-7247-2779-45c9df38cb03.png)

## 3.4. 作成した動画

- Githubにサンプルで作成したものをコミットしております。
    - コチラ: [https://github.com/tomoten-umino/sample-video](https://github.com/tomoten-umino/sample-video)

# 4.おわりに

- VoiceVoxが非常にすばらしいです。これは趣味としても大変ハマりそうです。
    - 正直にいえば、動機の大部分は「Text To Speechで遊びたかった」ところがあります。
- 動画編集については、まだまだ勉強することが多いです。今回の試作はものすごい初歩的なことしかできておりません。
- 動画については、WindowsならばPowerPointから動画作成する方法のほうが簡単です。PowerPointならばノート読み上げ機能もあります。