2016-03-13 3 views
2

У меня есть следующие очень простой код TTS работает на моем локальном сервереВызов SpeechAPI для текста в речь на Azure

using System.Speech.Synthesis; 
... 
SpeechSynthesizer reader = new SpeechSynthesizer(); 
reader.Speak("This is a test"); 

Этот код имеет зависимость от System.Speech, для которого я добавил ссылку на мой VS 2015. Работает отлично, но из того, что я прочитал и от его попытки, я знаю, что это не сработает, когда код размещен на Azure. Я прочитал несколько сообщений о SO-запросе, если на самом деле можно сделать TTS на лазури. Конечно, 2 года назад это казалось невозможным. How to get System.Speech on windows azure websites?

Все дороги, кажется, ведут к Microsoft Speech API https://azure.microsoft.com/en-gb/marketplace/partners/speechapis/speechapis/ Я подписался и получил свои личные и втор ключи для вызова в этот API. Однако мой вопрос в этом. Как я на самом деле называю SpeechAPI? Что мне нужно изменить в примере простого кода выше, чтобы это работало при работе на лазуре?

ответ

1

Речевой API, на который вы ссылаетесь на рынке Azure, является частью проекта AI Microsoft под названием ProjectOxford, который предлагает набор API для компьютерного зрения, речи и языка.

Это все API-интерфейсы RESTful, что означает, что вы будете создавать HTTP-запросы для отправки в размещенную онлайн-службу в облаке. Документация с текстом на текст доступна here, и вы можете найти пример кода для различных клиентов на github. В частности, для C# вы можете увидеть код в this sample project.

Обратите внимание: ProjectOxford все еще находится в режиме предварительного просмотра (бета-версия). Дополнительную поддержку для использования этих API можно найти на ProjectOxford MSDN forum.

Но просто чтобы дать вам представление о том, как ваша программа будет выглядеть (взятое из приведенного выше примера кода на GitHub):

 AccessTokenInfo token; 

     // Note: Sign up at http://www.projectoxford.ai for the client credentials. 
     Authentication auth = new Authentication("Your ClientId goes here", "Your Client Secret goes here"); 

     ... 

     token = auth.GetAccessToken(); 

     ... 

     string requestUri = "https://speech.platform.bing.com/synthesize"; 

     var cortana = new Synthesize(new Synthesize.InputOptions() 
     { 
      RequestUri = new Uri(requestUri), 
      // Text to be spoken. 
      Text = "Hi, how are you doing?", 
      VoiceType = Gender.Female, 
      // Refer to the documentation for complete list of supported locales. 
      Locale = "en-US", 
      // You can also customize the output voice. Refer to the documentation to view the different 
      // voices that the TTS service can output. 
      VoiceName = "Microsoft Server Speech Text to Speech Voice (en-US, ZiraRUS)", 
      // Service can return audio in different output format. 
      OutputFormat = AudioOutputFormat.Riff16Khz16BitMonoPcm, 
      AuthorizationToken = "Bearer " + token.access_token, 
     }); 

     cortana.OnAudioAvailable += PlayAudio; 
     cortana.OnError += ErrorHandler; 
     cortana.Speak(CancellationToken.None).Wait(); 
+0

Спасибо, я не понял, что это все еще в бета-версии. Прочитав цены на веб-сайте Azure, нам будет стоить почти 1 миллион долларов за количество речевых запросов, которые мы в настоящее время обрабатываем (250 миллионов долларов в год, стоит нам около 50 тысяч в экземплярах AWS EC2 для предоставления той же услуги). Поэтому я попытался проверить, правильно прочитал информацию о ценах, 3 письма от 3-х разных людей позже, я обнаружил, что направил обратно на свою страницу ценообразования на лазурь, извините, «мы не уверены». Не похоже, что Azure собирается летать для нашего конкретного случая использования :( – MayoMan

+0

Какой ценовой сайт вы имеете в виду? Цены на ProjectOxford можно найти здесь: https://www.projectoxford.ai/pricing –

+0

Записка из-за этого В любом случае, если вы используете другие методы для обработки этих экземпляров EC2 и рассматриваете переход на Azure, то стоит сравнить его с ценой Azure VMs здесь: https: // azure. microsoft.com/en-us/pricing/calculator/ Это было бы более «яблоки» для сравнения «яблок» –