Skip to content

Instantly share code, notes, and snippets.

@apxxxxxxe
Last active December 18, 2023 02:31
Show Gist options
  • Star 2 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save apxxxxxxe/e7eb511d55561e7f616ef37b7f172c18 to your computer and use it in GitHub Desktop.
Save apxxxxxxe/e7eb511d55561e7f616ef37b7f172c18 to your computer and use it in GitHub Desktop.
伺か Advent Calendar 2023 17日目の記事

トークを読み上げるプラグインを作った話

伺か Advent Calendar 2023 17日の記事です。
16日目 月波 清火さん(記事)に続きまして日野が担当します。

本記事では、私が作成した伺かプラグインの紹介をさせていただきます。

結論(この記事で伝えたいこと)

VOICEVOXCOEIROINKなどでゴーストのトークを読み上げる伺かプラグイン「GhostSpeaker」を新たに公開しました。

GhostSpeaker_preview.mp4

デモ動画(音声ミュートを解除してから再生してください)

過去に発表したBouyomiプラグインと違って棒読みちゃんを経由する必要がなく、音声合成エンジンのみでシンプルに動作します。
本プラグインはこちらで公開しています。GhostSpeaker

ここまででご興味を持ってくださった方は、ぜひ一度お試しください。
「よくわからない」「Bouyomiって何?」と思われた方は以下の解説をお読みください。

解説

インストール方法や使い方は配布ページで説明しているので、ここでは他ツールとの比較を通して機能をおおまかに解説します。

Bouyomiプラグインについて

後の説明のため、知らない方のために拙作について少し説明させていただきます。

私が過去に制作したプラグインにBouyomiというものがあります。
これは、音声合成ソフト棒読みちゃんと連携することでゴーストのトークを読み上げることができるようになるプラグインです。

付加的な機能として、shigobu氏のSAPI For VOICEVOXを併用することでVOICEVOXなどの音声合成エンジンの声質を読み上げに用いることができました。
ずんだもんなどの声を読み上げに使えると考えていただければよいです。

Bouyomiプラグインとの比較

先述したように、本プラグインはゴーストのトークを読み上げるという点でBouyomiプラグインと役割は似ています。
実際に、以下のような点はBouyomiと共通です。

共通点

  • ゴーストのトークを読み上げる
    • 主機能です。
  • VOICEVOXやCOEIROINKの声質を読み上げに使うことができる
    • 目玉機能の一つです。
    • 共通点と言っていますが、内部処理はBouyomiと大きく異なり、使用感はよりシンプルです。
  • ゴースト別、さらにキャラクター別(\0,\1)に声質を選択できる
    • 目玉機能の一つです。SSP標準の音声合成機能との差別化点でもあります。
  • 音声合成エンジンの自動起動機能
    • 棒読みちゃんなどをプラグイン起動時に自動起動します。手動で起動する手間を省きます。
    • 事前にどのエンジンを起動するかを設定する必要があります。GhostSpeakerでは設定方法がより簡単になりました。

いっぽうで以下のようなアドバンテージがあります。

新たな利点

  • 棒読みちゃんを起動する必要がない(プラグイン本体と音声合成エンジンのみで動く)
    • よりシンプルに動作します(※)。
  • COEIROINKの最新版(v2.0.0以降)に対応している
    • 目玉機能です。このために作りました。
  • メニューとかがちょっと豪華かも
    • がんばりました。

※下図のように動作ツールの依存関係が整理されています。

hoge hoge
BouyomiではVOICEVOX等の動作のために

  • SAPI For VOICEVOXの導入
  • 棒読みちゃんの起動

が必要でしたが、GhostSpeakerではそのようなことはなくなりました。
読み上げに用いたいエンジンのみ起動すれば読み上げが可能です。

制作の経緯

なぜBouyomiと役割の被るGhostSpeakerの制作をしようと思ったか、その経緯について残しておきます。

COEIROINKのバージョンアップ

拙プラグインBouyomiは、shigobu氏のSAPI For VOICEVOXを併用することで音声合成エンジンとの連携が可能でした。
SAPI For VOICEVOXで対応しているエンジンは

  • VOICEVOX
  • COEIROINK
  • LMROID
  • SHAREVOX
  • ITVOICE

でした(2023年12月現在)。
しかし、この中でCOEIROINKは現行の最新版において連携ができなくなっています。
理由は、COEIROINK v2.0.0において大幅な仕様変更が入ったためです。COEIROINKはv2.0.0からAPIのエンドポイントが変更され、従来の連携手段が使えなくなりました。
(12/15追記: SAPIForVOICEVOXのREADMEにて、外部ツールを用いることでVOICEVOXからCOEIROINK2の声質を呼び出せる可能性が示唆されています。)

対応の方針

最新版のCOEIROINKを伺かと連携するため、新たな対応が必要となりました。
SAPI For VOICEVOXがCOEIROINK最新版に対応するのを待つ方法もありましたが、直接APIを叩くほうが外部依存が減り将来的なメンテナンスも楽であると考えたため、棒読みちゃんを経由せずに直接音声合成エンジンと通信する仕組みのプラグインを新たに作ろうと考えました。
Bouyomi制作当時と比べてプログラミング言語Rustの知識が増えていたこともあり、より外部への依存の少ないシンプルな実装に挑戦してみたいというのもモチベーションのひとつでした。

できたもの

GhostSpeakerが完成しました。
使いやすさを考慮し、各エンジンとの通信状況を表示表示したり、接続/切断を通知する機能などを実装しています。

GhostSpeakerのインストール方法、使い方はこちらからご覧ください。GhostSpeaker

おわり

紹介は以上です。お付き合いいただきありがとうございました。
皆様の伺かライフがより良いものになりますように。

次回予告

明日18日はTatakinovさんが担当されます。(記事

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment