メインコンテンツへスキップ
見出し画像

Irodori-TTS v3 vs v4 を実測比較してみた

    うちのPCには、キャラクターに喋らせる仕組みが常駐しています。以前の記事で「しゃべり始めるまで約1.2秒」と書いた、あれの土台です。

    使っているのは Irodori-TTS(Aratako氏が公開している日本語音声合成モデル)。これに新しい版 v4 が出ました。

    まず「何が変わったのか」を整理して、そのうえで実際に測ってみた記録です。

    v4で何が変わったのか

    公式の説明とモデルカードから、主な変更点はこの5つです。


    画像

    いちばん効きそうなのは2番目です。日本語の文章理解に強いモデルを頭に載せ替えたので、漢字の読み間違いが減る、という話。

    そしてもうひとつ、モデルカードには正直に「短い参照音声1本からの声の似せ方は v3 のほうが上」とも書いてあります。全面的に上位互換というわけではない。

    では実際どうなのか。手元で測りました。

    最初に出した数字は、実態より2〜3.5倍ふくらんでいました。

    モデルを載せたまま6回合成して、初回を捨てて中央値を取る。

    v3とv4、5つの声で実測


    画像

    v4は約1.4倍遅い。モデルが1.5倍大きくなったので、順当ではあります。

    量子化は、4方式試して4方式とも遅くなった

    ここから「もっと速くできないか」の話です。

    モデルを軽くする「量子化」という手があります。数値の精度を落として、読み込むデータ量を減らす方法です。v4はこれに公式対応しました。

    期待して試した結果がこれです。


    画像

    最後の int8-dynamic が一番期待していました。理屈の上では計算そのものが速くなるはずだったからです。蓋を開けたら4倍遅い。

    ファイルサイズは3分の1になりました。ただ、それが要る場面ではありませんでした。

    効いたのは、精度と関係ないところだった

    唯一うまくいったのは、毎回やっていた同じ計算を、一度だけにしたことです。

    参照する声のデータを、リクエストのたびに変換し直していました。同じファイルなのに、毎回です。事前に一度だけ変換してファイルに保存しておいたら、こうなりました。


    画像

    同じ「速くする」でも、方向が逆でした。
    speaker inversionでの学習と、記録保持では0.1秒だけSIの方がはやかったよ!

    数字では測れなかったこと

    ここまで全部、23文字の短い文で測っています。

    実際に長い台詞を喋らせて聴いてみると、数字には出ない差がありました。しかし今回は掲載しません、応答を想定した長さで検証しました。
    同じ台詞・同じ設定で、v3とv4を並べます。v4のほうがハキハキ喋って、何を言っているか分かりやすい。v3はゆったりしています。同じ台詞でも、v4のほうが数秒短く言い切ります。

    v4のほうがハキハキ喋って、何を言っているか分かりやすい。v3はゆったりしています。同じ台詞でも、v4のほうが数秒短く言い切ります。

    つまり、v4は何を言っているのかハッキリ伝わる!
    ただ、v3の方が、声の余韻みたいなのが残って特徴的な感じがしてます。

    余談ですが、v4は少ないステップ数のまま長い文を喋らせると、粗が出やすい傾向がありました。

    結論


    リアルタイムでのやりとりで使おうとすると、数字の上では v4 が0.26秒遅い。でも聞いてみると、v3より日本語がはっきりきこえて、短時間なら失敗しにくい。明るい声によってはv4のほうが圧倒的に合う。
    ただ、しゃべりかたはv3の方が好き。特にちゃんとステップ使って生成した声は。
    v4はなんか似た声の傾向になる感じがする。つまり好みでした。

    あなたへのおすすめ