Beispiel #1
0
        public void Text2Speech()
        {
            string Text = Request.QueryString["text"];
            string Lang = Request.QueryString["lang"];

            if (string.IsNullOrEmpty(Text) || string.IsNullOrEmpty(Lang))
            {
                Response.Clear();
                Response.Flush();
                Response.End();
                return;
            }

            TTSpeech tts = new TTSpeech(Text, Lang);

            byte[] voiceByte = tts.GetSpeech();

            if (tts.speechStream != null)
            {
                Response.Clear();
                Response.AddHeader("Content-Length", voiceByte.Length.ToString());
                Response.AddHeader("Content-Disposition", "attachment; filename=speech.wav");
                Response.OutputStream.Write(voiceByte, 0, voiceByte.Length);
                Response.Flush();
                Response.End();
            }
            else
            {
                Response.Clear();
                Response.Flush();
                Response.End();
            }
        }
Beispiel #2
0
        public HttpResponseMessage TextToSpeech(TTSpeech obj)
        {
            tokenService = new TokenService();

            try
            {
                string requestUri  = "https://speech.platform.bing.com/synthesize";
                string accessToken = tokenService.GetToken();

                var    cortana = new Synthesize();
                string name    = cortana.VoiceServiceName(obj.Locale);
                cortana.OnAudioAvailable += PlayAudio;

                cortana.Speak(CancellationToken.None, new Synthesize.InputOptions()
                {
                    RequestUri = new Uri(requestUri),
                    Text       = obj.OutputText,
                    Locale     = obj.Locale,
                    //VoiceName =cortana.VoiceServiceName(speechObj.Locale),
                    VoiceName          = name,
                    OutputFormat       = AudioOutputFormat.Riff24Khz16BitMonoPcm,
                    AuthorizationToken = "Bearer " + accessToken,
                }).Wait();

                var response = Request.CreateResponse(HttpStatusCode.OK);
                return(response);
            }
            catch (Exception ex)
            {
                var response = Request.CreateResponse(HttpStatusCode.BadRequest);
                return(response);
            }
        }
        //void ConfigureButtons()
        //{
        //    prevBtn.IsVisible = App.RecipeViewModel.Position > 0;
        //    nextBtn.IsVisible = _vm.Position < _vm.ItemsSource?.Count - 1;
        //}

        //public void PositionSelected(object sender, int position)
        //{
        //    ConfigureButtons();
        //    Debug.WriteLine("Position " + myCarousel.Position + " selected");

        //}

        //public void OnPrev(object sender, TappedEventArgs e)
        //{
        //    if (stepCarousel.Position > 0)
        //        stepCarousel.Position--;
        //}

        public void OnPlay(object sender, TappedEventArgs e)
        {
            var instructionItem = sender as Label;
            var toSpeak         = instructionItem.Text;
            var ts = new TTSpeech();

            ts.Speak(toSpeak);
        }
Beispiel #4
0
        private void OnInstructionSelected(object sender, SelectedItemChangedEventArgs e)
        {
            var instructionItem = e.SelectedItem as Step;
            var toSpeak         = instructionItem.Instruction;
            var ts = new TTSpeech();

            ts.Speak(toSpeak);
        }
        public async Task ComputeWithVoiceReturn(System.Net.Http.HttpRequestMessage request)
        {
            string Lang = "en-US";
            string Text = "";

            string uploadFileName = Request.Files[0].FileName;

            if (string.IsNullOrEmpty(uploadFileName))
            {
                Text = "can't find upload media file";
            }
            else
            {
                try
                {
                    ImageVision imageV = new ImageVision(Request.Files[0].InputStream);
                    Text = await imageV.Compute();
                }
                catch (Exception ex)
                {
                    Text = ex.Message;
                }
            }

            TTSpeech tts = new TTSpeech(Text, Lang);

            byte[] voiceByte = tts.GetSpeech();

            if (tts.speechStream != null)
            {
                Response.Clear();
                Response.AddHeader("Content-Length", voiceByte.Length.ToString());
                Response.AddHeader("Content-Disposition", "attachment; filename=speech.wav");
                Response.OutputStream.Write(voiceByte, 0, voiceByte.Length);
                Response.Flush();
                Response.End();
            }
            else
            {
                Response.Clear();
                Response.Flush();
                Response.End();
            }
        }
        public async Task VerificationWithVoiceReturn(System.Net.Http.HttpRequestMessage request)
        {
            string Lang = "en-US";
            string Text = "";

            if (Request.Form["lang"] != null)
            {
                Lang = Request.Form["lang"].ToString();
            }

            string uploadFileName = Request.Files[0].FileName;

            if (string.IsNullOrEmpty(uploadFileName))
            {
                if (Lang == "zh-TW")
                {
                    Text = "找不到上傳相片";
                }
                else
                {
                    Text = "can't find upload media file";
                }
            }
            else
            {
                try
                {
                    FamilyModel        faceDetect = new FamilyModel(Request.Files[0].InputStream);
                    FamilyVerifyResult result     = await faceDetect.Verification();

                    if (result.IsIdentical)
                    {
                        if (Lang == "zh-TW")
                        {
                            Text = "你是家人, " + result.memberName + ". 信心指數 : " + result.Confidence;
                        }
                        else
                        {
                            Text = "You are family, " + result.memberName + ". Confidence : " + result.Confidence;
                        }
                    }
                    else
                    {
                        if (Lang == "zh-TW")
                        {
                            Text = "你不是家人";
                        }
                        else
                        {
                            Text = "You are Not family";
                        }
                    }
                }
                catch (Exception)
                {
                    if (Lang == "zh-TW")
                    {
                        Text = "無法辨識相片裡的臉孔";
                    }
                    else
                    {
                        Text = "Can't identify Image Face";
                    }
                }
            }

            TTSpeech tts = new TTSpeech(Text, Lang);

            byte[] voiceByte = tts.GetSpeech();

            if (tts.speechStream != null)
            {
                Response.Clear();
                Response.AddHeader("Content-Length", voiceByte.Length.ToString());
                Response.AddHeader("Content-Disposition", "attachment; filename=speech.wav");
                Response.OutputStream.Write(voiceByte, 0, voiceByte.Length);
                Response.Flush();
                Response.End();
            }
            else
            {
                Response.Clear();
                Response.Flush();
                Response.End();
            }
        }