見出し画像

AivisSpeech を試す&CLI から試せるスクリプトを作成した

tl;dr

  • 今更ながら AivisSpeech を試してみたよ

  • ひと通りの音声合成をするまでの動作を確認したよ

  • macOS の CLI で AivisSpeech を試せるスクリプトを作ったよ

AivisSpeech はテキストを入力すると音声に変換してくれるアプリケーションです。VOICEVOX のような UI で動かすことができ、アプリケーション実行時に API も用意されているため、かなり使いやすいアプリケーションとなっています。

Style-Bert-VITS2(SBV2)という音声合成フレームワーク&モデルを使っており、去年の年末頃からじわじわと広まり、最近では AI Tuber などに利用される、かなり自然な Text to Speech モデルを自作することができます。

ひと通り動かしてみましょう。

まずは AivisSpeech をダウンロードします。私の環境は macOS ですが、ご自身の環境に合わせたアプリケーションをダウンロードしてください。

インストーラー版と Zip 版がありますが、インストーラー版をここでは選択します。

2024 年 12 月 8 日時点で、AivisSpeech-macOS-arm64-1.0.0.dmg がダウンロードされます。ダブルクリックをして開きます。

AivisSpeech.app を Applications フォルダにドラッグ&ドロップします。

Applications フォルダの中で AivisSpeech.app をクリックするか、Spotlight から検索して、アプリケーションを開きましょう。

右側のプリセットから「デフォルト:Anneli(ノーマル)」が指定されていることを確認して、真ん中のテキストエリアに「こんにちは。」などと打ち込みます。

文章を入力後に Enter を押すと再生ボタンとアクセントの画面が現れます。再生ボタンを押すことで、入力した文章を音声に変換、再生することができます。

「+」ボタンより追加されるテキストボックスを増やしていくことで、文章を繋げて音声を再生することも可能です。パラメータなどもいろいろあるので変えて試してみると楽しいかと思います。

AivisHub という音声合成モデルの共有プラットフォームも用意されているので、第三者の公開されている良さそうなモデルを使ってみることも可能です。

今回はサガワフミヤさん(@fumi_sagawa)のモデルを使って試してみます。AivisHub の fumifumi のページをブラウザで開いてください。

「ダウンロード」をクリックしましょう。ダウンロードフォルダに「fumifumi.aivmx」というファイルがダウンロードされています。

AivisSpeech.app を開き、上部のメニューから「設定」「音声合成モデルの管理」を開きましょう。

「インストール / 更新」を押して「ファイルからインストール」、先ほどダウンロードした「fumifumi.aivmx」を選択してください。

では動かしてみましょう。左上の「×」ボタンよりアプリのトップ画面に戻り、テキスト入力エリアの左のアイコンをクリックしてください。「fumifumi」が追加されていますので、クリックするとモデルのロードが行なわれます。

テキスト入力エリアに文章を入力し、先ほどと同様に再生してみましょう。

いい声ですね。


だいたい GUI の使い方がわかったところで、みんな大好き CLI からも試してみたいので簡単なスクリプトを作ります。

zsh スクリプト

Claude と一緒に作ったもので大したコードでもないですが、検証用スクリプトです。

https://gist.github.com/schroneko/cd1fa0051e40ec6f343bd01e1ef7fc30

では実行してみます。とりあえず cURL でダウンロード。

curl -OL https://gist.githubusercontent.com/schroneko/cd1fa0051e40ec6f343bd01e1ef7fc30/raw/b9732fd583ff2d953c2fe947cbc735b66a1e0a22/aivis-cli.zsh

実行権限をつけるのは面倒なので、下記で実行。

zsh aivis-cli.zsh --help

> zsh aivis-cli.zsh --help
Usage: zsh aivis-cli.zsh [options] --text "your text"

Options:
--help Show this help message
-t, --text TEXT Text to be synthesized (required)
-s, --speaker ID Speaker ID (default: 888753760)
-H, --host HOST Host name (default: 127.0.0.1)
-p, --port PORT Port number (default: 10101)

Available Speakers (examples):
888753760 Anneli (ノーマル)
888753762 Anneli (テンション高め)
888753763 Anneli (落ち着き)
888753764 Anneli (上機嫌)
888753765 Anneli (怒り・悲しみ)

Examples:
zsh aivis-cli.zsh --text "こんにちは"
zsh aivis-cli.zsh --speaker 888753762 --text "やったー!"
zsh aivis-cli.zsh --speaker 888753763 --text "落ち着いて話しましょう"

To list all available speakers:
curl -s http://127.0.0.1:10101/speakers | python3 -m json.tool

Note: Make sure the AivisSpeech server is running before executing these commands.

デフォルトの音声で使いたい場合は単に下記のコマンドを叩くだけ。

zsh aivis-cli.zsh --text "こんにちは"

記載のように下記のコマンドでどのモデルがインストール済みか確認することができます。

curl -s http://127.0.0.1:10101/speakers | python3 -m json.tool
> curl -s http://127.0.0.1:10101/speakers | python3 -m json.tool
[
    {
        "name": "Anneli",
        "speaker_uuid": "e756b8e4-b606-4e15-99b1-3f9c6a1b2317",
        "styles": [
            {
                "name": "\u30ce\u30fc\u30de\u30eb",
                "id": 888753760,
                "type": "talk"
            },
            {
                "name": "\u901a\u5e38",
                "id": 888753761,
                "type": "talk"
            },
            {
                "name": "\u30c6\u30f3\u30b7\u30e7\u30f3\u9ad8\u3081",
                "id": 888753762,
                "type": "talk"
            },
            {
                "name": "\u843d\u3061\u7740\u304d",
                "id": 888753763,
                "type": "talk"
            },
            {
                "name": "\u4e0a\u6a5f\u5acc",
                "id": 888753764,
                "type": "talk"
            },
            {
                "name": "\u6012\u308a\u30fb\u60b2\u3057\u307f",
                "id": 888753765,
                "type": "talk"
            }
        ],
        "version": "1.0.0",
        "supported_features": {
            "permitted_synthesis_morphing": "NOTHING"
        }
    },
    {
        "name": "fumifumi",
        "speaker_uuid": "754d769b-7128-4172-964e-b10945d55e39",
        "styles": [
            {
                "name": "\u30ce\u30fc\u30de\u30eb",
                "id": 606865152,
                "type": "talk"
            }
        ],
        "version": "1.0.0",
        "supported_features": {
            "permitted_synthesis_morphing": "NOTHING"
        }
    }
]

fumifumi ボイスで実行する時は下記のように指定してあげてください。

zsh aivis-cli.zsh --speaker 606865152 --text "落ち着いて話しましょう"

いい声ですね。


以上です。SBV2 モデルの学習は出た当初に使い方がわからず挫折したので、また近いうちに再チャレンジしてみます。

いいなと思ったら応援しよう!