From f74237e8bb5ee73363ccc5b9b71b343decd07516 Mon Sep 17 00:00:00 2001 From: Jicheng Lu <103353@smsassist.com> Date: Fri, 30 Aug 2024 11:29:21 -0500 Subject: [PATCH] minor change --- .../Controllers/TwilioVoiceController.cs | 21 ++++++++++++------- .../Services/TwilioService.cs | 4 +++- 2 files changed, 17 insertions(+), 8 deletions(-) diff --git a/src/Plugins/BotSharp.Plugin.Twilio/Controllers/TwilioVoiceController.cs b/src/Plugins/BotSharp.Plugin.Twilio/Controllers/TwilioVoiceController.cs index 9d0368f6..912dd122 100644 --- a/src/Plugins/BotSharp.Plugin.Twilio/Controllers/TwilioVoiceController.cs +++ b/src/Plugins/BotSharp.Plugin.Twilio/Controllers/TwilioVoiceController.cs @@ -115,6 +115,7 @@ public class TwilioVoiceController : TwilioController var nextSeqNum = seqNum + 1; var sessionManager = _services.GetRequiredService(); var twilio = _services.GetRequiredService(); + var fileStorage = _services.GetRequiredService(); if (request.SpeechResult != null) { @@ -123,6 +124,7 @@ public class TwilioVoiceController : TwilioController var reply = await sessionManager.GetAssistantReplyAsync(conversationId, seqNum); VoiceResponse response; + if (reply == null) { var indication = await sessionManager.GetReplyIndicationAsync(conversationId, seqNum); @@ -139,11 +141,11 @@ public class TwilioVoiceController : TwilioController } else { - var textToSpeechService = CompletionProvider.GetTextToSpeech(_services, "openai", "tts-1"); - var fileService = _services.GetRequiredService(); - var data = await textToSpeechService.GenerateSpeechFromTextAsync(seg); + var completion = CompletionProvider.GetAudioCompletion(_services, "openai", "tts-1"); + var data = await completion.GenerateAudioFromTextAsync(seg); + var fileName = $"indication_{seqNum}_{segIndex}.mp3"; - await fileService.SaveSpeechFileAsync(conversationId, fileName, data); + fileStorage.SaveSpeechFile(conversationId, fileName, data); speechPaths.Add($"twilio/voice/speeches/{conversationId}/{fileName}"); segIndex++; } @@ -168,7 +170,10 @@ public class TwilioVoiceController : TwilioController } else { - response = twilio.ReturnInstructions(new List { $"twilio/voice/speeches/{conversationId}/{reply.SpeechFileName}" }, $"twilio/voice/{conversationId}/receive/{nextSeqNum}?states={states}", true); + response = twilio.ReturnInstructions(new List + { + $"twilio/voice/speeches/{conversationId}/{reply.SpeechFileName}" + }, $"twilio/voice/{conversationId}/receive/{nextSeqNum}?states={states}", true); } } @@ -181,8 +186,10 @@ public class TwilioVoiceController : TwilioController { var fileStorage = _services.GetRequiredService(); var data = fileStorage.GetSpeechFile(conversationId, fileName); - var result = new FileContentResult(data.ToArray(), "audio/mpeg"); - result.FileDownloadName = fileName; + var result = new FileContentResult(data.ToArray(), "audio/mpeg") + { + FileDownloadName = fileName + }; return result; } } diff --git a/src/Plugins/BotSharp.Plugin.Twilio/Services/TwilioService.cs b/src/Plugins/BotSharp.Plugin.Twilio/Services/TwilioService.cs index 611007fa..c43782ab 100644 --- a/src/Plugins/BotSharp.Plugin.Twilio/Services/TwilioService.cs +++ b/src/Plugins/BotSharp.Plugin.Twilio/Services/TwilioService.cs @@ -1,3 +1,4 @@ +using BotSharp.Abstraction.Utilities; using Twilio.Jwt.AccessToken; using Token = Twilio.Jwt.AccessToken.Token; @@ -81,7 +82,8 @@ public class TwilioService Timeout = timeout > 0 ? timeout : 2, ActionOnEmptyResult = actionOnEmptyResult }; - if (speechPaths != null && speechPaths.Any()) + + if (!speechPaths.IsNullOrEmpty()) { foreach (var speechPath in speechPaths) {