ゆっくりボイスの SofTalk を CLI から使う

ゆっくりしていってね!

目次

ゆっくりボイスに興味ニキ

YouTube でゆっくり解説動画を見るようになって久しい。政治や軍事系、時事ネタには全く興味がないので、僕が見ているのは PC、健康、科学、宇宙、歴史系のチャンネルが多い。あとは「クソゲー発掘隊」や「Backrooms 解説」系、GTAV の実況もちょっと見たりするかな。

念のため「ゆっくり解説」とは何か説明しておくと、

  1. 東方 Project」というシューティングの同人ゲームがある (1996年頃より)
  2. それに登場するキャラクターを利用した「ゆっくりしていってね!!!」という AA・ミーム・派生キャラクターが2ちゃんねる掲示板を中心に誕生・発展する (2007・2008年頃より)
  3. MUGEN」という同人格闘ゲームに「ゆっくり」派生キャラが登場し、その際に「AquesTalk」ライブラリによる合成音声が当てがわれ「ゆっくりのキャラ = AquesTalk の合成音声ボイス」というイメージが定着する
  4. 以後、ゲーム実況や解説動画に「ゆっくりのキャラ画像」と「AquesTalk によるボイス」を利用した「ゆっくり実況」「ゆっくり解説」といった動画が発展してきた

…という流れである。と言いながら、僕は東方も MUGEN も全然知らなかったので、今調べながら書いたw。要は同人ゲームに登場するキャラクターを元にした三次派生ぐらいのミームである。

ココ最近は動画クリエイター達がこの「ゆっくり」を活用していて、YouTube で爆発的にゆっくり動画が増えている。作者本人の顔や声を晒さなくても良いという点や、キャラ・音声ともに権利関係が整理されてきているので、匿名性を多少保ったまま収益化を狙えるようだ。ただ、YouTube 側からは「自動生成された価値の低いコンテンツ」とみなされて収益化を剥奪されることも多いようで、収益化が難しい側面もあるらしい。

…さて、僕は完全に見る専で詳しいことは知らないのだが、ゆっくりのボイスはどの動画でも同じボイスであるために安定して聞けて、ラジオ感覚で流すにはもってこいなのである。そこで、できれば自分でも任意のテキストをゆっくりボイスで読み上げさせたりしてみたいなーと思ったのが、今回の話。

ゆっくりボイスのライセンスと関連フリーソフト

ゆっくりボイスの大元は、前述のとおり「AquesTalk」という合成音声ライブラリ、古い言い方をすれば「Text-To-Speech」のライブラリである。大きく分けてバージョン1・2・10の3種類が存在しており、制限つきのフリーの評価版であれば、AquesTalk ライブラリを公式サイトから直接ダウンロードして利用できる。

ただ、「ライブラリ」というだけあって、ダウンロードできるのは .dll ファイルだったりする。実際に発話させるにはこのライブラリを呼び出すためのプログラミングをしないといけない。

そこで、手軽に喋らせるためによく使われるのが、この「AquesTalk」のライブラリを内包した、「棒読みちゃん」や「SofTalk」といったフリーソフトである。

「棒読みちゃん」は、旧ライセンス形態の AquesTalk 1 系を内包している。

「SofTalk」の方は、旧ライセンスの AquesTalk 1 の他、2、10 系も内包しており、より多くの種類で発話させられる。

ちなみに、「ゆっくり動画」の製作に特化した「ゆっくり Movie Maker」なるソフトもあるようだ (使ったことないが)。

SofTalk を CLI から呼び出す

「棒読みちゃん」と「SofTalk」はそれぞれコマンドラインからの呼び出しができるようで、今回は SofTalk を Windows コマンドプロンプト・PowerShell から呼び出して使ってみた。

まずは公式サイトより SofTalk 本体をダウンロードし、任意の場所に配置しておく。

まずは SofTalk.exe を普通に起動し、ソフト自体が正常に使えることを確認しておこう。

そしたらコマンドプロンプトもしくは PowerShell を開き、SofTalk.exe が存在するディレクトリに移動し、次のように実行する。

.\SofTalk.exe /x:1 /w:やあ
.\SofTalk.exe /close_now

1行目で発話し、2行目でプロセスを終了している。

1行目は /x:1 でウィンドウを非表示にし、/w: 以降で指定した文字列を読み上げさせている。声質の設定や読み上げ速度の設定などもオプションでできるので、詳しくは SofTalk のヘルプファイル (help.chm) を見てみてほしい。他のオプションを指定する際、/w: オプションを最後に書かないと、オプションの文字列まで読み上げられてしまうことに注意。

SofTalk をコマンドラインから呼び出すと、SofTalk.exe のプロセスがバックグラウンドに残りっぱなしになる。いくつか続けて発話させる場合は、1行目相当のコマンドを複数回叩けばよく、SofTalk.exe のプロセスは1つだけで動作し続ける (複数起動することはない)。

しかし逆に、SofTalk.exe プロセスは自動的に終了することはないため、2行目の /close_now オプション指定によりプロセスを終了させている。1回だけ発話させて終わる場合は、この2つのコマンドを連続して叩けばよいだろう。コマンドを1つにまとめて発話→プロセス終了を1回で行うことはできないので注意。

GitBash (Git SDK) からも呼び出してみたかったのだが、1行目のコマンドを cmd /c で呼び出したあと、プロンプトが戻ってこなくてうまくいかなかった。

SofTalk.exe さえ呼び出せれば発話させられることが分かったので、WSH で Call してみたりとか、Node.js の child_process.exec のような外部プロセス呼び出しを使えば、プログラム中から実行できそうだ。

今回は以上。