Beispiel #1
0
 private static void TextToSpeech(AssistantResponse response)
 {
     _assistant.MuteAllPlugins();
     _synth.Speak(response.Text);
     _assistant.UnmuteAllPlugins();
 }
Beispiel #2
0
        public async Task <AssistantResponse> RespondAsync(HttpRequest req, Platform targetPlatform, CancellationToken cancellationToken = default)
        {
            Response = new AssistantResponse();

            var bodyContent = ConvertStreamToByteArray(req.Body);

            switch (targetPlatform)
            {
            case Platform.GoogleAssistant:
                ParseRequestForGoogleAssistant(bodyContent);
                break;

            case Platform.Alexa:
                await ParseRequestForAlexa(req, bodyContent);

                break;

            case Platform.Clova:
                await ParseRequestForClova(req, bodyContent);

                break;

            default:
                throw new InvalidOperationException($"targetPlatform:{targetPlatform}");
            }

            switch (Request.Type)
            {
            case Models.RequestType.LaunchRequest:
                await OnLaunchRequestAsync(Request.Session, cancellationToken);

                break;

            case Models.RequestType.IntentRequest:
                await OnIntentRequestAsync(Request.Intent, Request.Slots, Request.Session, cancellationToken);

                break;

            case Models.RequestType.AudioPlayStartedEventRequest:
                await OnAudioPlayStartedAsync(Request.Session, cancellationToken);

                break;

            case Models.RequestType.AudioPlayPausedOrStoppedEventRequest:
                await OnAudioPlayPausedOrStoppedAsync(Request.Session, cancellationToken);

                break;

            case Models.RequestType.AudioPlayNearlyFinishedEventRequest:
                await OnAudioPlayNearlyFinishedAsync(Request.Session, cancellationToken);

                break;

            case Models.RequestType.AudioPlayFinishedEventRequest:
                await OnAudioPlayFinishedAsync(Request.Session, cancellationToken);

                break;
            }

            Response.UserId = Request.UserId;
            return(Response);
        }
Beispiel #3
0
 public static void Receive(AssistantResponse response)
 {
     Console.WriteLine($"Бот: {response.Text}");
 }