😊

テキストファイルからVOICEPEAKでwavファイル変換

2023/09/23に公開

voicepeakをターミナルからオプションを使って実行すると変換できます。
下記ソースは対象入力フォルダにある*.txtを対象出力フォルダに*.wavとして出力します。
このあたりが感情パラメータです。
happy=60,fun=60,angry=30,sad=30

using System;
using System.Diagnostics;
using System.IO;

namespace UnityCmdTools
{
	internal class Txt2Wav
	{
		public static void Main(string[] args)
		{
			// VoicePeakのパスpath
			string voicepeakPath = @"D:\Program Files\VOICEPEAK\voicepeak.exe";
			// 入力先パス
			string folderPath =
				@"D:\Lab\input";
			// 出力先パス
			string outputFolderPath =
				@"D:\Lab\output"; 


			foreach (var file in Directory.EnumerateFiles(folderPath, "*.txt"))
			{
				string text = File.ReadAllText(file);
				string outputFilePath = Path.Combine(outputFolderPath, Path.GetFileNameWithoutExtension(file) + ".wav");


				var startInfo = new ProcessStartInfo
				{
					FileName = voicepeakPath,
					Arguments =
						$"--say \"{text}\" --out \"{outputFilePath}\" --narrator \"Japanese Female 1\" --emotion \"happy=60,fun=60,angry=30,sad=30\" --speed 110 --pitch -20",
					UseShellExecute = false,
					RedirectStandardOutput = true,
					CreateNoWindow = true
				};
				using (var process = Process.Start(startInfo))
				{
					process.WaitForExit();
				}
				Console.WriteLine($"Generated audio file: {outputFilePath}");
			}
		}
	}
}

Discussion