Z konwersją do innego formatu nie ma problemu bo można użyć zewnętrznego programu np ffmpeg
możesz spróbować z NAudio [ C# Save text to speech to MP3 file ]
Jeżeli już zacznie czytać to czyta cały plik a przydałaby się możliwość zatrzymania odczytu
i wznowienia go w miejscu ostatniego zatrzymania
możesz użyć np. Console.KeyAvailable
Boolean canSpeak = true;
...
if (Console.KeyAvailable)
{
ConsoleKeyInfo keyInfo = Console.ReadKey(true);
if (keyInfo.Key == ConsoleKey.UpArrow)
synth.Volume += (synth.Volume < 100) ? 5 : 0;
if (keyInfo.Key == ConsoleKey.DownArrow)
synth.Volume += (synth.Volume > 0) ? -5 : 0;
if (keyInfo.Key == ConsoleKey.Spacebar)
{
canSpeak = !canSpeak;
if (canSpeak)
synth.Resume();
else
synth.Pause();
}
}
if (canSpeak)
synth.SpeakAsync(sentence);
else
Thread.Sleep(10);
...
proponuje zamiast
...
try
{
using(StreamReader sr = new StreamReader(args[0]))
{
string line;
if (args.Length > 1)
synth.SetOutputToWaveFile(args[1]);
while ((line = sr.ReadLine()) != null)
synth.Speak(line);
if (args.Length > 1)
synth.SetOutputToDefaultAudioDevice();
}
}
...
np. "na początku" umieścić kod
public static void Main(string[] args)
{
if (args.Length < 2)
{
Console.WriteLine("Usage: program.exe inputfile.txt outputfile.wav");
Console.ReadKey();
return;
}
...
}