Emacsで感情音声合成(日本語)

はじめに

以前,Emacsで日本語/英語音声合成 - 備忘録 にてEmacs上から音声合成する方法について記事を書いた.
今回,感情音声合成(日本語限定)を試してみたので,紹介したいと思う.

テスト済みの計算機環境

  • gnupack 11.0 on Windows 7 Professional (64bit)

ソースコード

拙作speech-synth.elを以下に置いてある:
https://github.com/tam17aki/speech-synth

使用するソフトウェア

上記記事で導入したソフトウェアは今回も共通して用いる.
また,感情音声合成のために,

にて紹介されているMeiTalk同梱のvoiceファイルを用意する必要がある.
voiceファイルのパスは MeiTalk_ver1.0.0\voices\mei_*.htsvoice のはずである.

設定

最低限,下記を設定ファイルに追記する.パスは各人の環境に応じて適切に設定されたい.
voiceファイルは同一のディレクトリにまとめておくのが分かりやすくてよいだろう.
なお,voiceファイルのbasenameはmei_*.htsvoice にしなければならないという制約をご容赦頂く.

(require 'speech-synth)
(setq speech-synth-dictionary-directory "/usr/local/share/dic")
(setq speech-synth-voice-directory "/usr/local/share/hts_voice/"))
(setq speech-synth-OpenJTalk-voice-file
      (concat speech-synth-voice-directory "mei_normal.htsvoice"))
(setq speech-synth-emotional-speech t)
(setq speech-synth-language "Japanese")

仕様

感情の種類は平静(normal), 嬉しい(happy), 悲しみ(sad), 怒り(angry), 恥ずかしい(bashful)の5種であり,
以下のコマンドを用いて感情を切り替える.

コマンド名 説明
speech-synth-set-emotion 5種類の感情から1つを選択する.

後は,合成したい文章をリージョンで囲って M-x speech-synth-from-regionを実行したりすればよい.
合成時に使用可能なコマンド・メジャーモードはEmacsで日本語/英語音声合成 - 備忘録で紹介済である.

おわりに

voiceファイルさえ用意すれば,感情音声合成自体は容易に実現可能であった.
もっとも,voiceファイルを一から構築する手間は素人の手に負える範囲を超えることだろう.
応用方法については現在思案中である.