public Task <HealthCheckResult> CheckHealthAsync( HealthCheckContext context, CancellationToken cancellationToken = default) { if (_yngpingAudioSynthesizer.YngpingToAudio("a242") == null) { return(Task.FromResult(HealthCheckResult.Unhealthy("Cannot pronounce a242."))); } return(Task.FromResult(HealthCheckResult.Healthy("Can pronounce a242."))); }
public async Task <IActionResult> GetAudio(string text) { var dotPosition = text.LastIndexOf("."); string yngping; string ext; if (dotPosition != -1) { yngping = text.Substring(0, dotPosition); ext = text.Substring(dotPosition + 1).ToLowerInvariant().Trim(); } else { yngping = text; ext = "wav"; } if (!SupportedFormats.Contains(ext)) { return(new UnsupportedMediaTypeResult()); } var audioBytes = audioSynthesizer.YngpingToAudio(yngping); if (audioBytes == null) { logger.LogDebug($"Unsupported yngping: {yngping}"); return(new NotFoundResult()); } switch (ext) { case "wav": return(new FileContentResult(audioBytes, "audio/wav")); case "mp3": return(new FileContentResult(await AudioConversion.WavToMp3(audioBytes), "audio/mp3")); default: throw new Exception("Should not have reached here."); } }