自分専用の読み上げサービスが欲しかった話

この記事は orizing Advent Calendar 2022 - Adventar 11日目の記事です. 本日は今一番作りたいものについて紹介します.

ドラマCD

普段, 夜寝る時はドラマCDやソシャゲのフルボイスストーリー, ポッドキャスト, ラジオ等を聞いている(Youtubeのプレイリスト ドラマCD - YouTube).
また, Audible というAmazonが提供しているオーディオブックサービスがある. 月1500円で, 現在は聴き放題だが改定前は毎月1冊?のオーディオブックが聞けた. YoutubeやAudibleにあるドラマCDは聞き尽くしてしまったし, 例えば「小説家になろう」の作品など何よりドラマCD化されていない作品のほうが多い.
そこで任意の文章を音声化出来るものが欲しくなった.

合成音声

幸いボイスロイド解説動画を作っていた時に買った VOICEROID2 琴葉姉妹 という音声合成ソフト(12000円)を持っていた為, まずはこれで自分だけの読み上げサービスを作ろうと思い立った.

余談

余談だが, 現在は VOICEVOX があるので, 無料で品質の良い合成音声を手に入れることができる. またMoeGoe (話題のアニメ声合成AI「MoeGoe」を使ってみよう|浅野学園物理部) のような機械学習で声優さんの声を学習させて生成させる試みもあるので近い将来に, ストーリーを生成するAIと組み合わせれば, 個人で本物のドラマCDが無限生成できる時代も来るかもしれない(AIタクヤかな? 22/12/9 君はAI創作の最前線にして最底辺「AI拓也」を知っているか - LWのサイゼリヤ).

1時間後, 小説家になろうの文章をYoutubeでライブ配信するシステムが出来た.
しばらくは「青空文庫」や「小説家になろう」の文章を読み上げさせていた.

さらに就活の最終面接前は, 面接の想定質問のメモを配信させてそれを聞きながら公園を散歩し続ける人もやっていた.

寝落ち問題

ここで発生するのが, 聞いている途中で値落ちしてしまい毎度どこまで聞いたかわからなくなってしまうことであった. 人間がインターネットに繋がっていて寝た瞬間のイベントをWebHookかなんかで飛ばせることが出来たならそこまで困らないがそうはいかない. そこで, 15000円ほどのスマート枕パッドというものを知った.

スリープセンシング&ホームオートメーションパッド - Sleep | Withings

枕の下に敷くだけで睡眠のデータをアプリで取得できたりするらしい.
しかし, 高価格である故買うのを躊躇ってしまった. また他の人は入眠を検知できないという問題がある.

サービス化するには

そこで, 代替案として定期的(15分位)に小さな通知音が流れ, その時にアクションをさせることで寝落ち判定をするというアイデアを思いついた.
アクションとは例えば,

  • 手の下に置いた端末の画面をタップする
  • イヤホンに付いている再生ボタンを押す

である. 再生停止はWebアプリでは検知できないのでスマホアプリとして作る必要がある?

また, 音声合成処理は時間がかかるのでユーザーから受け取った作成依頼を貯めておいて順番に処理していかないといけない. このような概念をMessage Queuingという. これをDBと併せて実装しなければいけない. 詳しい話は割愛するが, How to build a job queue with Rust and PostgreSQL あたりのことをやりたい.

文責: @kmt

参考文献