HSP : Hot Soup Processor ver3.7 / onion software 2023-(c)

# HSPVOICEVOX 音声合成プラグイン

## はじめに

HSPVOICEVOXプラグインは、VOICEVOX COREによる音声合成を呼び出す機能を提供します。 VOICEVOXにより、様々なキャラクターによる精度の高い音声読み上げを行うことが可能になります。

    		VOICEVOX
    		https://voicevox.hiroshiba.jp/

使用する場合は、データのダウンロードと準備を行う必要がありますのでご注意ください。

## 使用するための準備

あらかじめ、VOICEVOX COREを使用するためのデータをダウンロードして展開する必要があります。
HSPVOICEVOXプラグインを使用するにあたって、以下のデータが必要になります。

    		・VOICEVOX コアライブラリ release版 (0.14.4)
    		・Open Jtalkの辞書ファイル (open_jtalk_dic_utf_8-1.11)

「VOICEVOX コアライブラリ release版 (0.14.4)」は、VOICEVOX COREのリリースページから「voicevox_core-windows-x86-cpu-0.14.4.zip」(CPU版、32bit)のダウンロードを行ってください。 この中から、以下のファイルをHSP3インストールフォルダ(hsp3.exeなどが配置されているフォルダ、通常は「c:\hsp36」などが設定されています)にコピーしてください。

    		modelフォルダ
    		onnxruntime.dll
    		onnxruntime_providers_shared.dll
    		voicevox_core.dll

最低限、これらのファイルが動作に必要です。
次に、Open Jtalkの辞書ファイルを (open_jtalk_dic_utf_8-1.11)ダウンロードします。こちらのページからダウンロード可能です。

    		Open Jtalkの辞書ファイル(open_jtalk_dic_utf_8-1.11)ダウンロード

このファイルから、「open_jtalk_dic_utf_8-1.11」フォルダを解凍して取り出す必要があります。圧縮されているtar.gzファイルを解凍するため、Explzhなどのソフトが別途必要になります。
この「open_jtalk_dic_utf_8-1.11」フォルダを先ほどと同様にHSP3インストールフォルダに配置してください。
以上で、HSPVOICEVOXプラグインを使用することができます。sample/hspvoicevoxフォルダにサンプルスクリプトがありますので、参考にしてみてください。
実行ファイルを作成した場合も、同様にプラグイン本体(hspvoicevox.dll)及びVOICEVOX コアライブラリ、データファイルを実行ファイルと同じフォルダに配置する必要がありますのでご注意ください。

## 基本的な使用方法

スクリプトの先頭に「#include "hspvoicevox.as"」を入れることで、HSPVOICEVOXプラグインの命令を使用することができるようになります。

    		voicevoxinit          VOICEVOX COREによる音声合成の初期化
    		voicevoxbye           VOICEVOX COREによる音声合成の終了処理
    		voicevoxload          VOICEVOX話者のデータを読み込み
    		voicevoxgeterror      VOICEVOXのエラー文字列を取得する
    		voicevoxgetversion    VOICEVOXのバージョン文字列を取得する
    		voicevoxgetmetas      VOICEVOXのメタ情報を取得する
    		voicevoxspeak         VOICEVOXによる読み上げを実行する
    		voicevoxmmload        VOICEVOXによる読み上げ音声をメディアバッファに登録する
    		voicevoxsave          VOICEVOXによる読み上げ音声をファイルに保存する

HSPVOICEVOXプラグインを使用する際には、最初にvoicevoxinit命令を実行し、VOICEVOX COREによる音声合成の初期化を行ないます。 これは、プログラム実行時の最初に１回だけ初期化を行なう必要があります。
これ以降は、VOICEVOX COREによる音声合成機能を使用することが可能になります。 ほとんどの命令は、実行後にシステム変数statに結果が代入されます。 システム変数statの値が0以外の場合は、初期化に失敗しています。その場合は、voicevoxgeterror命令でエラー文字列を取得することが可能です。
実際に読み上げを行うためには、voicevoxload命令により話者の読み込みをする必要があります。

    			voicevoxinit
    			voicevoxload 3		; 「ずんだもん:ノーマル」を読み込み

上の例では、ID3(ずんだもん:ノーマル)を読み込み使用可能な状態にします。 VOICEVOX話者のデータは、メモリの制限内で複数を読み込むことができます。 準備のできた話者IDは、voicevoxspeakなどの命令で音声の再生が可能になります。
話者IDに指定する値は、modelフォルダ内のmetas.jsonファイルに記述されています。この情報は、voicevoxgetmetas命令でも取得することができます。 ( sample/hspvoicevox/test2.hsp サンプルでは、jsonファイル内の話者ID情報を読み込み選択可能にしています。)
実際に、音声合成を行う場合は、「voicevoxspeak」「voicevoxmmload」「voicevoxsave」などの命令を使用します。最も簡単に読み上げを行う場合は、voicevoxspeak命令を使用します。

    			voicevoxspeak "こんにちは、ずんだもんなのだ。", 3

上の例では、ID3(ずんだもん:ノーマル)により指定された文字列を読み上げます。
voicevoxspeak命令は、文字列を解析して読み上げ音声を再生しますが、あらかじめ読み上げ音声を作成しておいて決められたタイミングで再生することもできます。

    			voicevoxmmload "text", ID, buffer

voicevoxmmload命令は、"text"パラメーターで指定された文字列を読み上げて、その音声をメディアバッファに登録します。登録後は、mmplay命令により登録されたメディアバッファIDを再生することができます。

    			voicevoxsave "text", ID, "保存するファイル名"

voicevoxsave命令は、"text"パラメーターで指定された文字列を読み上げて、その音声をwav形式のファイルとして保存することができます。

## 著作権とライセンス

HSPVOICEVOXプラグインは、VOICEVOXコアライブラリにより作成されています。素晴らしいライブラリの公開ありがとうございます。
プラグイン本体(hspvoicevox.dll)及び作成されたソフトウェアは自由に公開配布して頂いて構いません。
VOICEVOXコアライブラリ及び、各種データのライセンス及び配布の指定は、それぞれのサイトを参照してください。 VOICEVOXに付属する音声には、各キャラクターごとの利用規約がありますので、そちらを参照してください。

    		VOICE VOX
    		voicevox_core
    		Copyright (c) 2021 Hiroshiba Kazuyuki
    		https://voicevox.hiroshiba.jp/
    		https://github.com/VOICEVOX/voicevox_core

    		The Japanese TTS System "Open JTalk"
    		developed by HTS Working Group
    		http://open-jtalk.sourceforge.net/