Собственно у меня уже есть код и он работает. Но на ASP.NET постоянно пустую строку выдает. Вот код:
public static async Task<string> RecognizeAudio(string path)
{
Process _process = new Process();
ProcessStartInfo startInfo = new ProcessStartInfo();
startInfo.FileName = @"C:\Users\Макс\Downloads\ConsoleApp1\ConsoleApp1\bin\Debug\netcoreapp3.1\Recognizer\dist\recognizer.exe";
startInfo.Arguments = @"C:\Users\Макс\source\repos\ITG-Server\ITG-Server\Temp\382938128.wav";
startInfo.UseShellExecute = false;
startInfo.RedirectStandardOutput = true;
_process.StartInfo = startInfo;
_process.EnableRaisingEvents = true;
_process.Start();
return await _process.StandardOutput.ReadToEndAsync(); ;
}
И в консольном приложении все окей работает, но в ASP.NET я получаю пустую строку. Файл к которому я обращаюсь это питон код скомпилированный в exe. Как мне запустить этот код и получить инфу которую он возвращает.
public static async Task<string> Recognize(byte[] bytes)
{
//тут все работает
string path = Audio.CreateFile(bytes, ".3gp");
Audio.ToWav(path, ".3gp");
//тут все работает
return await Audio.RecognizeAudio(path);
}
Contoller:
[HttpPost]
[Route("Verify")]
public async Task<IActionResult> Verify([FromBody] Json json)
{
return Ok(await SoundModel.Recognize(json.content));
}
Немного протестировать с другим ексе, все выводит. Видимо и правда что-то с прогой, хотя вроде все должно быть нормально. Буду пробовать дальше.
Сборка персонального компьютера от Artline: умный выбор для современных пользователей