C#

テキストを日本語ボイスに変換してくれるしょぼいWindowsソフトを作ったよ。

VS2017のC#で、テキストを日本語ボイスに変換してくれるしょぼいWindowsソフト( 滑舌が悪いけどYOUTUBERしたい人用)を作ったよ。自分はかなり滑舌悪いくてどもるので、YOUTUBER向かないのですがユーチューバーしてみたい願望があったので、Gさんの「Cloud Text-to-Speech API」で適当に作ってみた。ちなみにまだYOUTUBERするかは決めてない!

APIですが月に0~100万文字までは無料枠なので、大量に使わない限り無料枠で収まると思います。これを他の人に提供しようとするとアウトだろうけど・・。
自分だけが使用するのには何とかその範囲内かと思います。

尚、ソースコードを提供します可変してお好みで使ってください。大量のテキストをボイス変換した場合、ビジーになるかもしれません。そこら辺の処理は入れてません。またGさんからダウンロードしたJSONファイルを置いている階層に合わしてください。

参考にしたサイトは下記になります。
https://cloud.google.com/text-to-speech/docs/quickstart-client-libraries?hl=ja#client-libraries-install-csharp

フォームのオブジェクトの配置は下記になります。画像を参照ください。

ソースコードは下記になります。

using System;
using System.IO;
using System.Windows.Forms;
using Google.Cloud.TextToSpeech.V1;

namespace テキストを日本語ボイスする
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            if(richTextBox1.Text.Replace("\r", "").Replace("\n", "") == "")
            {
                MessageBox.Show("文字を入力してください");
                return;
            }

            Environment.SetEnvironmentVariable("GOOGLE_APPLICATION_CREDENTIALS", "C:\\xxxxx\\xxxxx\\xxxxx\\xxxxx.json", EnvironmentVariableTarget.Process);

            TextToSpeechClient client = TextToSpeechClient.Create();


            SynthesisInput input = new SynthesisInput
            {
                Text = richTextBox1.Text.Replace("\r", "").Replace("\n", "")
            };

            VoiceSelectionParams voice = new VoiceSelectionParams
            {
                LanguageCode = "ja-JP",
                Name = "ja-JP-Wavenet-A",
                SsmlGender = SsmlVoiceGender.Neutral,
            };


            AudioConfig config = new AudioConfig
            {
                AudioEncoding = AudioEncoding.Mp3,
                SpeakingRate = f1(trackBar1.Value),
                Pitch = f2(trackBar2.Value),
                

            };

            var response = client.SynthesizeSpeech(new SynthesizeSpeechRequest
            {
                Input = input,
                Voice = voice,
                AudioConfig = config
            });

            DateTime dt = DateTime.Now;
            string dttimename = dt.ToString("yyyy-MM-dd-HH-mm-ss");
            using (Stream output = File.Create("voice-" + dttimename + ".mp3"))
            {
                response.AudioContent.WriteTo(output);
                Console.WriteLine($"Audio content written to file 'voice - " + dttimename + ".mp3'");              
                MessageBox.Show("生成しました=>>voice - " + dttimename + ".mp3");
                System.Diagnostics.Process.Start(Directory.GetCurrentDirectory());
            }
        }

        private void trackBar1_ValueChanged(object sender, EventArgs e)
        {

            label3.Text = string.Format("{0:0.00}", f1(trackBar1.Value));
        }

        private void trackBar2_ValueChanged(object sender, EventArgs e)
        {
            label4.Text = string.Format("{0:0.00}", f2(trackBar2.Value));
        }

        private double f1(int a) {

            return Convert.ToDouble(a) / 100;
        }
        private double f2(int a)
        {

            return Convert.ToDouble(a) - 20;
        }

    }
}

変換したボイスはこんな感じです!



The following two tabs change content below.
zip358と申します。 まったりWEB日誌を更新している中の人です? 趣味は映画鑑賞とブログ書きです、 こちらで生活できるようになるのが目標です。 ブックマークやシェアして頂けると励みになります。 どうぞよろしくお願い致します。

関連記事

  1. 雑記

    映画、女神の見えざる手を観ましたよ。

    http://miss-sloane.jp/https://www…

  2. 雑記

    情報セキュリティマネジメントの試験受かりました。

    情報セキュリティマネジメントの試験受かりました。簡単に受かるつもり…

  3. おすすめYOUTUBE

    プログラム講師YOUTUBER、たにぐち まことさん。

    たにぐち まことさんという方がYOUTUBEでフロントエンド…

  4. おすすめYOUTUBE

    どちらかと言うと男のだらだらだと思います。YOUTUBER:ひげおやじ:さん

    ひげおやじと仲間たち/ガジェット通信というYOUTUBEチャ…

  5. 雑記

    この頃の近況PV

    この頃、雑記の路線を絵描きにかえると高々と宣言していましたが…

  6. 雑記

    ユーザーは動画を30秒で判断するYOUTUBE30秒時代の到来。

    ユーザーは動画(YOUTUBE等)を30秒で判断する時代にな…

2019年1月
 123456
78910111213
14151617181920
21222324252627
28293031  

アクセスカウンター😅

とある高知県の気温や湿度

Twitter でフォロー

PAGE TOP