mike-neckのブログ

Java or Groovy or Swift or Golang

今年やったこと

最近はみなブログを書かなくなっているようなので、儂もブログをほとんど書いていなかったけど、まあ、今年大したことやってないしやったことまとめるのは難しくないなと思ったので、そのまとめ。

読んだ本

技術書はほとんど読まなかったし、webの記事も必要なものしか読んでない。

というわけで、かろうじて何度も読んだのは『マスタリング Linux シェルスクリプト第2版』

この本の付録A3ブレース展開、A4パラメーター展開、A5プロセス置換、このあたりは何度も読み込んだ。

作ったもの

カードで買ったものを freee に登録するツール

Bashスクリプトを組んで作った。

普通にカードの明細を渡せばいいだけなのだが、カードは個人で買ったものと経費としてるものが混ざってて、それを消していくのが面倒くさい。

なので、フィルターしたものを登録するツールを作った。

このようなシーンで Bash を書くために、『マスタリング Linux シェルスクリプト第2版』 を何度も読み込むことになった。

voicepeak のファイルから動画を作るツール

いわゆるゆっくりムービーメーカーみたいな psd ファイルからキャラクターの口がパクパク動いて何かを喋っているものを作ろうとしてた。

これは昨年の JJUG CCC 2022 Fall にて合成音声で発表を作った時に、次のような課題に気がついたのではじめた。

  • 喋っているキャラクターが見えたほうが楽しいように思えたこと
  • もっと動画を楽に作れるようにしたいと思った
  • 喋っている内容が字幕として表示されていたほうが理解しやすいこと

また、懐的な要因として YMM を使うために Windows を買うのは痛いところもあったため、Macで動くものを作るしかないとなった。

ソフトウェアの構想としては次のとおり。

  1. voicepeak にてスクリプト(.vpp ファイル)と音声(.wav ファイル)を出力する。
  2. voicepeak のファイルから発音している母音と感情のパラメーターを使ってキャラクターの顔を特定し、口を動かしている動画(1)を作る。
  3. voicepeak のファイルからテキストを取得して(1)に字幕を差し込む
  4. 音声を(1)に当て込む
  5. 背景を明るい緑にする
  6. 3.と4.と5.をマージして1番上のレイヤーの動画(2)が完成。
  7. (2) をクロマキー処理したものと実際の素材動画をあわせて動画完成。

と考えて、夏頃に一旦完成した。

それでは簡単に作れるようになった動画を御覧ください。

youtu.be

この動画を作るのにかかった時間は、実際の料理を写真を撮影しながらおこなう 30 分と、スクリプトを書いた 30分と、写真・動画の微調整にかかった 30分の 1.5 時間ほど。

あとは、セリフのレパートリーとか動画の再利用が増えれば量産できるようになるだろうと思っていましたが、次のような不満もでてきました。

  • voicepeak のキャラクター「綾澄りりせ」または「綾澄しゅお」でしか動かせない
  • psd ファイルのレイヤーの組み合わせでより豊かな表情を出したい
  • 複数のキャラクターでわいわいできない
  • 何か最近は「ずんだもん」が流行りだったこと

上記の点の改造が今の作りでは難しいということが判ってきました。

また vpp ファイルから感情を取り出すことにこだわらなくても、 voicepeak の外から感情を表現する方が簡単(vpp ファイルから取り出すとキャラクターによって感情の名前が異なるので都度対応が必要)という初歩的なことにも気づきました。

以上からゼロベースで作り直すことにしました。

あとは料理してる最中に写真取るのが面倒というので続かなそうというのもある。

今現在作成中ですが、ツールの概要としては、

  1. voicepeak で音声(wav ファイル)と字幕のテキストファイルを生成する
  2. psd ファイルとどのような表情を作成するか設定した yaml ファイルと 1. から字幕付き口パク動画を作る
  3. iMovie で頑張って編集

という流れになりそう。もちろん棒読みさせたものに画像コンテンツをあわせる形になるので iMovie は画像をくっつけて、BGMつけるだけになると思う。

…といったものを Bash と Go で書いてる。

おわり