👄

DGX SparkでVOICEVOXを使った音声合成

に公開

VOICEVOXで音声合成

VOICEVOXに関しては以下です。
https://zenn.dev/karaage0703/articles/0187d1d1f4d139

DGX Sparkと初期設定に関しては以下実施してください。
https://zenn.dev/karaage0703/articles/985ddbd8fa15d3

最低限 uvのセットアップをしておいてください。

ハードウェア的には、オーディオ機能付きのモニタやUSBスピーカーなどをDGX Sparkに接続して、音が出るようにしておいてください。

uvの仮想環境構築

以下で仮想環境を構築します。

$ mkdir voicevox
$ cd voicevox
$ uv venv
$ source .venv/bin/activate

VoiceVoxのセットアップ

以下とほぼ同じです。この記事ではコマンドだけ羅列します。コピーしやすくするために、冒頭の$も省略します。詳細は以下記事を参照ください。CPU動作です。Armアーキテクチャだと多分GPU使うのは難しいと思います。

https://zenn.dev/karaage0703/articles/c616475d67a531

wget https://github.com/VOICEVOX/voicevox_core/releases/download/0.14.0/voicevox_core-0.14.0+cpu-cp38-abi3-linux_aarch64.whl
uv pip install voicevox_core-0.14.0+cpu-cp38-abi3-linux_aarch64.whl
wget http://downloads.sourceforge.net/open-jtalk/open_jtalk_dic_utf_8-1.11.tar.gz
tar xvzf open_jtalk_dic_utf_8-1.11.tar.gz

動作確認

以下コマンドで動作確認します。

uv pip install playsound3
from pathlib import Path

from playsound3 import playsound
from voicevox_core import AccelerationMode, VoicevoxCore

SPEAKER_ID = 2

open_jtalk_dict_dir = "./open_jtalk_dic_utf_8-1.11"
out = Path("output.wav")
acceleration_mode = AccelerationMode.AUTO


def main() -> None:
    core = VoicevoxCore(
        acceleration_mode=acceleration_mode, open_jtalk_dict_dir=open_jtalk_dict_dir
    )
    core.load_model(SPEAKER_ID)

    text = "こんにちは"
    audio_query = core.audio_query(text, SPEAKER_ID)
    wav = core.synthesis(audio_query, SPEAKER_ID)
    out.write_bytes(wav)
    playsound(out)


if __name__ == "__main__":
    main()

動きました。

Discussion