AWS, C# 18.01.2019 admin No comments

Озвучка текста при помощи C# и Amazon Polly

В данной статье мы рассмотрим работу с сервисом Amazon Polly. Он позволяет работать с множеством языков. Мы будем посылать текст и получать в итоге готовый mp3 файл.

Ранее я уже писал статью о том, как озвучить текст в C# при помощи встроенных средств. Её вы можете найти тут.

Для работы мы создадим простое консольное приложение. После его создания установите через NuGet библиотеку AWSSDK.Polly.

В приложении необходимо будет указать ключ доступа, а также секретный ключ от аккаунта AWS. Вы можете получить эти данные по этой ссылке в вашем аккаунте в секции «Access keys». Если у вас нет аккаунта Amazon Web Services, то на момент написания статьи имеется возможность создать его бесплатно, а также использовать сервис Amazon Polly с некоторыми ограничениями без оплаты. Вы можете это уточнить на сайте AWS.

Ниже привожу прокомментированный программный код:

using Amazon;
using Amazon.Polly;
using Amazon.Polly.Model;
using Amazon.Runtime;
using System;
using System.IO;

namespace TextToSpeech
{
    class Program
    {
        static void Main(string[] args)
        {
            // указываем данные используемого аккаунта
            BasicAWSCredentials awsCredentials =
                new BasicAWSCredentials("AccessKeyID", "SecretAccessKey");

            // создаём объект класса AmazonPollyClient, 
            // передавая данные аккаунта и указывая используемый регион
            AmazonPollyClient amazonPollyClient =
                new AmazonPollyClient(awsCredentials, RegionEndpoint.EUCentral1);
            // создаём объект запроса
            SynthesizeSpeechRequest synthesizeSpeechRequest = MakeSynthesizeSpeechRequest();
            // получаем ответ от AWS Polly
            SynthesizeSpeechResponse synthesizeSpeechResponse =
                amazonPollyClient.SynthesizeSpeech(synthesizeSpeechRequest);

            CreateMp3File(synthesizeSpeechResponse.AudioStream);
        }

        // метод создания запроса для озвучивания текста
        private static SynthesizeSpeechRequest MakeSynthesizeSpeechRequest()
        {
            // создаём объект запроса
            SynthesizeSpeechRequest synthesizeSpeechRequest = new SynthesizeSpeechRequest();
            // передаём необходимый текст
            synthesizeSpeechRequest.Text = "Небольшой фрагмент текста для его озвучивания";
            // указываем код передаваемого языка
            synthesizeSpeechRequest.LanguageCode = LanguageCode.RuRU;
            // указываем выходной формат
            synthesizeSpeechRequest.OutputFormat = OutputFormat.Mp3;
            // указываем желаемый голос
            synthesizeSpeechRequest.VoiceId = VoiceId.Tatyana;

            return synthesizeSpeechRequest;
        }

        // метод для создания mp3 файла
        private static void CreateMp3File(Stream audioStream)
        {
            // указываем путь к сохраняемому mp3 файлу
            const string pathToMp3 = "F:\\test.mp3";

            using (FileStream fileStream = File.Create(pathToMp3))
            {
                audioStream.CopyTo(fileStream);
                fileStream.Flush();
                fileStream.Close();
            }
        }
    }
}



1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд (1 оценок, среднее: 5,00 из 5)
Загрузка...