TSUKUMOのマルチGPUパソコンWA9J-X211/XTにUbuntu Server 22.04とVOICEVOX Engineを導入する
POSTED BY
2024-03-26
2024-03-26
TSUKUMOのマルチGPUパソコンWA9J-X211/XTにUbuntu Server 20.04.2 LTSを導入する【1】
TSUKUMOのマルチGPUパソコンWA9J-X211/XTにUbuntu Server 20.04.2 LTSを導入する【2】
VOICEBOXはオープンソースの音声合成ソフトウェアであり、NVIDIAのGPUを積んでいるパソコンだとより早く動く(らしい)。
前回まででLinuxであるUbuntuをセットアップしてしまっているので、PythonからAPIを介して合成エンジンを呼びたいと思っていたところ、すでにLinux版が存在するので早速導入してみる。
https://github.com/VOICEVOX/voicevox_engine/releases/tag/0.18.0
上記のページから、Linux + GPU版= voicevox_engine-linux-nvidia-0.18.0.7z.001 を取得する。
wget https://github.com/VOICEVOX/voicevox_engine/releases/download/0.18.0/voicevox_engine-linux-nvidia-0.18.0.7z.001
使用するパッケージをインストール
sudo apt install p7zip-full libsndfile1
解凍
7z x voicevox_engine-linux-nvidia-0.18.0.7z.001
linux-nvidiaへ移動し、runを確認。
cd linux-nvidia ./run --help
起動する。WebからAPIテストをしたいので、cors_policy_modeをallとしている。
./run --host 0.0.0.0 --use_gpu --cors_policy_mode all
コンソールでちゃんと起動に成功し、Web APIのドキュメントにアクセスできればOK。このマシンのIPが172.21.16.39なら、ブラウザから
http://172.21.16.39:50021/docs
と打ってAPIのテストページが出ればOK。
PythonからAPIを呼ぶ
以下のようなコードを書く。
Python | voicevox_engine_api_test.py | GitHub Source |
import requests import json URL = 'http://172.21.16.39:50021/' TEXT = 'これはテストです。' SPEAKER = 0 SAVED_FILE = './test.wav' # make synthesis query response = requests.post(URL + 'audio_query', params = {'text':TEXT, 'speaker':SPEAKER}) query_data = response.json() print(query_data) response = requests.post(URL + 'synthesis', params = {'speaker':SPEAKER, 'enable_interrogative_upspeak':'true'}, data = json.dumps(query_data)) print(response.status_code) with open(SAVED_FILE, 'wb') as saved_file: saved_file.write(response.content)
audio_queryで合成用クエリを作成し、それをsynthesisに渡して合成実行、結果がバイナリWAVで帰るので、ファイルに保存。
python3 voicevox_engine_api_test.py {'accent_phrases': [{'moras': [{'text': 'コ', 'consonant': 'k', 'consonant_length': 0.07232547551393509, 'vowel': 'o', 'vowel_length': 0.05971287190914154, 'pitch': 5.585086822509766}, {'text': 'レ', 'consonant': 'r', 'consonant_length': 0.03742808848619461, 'vowel': 'e', 'vowel_length': 0.0778321698307991, 'pitch': 5.685544967651367}, {'text': 'ワ', 'consonant': 'w', 'consonant_length': 0.052048780024051666, 'vowel': 'a', 'vowel_length': 0.0848769024014473, 'pitch': 5.816624641418457}], 'accent': 3, 'pause_mora': None, 'is_interrogative': False}, {'moras': [{'text': 'テ', 'consonant': 't', 'consonant_length': 0.061835877597332, 'vowel': 'e', 'vowel_length': 0.0792454406619072, 'pitch': 5.916571617126465}, {'text': 'ス', 'consonant': 's', 'consonant_length': 0.028420621529221535, 'vowel': 'U', 'vowel_length': 0.059678249061107635, 'pitch': 0.0}, {'text': 'ト', 'consonant': 't', 'consonant_length': 0.06472935527563095, 'vowel': 'o', 'vowel_length': 0.0627739205956459, 'pitch': 5.844776630401611}, {'text': 'デ', 'consonant': 'd', 'consonant_length': 0.05031651258468628, 'vowel': 'e', 'vowel_length': 0.0876912847161293, 'pitch': 5.58236837387085}, {'text': 'ス', 'consonant': 's', 'consonant_length': 0.07036545127630234, 'vowel': 'U', 'vowel_length': 0.11378927528858185, 'pitch': 0.0}], 'accent': 1, 'pause_mora': None, 'is_interrogative': False}], 'speedScale': 1.0, 'pitchScale': 0.0, 'intonationScale': 1.0, 'volumeScale': 1.0, 'prePhonemeLength': 0.1, 'postPhonemeLength': 0.1, 'outputSamplingRate': 24000, 'outputStereo': False, 'kana': "コレワ'/テ'_ストデ_ス"} 200
カレントにtest.wavができていて、つくよみちゃんの声で再生されれば成功。
Android
iPhone/iPad
Flutter
MacOS
Windows
Debian
Ubuntu
CentOS
FreeBSD
RaspberryPI
HTML/CSS
C/C++
PHP
Java
JavaScript
Node.js
Swift
Python
MatLab
Amazon/AWS
CORESERVER
Google
仮想通貨
LINE
OpenAI/ChatGPT
IBM Watson
Microsoft Azure
Xcode
VMware
MySQL
PostgreSQL
Redis
Groonga
Git/GitHub
Apache
nginx
Postfix
SendGrid
Hackintosh
Hardware
Fate/Grand Order
ウマ娘
将棋
ドラレコ
※本記事は当サイト管理人の個人的な備忘録です。本記事の参照又は付随ソースコード利用後にいかなる損害が発生しても当サイト及び管理人は一切責任を負いません。
※本記事内容の無断転載を禁じます。
※本記事内容の無断転載を禁じます。
【WEBMASTER/管理人】
自営業プログラマーです。お仕事ください!ご連絡は以下アドレスまでお願いします★
☆ServerNote.NETショッピング↓
ShoppingNote / Amazon.co.jp
☆お仲間ブログ↓
一人社長の不動産業務日誌
【キーワード検索】
【最近の記事】【全部の記事】
インクルードパスの調べ方【Git】特定ファイルを除外する.gitignore
【Ubuntu/Debian】NVIDIA関係のドライバを自動アップデートさせない
【Python】Spacyを使用して文章から出発地と目的地を抜き出す
HomeBrewでApache2を入れて自動起動つきで動かしPHPモジュールと連携する
macOSに標準付属のApacheを自動起動つきで動かす
HomeBrewでPostgreSQLを入れて自動起動つきで動かす
Windows11でSSHポートフォワードでSamba(139)ポートをbindできないエラー
システムで予約済みのパーティションを更新できませんでした このPCは現在Windows11のシステム要件を満たしていません
ソースからインストールしたPHPにPDO版MySQLとPostgreSQLを組み込む
【人気の記事】【全部の記事】
進研ゼミチャレンジタッチをAndroid端末化する【Windows10】リモートデスクトップ間のコピー&ペーストができなくなった場合の対処法
Windows版Google Driveが使用中と言われアンインストールできない場合
【C/C++】小数点以下の切り捨て・切り上げ・四捨五入
Windows11+WSL2でUbuntuを使う【2】ブリッジ接続+固定IPの設定
LinuxからWindowsの共有フォルダをマウントする
【MinGW】Windowsでgcc/g++コンパイラを使って開発する
【Apache】サーバーに同時接続可能なクライアント数を調整する
Googleスプレッドシートを編集したら自動で更新日時を入れる
VirtualBoxの仮想マシンをWindows起動時に自動起動し終了時に自動サスペンドする
【カテゴリーリンク】
Android
iPhone/iPad
Flutter
MacOS
Windows
Debian
Ubuntu
CentOS
FreeBSD
RaspberryPI
HTML/CSS
C/C++
PHP
Java
JavaScript
Node.js
Swift
Python
MatLab
Amazon/AWS
CORESERVER
Google
仮想通貨
LINE
OpenAI/ChatGPT
IBM Watson
Microsoft Azure
Xcode
VMware
MySQL
PostgreSQL
Redis
Groonga
Git/GitHub
Apache
nginx
Postfix
SendGrid
Hackintosh
Hardware
Fate/Grand Order
ウマ娘
将棋
ドラレコ