Charleston 0.6 音声定義ファイル

Charleston 0.6は読み上げ音声に

を利用可能です。

以下にAquesTalk10とOpenJTalkの音声定義ファイルの作成、声質のカスタマイズの方法を紹介します。

音声定義 jsonファイルの置き場所と内容

音声定義ファイルは、jsonという形式のファイルで定義されています。

jsonファイルの置き場所

音声定義ファイルの置き場所(フォルダー)は、
~/Library/Application Support/Charleston/Voices
という場所になります。

このフォルダーを開くにはファインダー上で「⌘キーとシフトキーを押しながらGキーを押すと表示される小窓に上の文字列を入力して移動ボタンを押すか、Charlestonを起動して、Charlestonメニューの環境設定の一つ下のサブメニューのアプリケーションフォルダーを表示を選択するとVoicesフォルダーがファインダーの新規ウィンドウとして表示されます。

jsonファイル全体

音声定義ファイルの全体は以下のようになります

	{
		"method": "読み上げ方式",
		"param": {
			"speed": 読み上げ速度,
			"volume": 読み上げ音量
		}
	}
		

jsonファイルのvoiceに記載する項目

"voice":に続く"読み上げ方式"には、AquesTalkまたはOpenJTalkのいずれかを記載して下さい。
AppleAquesTalk2については可能な定義は全て作成されているので、追加不要です。

jsonファイルのparamに記載する項目

"param":に続く{ }の中は、voiceAquesTalkOpenJTalkかで記載する内容が変わり、省略可能なものもあるので、以下に一覧を表に纏めます。

要素名 用途 必須 意味 指定可能な範囲
voice 共通 AquesTalkの場合はF1,F2,M1のいずれか
OpenJTalkの場合は.htsvoiceファイルの拡張子を除いたファイル名
speed 共通 読み上げ速度(%) 50~300
volume 共通 読み上げの音量(%) 0~300
fsc AquesTalk サンプリング周波数 50~200
pitch AquesTalk 声の高さ(ピッチ) 20~200
accent AquesTalk 抑揚(アクセント) 0~200
lmd AquesTalk 音程 0~200
frame OpenJTalk ×
allPass OpenJTalk × all-pass constant 0.0~1.0
postfilter OpenJTalk × postfiltering coefficient 0.0~1.0
halfTone OpenJTalk × additional half-tone
threshold OpenJTalk × voiced/unvoiced threshold 0.0~1.0
spectrum OpenJTalk × weight of GV for spectrum
logF0 OpenJTalk × weight of GV for log F0

AquesTalkの声質定義ファイルの例

ファイル名f1.json

{
	"method": "AquesTalk",
	"param": {
		"voice": "F1",
		"speed": 100,
		"volume": 80,
		"fsc": 100,
		"pitch": 100,
		"accent": 100,
		"lmd": 100
	}
}
		

OpenJTalkの声質定義ファイルの例

ファイル名m001.json

{
	"method": "OpenJTalk",
	"param": {
		"voice": "m001",
		"speed": 100,
		"volume": 100
	}
}
		

"volume"に続いて"allPass", "postfilter", "threshold", "spectrum", "logF0"が続いても良い

OpenJTalkの音響モデル(htsvoice)について

OpenJTalkは、音響モデル(htsvoice)と呼ばれるファイルを追加し、音声定義ファイルのvoiceにそのファイル名を指定することで声色のバリエーションを大幅に増やすことが出来ます。

以下で音響モデルファイルの追加方法と、各種音響モデルファイルがダウンロード出来るサイトを紹介します

音響モデル(htsvoice)ファイルの追加

音響モデル(htsvoice)ファイルを配置するフォルダーを開く方法は2通りあります。

このフォルダーに(解凍された).htsvoiceファイルをコピーして下さい。ファイル名になんとかVer.01.htsvoiceなどと.が入っている場合はそのままでも大丈夫なはずですが、なんとか.htsvoiceとリネームしておくと指定間違いが少なくて良いと思います。

先に述べた声質定義ファイルは、"method""OpenJTalk"に、"voice"なんとか.htsvoice.htsvoiceを除いた部分(この例では「なんとか」)を指定して下さい。

音響モデル(htsvoice)ファイルへのリンク

追加されたOpenJTalkは.htsvoiceという形式の音響モデルファイルを追加することで新たな音声をCharlestonの読み上げバリエーションに加えることが可能です。
この.htsvoiceファイルは比較的汎用性が高いので、個人で音響モデルファイルを作成・公開しておられる方がそれなりにおられます。

以下に比較的容易に見つかった音響モデルファイルへのリンク・リンク集を載せておきます。ご自身でGoogle等でhtsvoice ダウンロード等のキーワードで検索すると他にも音響モデルが見つかるかも知れません

東北大学 大学院工学研究科 通信工学専攻

伊藤・能勢研究室GitHubで音響モデルを公開されています。
Creative Commons Attribution 4.0 licenseというライセンス形式なので少しご注意下さい。

なんかいろいろしています

こちらは個人のサイトですが、ダウンロード出来る音響モデルの数が圧巻です。
更に自分の音声を送ると、それを元に音響モデルを作っても下さるようです。

MMDAgent & Project-NAIP wiki

こちらはMMDAgent用の音響モデルファイルが配布されています。
初音ミクっぽい音声らしいですが、ファイル形式が旧形式のため、homebrew等を使って現在のhtsvoice形式に変換する必要があります。