はじめに
AWS上でVOICEPEAKを利用したシステムを構築するに当たり、EC2へデプロイする方法が見当たらなかったため記す。
またVOICEPEAKの最新版ではCLIが利用可能であるが、体験版ではCLIが利用可能なバージョンではなく商用版で無いと確認出来ない。
本記事ではCLIが利用可能であることも確認した。
VOICEPEAKとは
『VOICEPEAK』は、最新のAI音声合成技術を搭載し手軽に読み上げさせることが可能な入力文字読み上げソフト
引用元:公式サイト
引用したようにText to Speech (TTS)ソフトの1つである。
ずんだもんで一躍有名となったVOICEVOXはOSSであるが、VOICEPEAKは有償ソフトウェアである。
他社製品ではA.I.VOICEが有償ソフトウェアである。
VOICEPEAKの動作環境
2024年12月7日現在、AHS社の公式ドキュメントでは以下の記載がある。
■OS
Windows 11/10 またはそれ以降 (64bit)
macOS 10.13 またはそれ以降
Ubuntu 20.04 またはそれ以降 (64bit)
A.I.VOICEの動作環境
2024年12月7日現在、エーアイ社の公式ドキュメントでは以下の記載がある。
OS
Windows 11
Windows 10 (64bit、バージョン 1607 以上)
Windows 8.1 (64bit)
※仮想環境は除きます。
そのため現時点では琴葉姉妹や紡乃世詞音をLinux環境で動かすことが出来ない。
とても悲しい。
EC2インスタンス作成
名前とタグ
任意の名前を指定する。
アプリケーションおよび OS イメージ (Amazon マシンイメージ)
Ubuntu 20.04以降のAMIを選択する。
ここではUbuntu Server 24.04 LTS (HVM), SSD Volume Type
を選択した。
インスタンスタイプ
ある程度良いスペックのものを選択する。
音声への変換処理時間にはマシンスペックに大きく依存するため、リアルタイム性を求める場合には良いインスタンスタイプを選択すべきである。
具体的にはAlexaではタイムアウトが8秒に設定されているため、VOICEPEAKを利用して対話システムを構築するには発話させる文章量と処理にかかる時間を勘案してインスタンスタイプを選択することが望まれる。
キーペア (ログイン)
SSHする必要があるため指定しておく。
ネットワーク設定
VPC, サブネット
お好きなVPC、サブネットを選択。
パブリックIPの自動割り当て
有効化
を選択。
ファイアウォール (セキュリティグループ)
SSHとRDPを許可する。ソースタイプはある程度絞ると安心。
ストレージを設定
公式ドキュメントによるとUbuntu Desktop Editionでは25GBのハードドライブ容量を推奨している。
そのため今回は25GiBを指定する。多いに越したことは無い。
EC2インスタンス接続
KeyPairの権限を変更した後にSSHする。
米印になっている箇所にはEC2のPublic IPを入れる。
$ chmod 400 "Voicepeak Server KeyPair.pem"
$ ll
total 12
drwxr-xr-x 2 * * 4096 Dec 7 15:30 ./
drwxr-xr-x 23 * * 4096 Dec 7 15:30 ../
-r-------- 1 * * 1674 Dec 7 15:20 'Voicepeak Server KeyPair.pem'
$ ssh -i "Voicepeak Server KeyPair.pem" ubuntu@ec2-*-*-*-*.ap-northeast-1.compute.amazonaws.com
最新のパッケージに更新
ubuntu@ip-192-168-1-207:~$ sudo apt update
ubuntu@ip-192-168-1-207:~$ sudo apt upgrade -y
ユーザ追加
ubuntu@ip-192-168-1-207:~$ sudo adduser voicepeak
info: Adding user `voicepeak' ...
info: Selecting UID/GID from range 1000 to 59999 ...
info: Adding new group `voicepeak' (1001) ...
info: Adding new user `voicepeak' (1001) with group `voicepeak (1001)' ...
info: Creating home directory `/home/voicepeak' ...
info: Copying files from `/etc/skel' ...
New password:
Retype new password:
passwd: password updated successfully
Changing the user information for voicepeak
Enter the new value, or press ENTER for the default
Full Name []:
Room Number []:
Work Phone []:
Home Phone []:
Other []:
Is the information correct? [Y/n]
info: Adding new user `voicepeak' to supplemental / extra groups `users' ...
info: Adding user `voicepeak' to group `users' ...
グループ追加
sudoが使えるようにsudoグループに追加。
ubuntu@ip-192-168-1-207:~$ sudo usermod -aG sudo voicepeak
ubuntu@ip-192-168-1-207:~$ groups voicepeak
voicepeak : voicepeak sudo users
xrdpインストール
RDPをするためにxrdpをインストールする。
ubuntu@ip-192-168-1-207:~$ sudo apt install xrdp
lightdmインストール
Display Managerをインストールする。
ubuntu@ip-192-168-1-207:~$ sudo apt install lightdm
GUIインストール
GUIをインストールする。
ubuntu@ip-192-168-1-207:~$ sudo apt install ubuntu-desktop
gdm3
を利用するか、lightdm
を利用するか選択肢が出るためlightdm
を選択する。
Installing the firefox snapで止まる
firefoxのインストールで止まってしまうことがある。
筆者の環境ではインスタンスタイプをt2.micro
からt3.large
に変更したところ進んだ。
(Reading database ... 130655 files and directories currently installed.)
Removing pulseaudio (1:16.1+dfsg1-2ubuntu10) ...
Selecting previously unselected package firefox.
(Reading database ... 130473 files and directories currently installed.)
Preparing to unpack .../000-firefox_1%3a1snap1-0ubuntu5_amd64.deb ...
=> Installing the firefox snap
==> Checking connectivity with the snap store
==> Installing the firefox snap
Progress: [ 0%] [.......................................................................]
RDPする
インスタンスのPublic IPを指定する。
作成したユーザとパスワードを入力する。
インストーラーを入手して実行する
Linux用(最新)
を選択してインストーラーを入手する。
実行権限を付与する。
voicepeak@ip-192-168-1-207:~$ cd Downloads/
voicepeak@ip-192-168-1-207:~/Downloads$ ll
total 16272
drwxr-xr-x 2 voicepeak voicepeak 4096 Dec 7 08:18 ./
drwxr-x--- 16 voicepeak voicepeak 4096 Dec 7 08:16 ../
-rw-rw-r-- 1 voicepeak voicepeak 16650424 Dec 7 08:18 voicepeak-downloader-linux64
voicepeak@ip-192-168-1-207:~/Downloads$ chmod +x voicepeak-downloader-linux64
voicepeak@ip-192-168-1-207:~/Downloads$ ./voicepeak-downloader-linux64
インストーラーに従って進める。
インストール完了。
CLIを使う
VOICEPEAKではCLIが利用可能であり、EC2にデプロイした場合でも問題なく利用可能。
voicepeak@ip-192-168-1-207:~/Voicepeak/Voicepeak-linux64/Voicepeak$ ./voicepeak -h
Voicepeak
Usage:
./voicepeak [OPTION...]
-s, --say Text Text to say
-t, --text File Text file to say
-o, --out File Path of output file
-n, --narrator Name Name of voice, check --list-narrator
-e, --emotion Expr Emotion expression, for example:
happy=50,sad=50. Also check --list-emotion
--list-narrator Print voice list
--list-emotion Narrator Print emotion list for given voice
-h, --help Print help
--speed Value Speed (50 - 200)
--pitch Value Pitch (-300 - 300)
ただし変換可能な文字数に上限がある点には注意が必要。
しかし、残念なことに140文字しか読み上げできないため長文には向かないようです。142文字以上になるとファイルを出力しなくなります。
引用元:https://polygonote.com/2024_0126_23520/
ちなみに体験版では以下のようにSegmentation fault
が発生する。
$ ./voicepeak -h
iconv_open is not supported
Segmentation fault