棒読みちゃんをVOICEVOXに対応させる!(SAPI5)

    close up photography of microphone

    VOICEVOXはとても高品質な音声合成エンジンです。

    この動画を見てもらうとわかるのですが、人間とほぼ変わらないですよね。こんなに高品質なら使用したい人も多いでしょう。しかし、標準の状態ではVOICEVOX ENGINEから音声を取得することしかできません。

    https://voicevox.github.io/voicevox_engine/api/

    棒読みちゃんやコメビュと連携させるとなると、かなりの技術が必要になります。そこで、今回はSAPI5にVOICEVOXを対応させることで棒読みちゃんに対応させたり、C# .NETから呼び出してみようと思います。

    あらすじ

    ダウンロードするファイル

    VOICEVOX | 無料で使える中品質なテキスト読み上げソフトウェア (hiroshiba.jp)

    VOICEVOX本体をダウンロードします。

    Releases · shigobu/SAPIForVOICEVOX (github.com)

    また、VOICEVOXをSAPI5に対応させるSAPIForVOICEVOXをGitHubからダウンロードします。

    手順

    VOICEVOX本体のインストール

    VOICEVOXをインストールしなければ始まりません。インストールしましょう。

    NVIDIAGPUを搭載しているPCではGPU/CPUを選びましょう。今回インストールするPC(私のサブ機)ではCPUのみを選択します
    インストール中
    とりあえず指示に従い、セットアップをしましょう
    この状態までもっていきましょう

    SAPIForVOICEVOXをインストール

    次に、SPAIForVOICEVOXをインストールします。※棒読みちゃんは32Bit版、やります!アンコちゃんは64Bit版が必要です。両方インストールすることをお勧めします。

    詳細情報から実行するを選択しましょう

    インストール先をProgramFilesに設定すると不具合が起こるので、極力触らないようにしましょう。

    話者とスタイルの登録では、の話者とスタイルを登録を選択します。ほかの選択肢でもよいですが、すべての話者とスタイルを登録することで後々の手間が省けます。

    これでインストールは終了です。

    あとから話者の設定をする場合は、アプリ一覧からSAPI For VOICEVOXを選択すればOKです。

    ここで一回再起動させます。

    これで、インストールは完了です。ここまでくれば、棒読みちゃんでVOICEVOXを選択できるようになります。

    C# .NETで使ってみる

    C#でSAPI5を使うにはSystem.Speech.Synthesisを使います。

    using System.Collections.ObjectModel;
    using System.Speech.Synthesis;
    
    namespace SAPI5Test
    {
        class Program
        {
            public static void Main(string[] args)
            {
                SpeechSynthesizer speechSynthesizer = new SpeechSynthesizer();
                ReadOnlyCollection<InstalledVoice> voices = speechSynthesizer.GetInstalledVoices();
                foreach (var item in voices)
                {
                    Console.WriteLine(item.VoiceInfo.Name);
                }
                Console.WriteLine("音声を選択してください。");
                InstalledVoice voice = voices[Convert.ToInt32(Console.ReadLine())];
                speechSynthesizer.SelectVoice(voice.VoiceInfo.Name);
                string text = "SAPI5による音声合成のテストです。";
                speechSynthesizer.Speak(text);
            }
        }
    }

    このようにすることで音声合成を利用することができます。

    実行してみた

    最後までご覧いただき、ありがとうございました。

    よかったらシェアしてね!
    • URLをコピーしました!

    コメント

    コメントする

    CAPTCHA


    あらすじ