Как озвучить любой текст: онлайн-сервисы и программы

Содержание:

Оценки Качества и Примеры Аудио

Чтобы не вдаваться в дебри, мы поступили максимально просто: синтезировали аудио из валидационной выборки датасетов (~200 файлов на спикера), смешали с оригинальными аудио этой же выборки и дали группе из 24 людей для оценки качества звучания по пятибалльной шкале. Для и оценки собирали раздельно, градация оценок — — с большей детализацией для более качественного звука.

Всего было поставлено оценок. 12 человек сделали оценку полностью. Еще 12 людей успели проставить только от 10% до 75% оценок. Дальше для каждого спикера мы просто посчитали среднее (в скобочках приведено стандартное отклонение). Расчет среднего от медиан по каждому аудио завышает средние оценки на 0.1 — 0.2 балла, но не влияет на отношения. Показательны естественно скорее отношения средних баллов друг к другу. Дисперсия довольно высокая, но оценки пользователей отличались сильно и мы решили не выбрасывать никакие, т.к. оценки одного пользователя были консистентными друг с другом. По ряду соображений мы провели такую оценку только на своих уникальных голосах:

Спикер Оригинал Синтез Отношение Примеры
aidar_8khz 4.67 (.45) 4.52 (.55) 96.8% link
baya_8khz 4.52 (.57) 4.25 (.76) 94.0% link
kseniya_8khz 4.80 (.40) 4.54 (.60) 94.5% link
aidar_16khz 4.72 (.43) 4.53 (.55) 95.9% link
baya_16khz 4.59 (.55) 4.18 (.76) 91.1% link
kseniya_16khz 4.84 (.37) 4.54 (.59) 93.9% link

Мы просили людей в первую очередь оценивать естественность звучания речи (а не качество звука). Нас удивило, что по расспросам обычные люди на своих ежедневных девайсах не особо слышат разницу между 8 kHz и 16 kHz (что подтверждается оценками)! Самые низкие абсолютные оценки и самое низкое отношение у Байи. Самые высокие абсолютные оценки — у Ксении, а относительные — у Айдара

Тут важно отметить, что у Байи меньше поставлен голос, но поэтому он звучит более по-человечески за счет этого. У Байи также выше дисперсия оценок

Ручной просмотр аудио с большими расхождениями показывает ошибки спикеров, ошибки такотрона, ошибочные паузы (тоже вследствие ошибок такотрона), имена собственные и сложные слова, которые вообще непонятно как читать. Естественно 75% таких расхождений в синтезе (а не оригинале) и частота дискретизации особо не влияет.

Если мы пытались дать численную оценку естественности, то еще хорошо бы оценить «неестественность» или «роботизированность» голоса. По идее ее можно оценивать, давая людям пару аудио на выбор и прося выбрать между ними. Но мы пошли дальше и по сути применили «двойной слепой тест». Мы в случайном порядке дали людям поставить оценки «одному и тому же аудио» 4 раза — оригинал и синтез с разной частотой дискретизации. Для участников исследования, разметивших весь датасет, получается такая таблица:

Сравнение Хуже Одинаково Лучше
16k против 8k, оригинал 957 4811 1512
16k против 8k, синтез 1668 4061 1551
Оригинал против синтеза, 8k 816 3697 2767
Оригинал против синтеза, 16k 674 3462 3144

Тут напрашивается несколько выводов:

  • В 66% случаев люди не слышат разницы между 8k и 16k;
  • В синтезе, 8k немного помогает скрыть ошибки;
  • Примерно в 60% случаев люди считают, что синтез не хуже оригнала по естественности;
  • Показательно, что два последних вывода не особо зависят от частоты дискретизации (8k имеет небольшое преимущество);

Можете оценить сами, как это звучит, как для наших уникальных голосов, так и для спикеров из внешних источников (больше аудио для каждого спикера можно синтезировать в colab.

Если вы не дружите с колабом или глаза разбегаются от количества файлов в папках с примерами, то вот несколько случайных аудио:

Айдар:

Байя:

Ксения:

Еще раз обращаю внимание, что это не cherry-picked примеры, а реальное звучание синтеза

Если вам позвонили из Yandex. Эти загадочные токены

Возможно, распознавать и синтезировать речь вам так понравится, что однажды вам позвонит милая девушка из Yandex и поинтересуется, все ли вам понятно в работе сервиса.

Продолжайте изучать документацию, и тогда вы узнаете, например, что iam_token живет не более 12 часов.

Чтобы быть вежливым, как наш дворецкий, и не перегружать сервера на Yandex, мы не будем генерировать iam_token чаще (при желании теперь стало можно генерить токен при каждом запросе). Заведите себе блокнотик и карандашик для записи даты генерации. Шутка.

Ведь у нас есть Python. Создадим функцию генерации. Снова используем requests:

Вызовем функцию и положим результат в переменную:

Карандишик и блокнотик не пострадали, а у вас появилась полезная переменная xpires_iam_token.

Специально для вас по мотивам этого материала я написала маленький кусочек проекта виртуального дворецкого Butler. Звуковые эффекты входят в комплект 🙂

Философия, Лицензия и Мотивация

Как авторы моделей, мы считаем следующие правила использования моделей справедливыми:

  • Голоса из внешних источников приведены исключительно в целях демонстрации и будут удалены;
  • Любые из описанных выше моделей нельзя использовать в коммерческих продуктах;
  • Репозиторий опубликован под лицензией GNU A-GPL 3.0. Де-юре это не запрещает коммерческое использование, но по факту мы еще не встречали коммерческие решения с полностью открытым кодом, чего требует эта лицензия;
  • Если вы ставите своей целью некоммерческое использование наших моделей во благо общества — мы будем рады помочь вам с интеграцией моделей в ваше решение;
  • Если вы планируете использование наших моделей в личных целях (по фану или для озвучки каких-то текстов), то делитесь результатами своих экспериментов в репозитории;
  • Если вы планируете использование наших моделей в некоммерческих продуктах для людей с нарушениями речи или зрения — обращайтесь, мы поможем с интеграцией, чем умеем;

Делая этот проект мы ставили своей целью ценой многочисленных компромиссов показать, что современный TTS, удовлетворяющий описанным выше критериям, возможен. И для этого не нужно быть заложником закрытых экосистем корпораций.

Случайная простановка ударений и озвучка графем

Понятное дело, что для устранения этих недостатков надо правильным образом подготовить текст и обучать модель уже на нём, используя какой-то nlp-препроцессор. Начнём с того, как готовились данные.

Данные

Вот тут-то нам и пригодился наш отдел разметчиков: чтобы проставить ударения, над текстом трудились 5 разметчиков в течение двух недель. Результат – полностью размеченный ударениями датасет Руслан (ссылку см. ниже), который мы предоставляем сообществу для экспериментов. Но это касается только обучения, а что с инференсом? Тут всё просто: мы нашли словарь ударений (сначала аналог CMU dict для русского языка, а потом ). Дальше нужно было подготовить код для использования этого словаря, и вуаля — получаем контроль ударений для нашей системы синтеза.

Что касается более естественного озвучивания с помощью фонем, то мы рассматривали два репозитория для решения этой задачи: и . В итоге, первый не завёлся, второй оказался слишком медленным (0.24 секунды на предложение из 100 символов), а тут ещё и CMU словарь содержит не только ударения, но и фонетические записи слов, так что решили использовать его. Честно сказать, из-за отсутствия чёткого понимания, какие же всё-таки фонемы нужны, работа с этим словарём вылилась в обычную транслитерацию текста с периодически встречающейся редуцированной «о». Сейчас мы экспериментируем с фонетизатором на основе фонем из .

NLP-препроцессор

Для работы со словарями и конвертацией текста в фонемный вид пакет из оригинального репозитория такотрона уже не подходил, так что был заведён отдельный репозиторий для преподготовки текста. Опуская все подробности его разработки, резюмируем, каким функционалом он обладает на сегодняшний день:

  • единый пайплайн обработки, принимающий на вход отдельные модули, производящие свои собственные операции над текстом;
  • два готовых модуля для работы со словарями (ударник и фонетизатор);
  • методы модулей для разбиения текста на различные составляющие;
  • потенциал расширения арсенала модулей предобработчиков для русского и других языков.

Документация к репозиторию пока что находится в разработке.

Примеры

Контроль ударений:

Фонемы вместо графем:

Пример контроля фонем придётся показать на другом дикторе — Наталье — часть датасета которой вместе с весами (обычными, не фонемными) мы также выкладываем в открытый доступ (см. ссылку ниже).

Заодно приведём ещё пару синтезированных на open source модели примеров:

Управление умным домом Яндекса

На данный момент поддерживаются:

  • Кондиционеры — добавленные как через ИК-пульт, так и напрямую (например LG с Wi-Fi)
  • Обученные вручную ИК-команды — обученные вручную команды ИК-пульта (Пульт => Добавить устройство => Настроить вручную)

В конфиге нужно перечислить имена ваших устройств:

yandex_station:
  username: myuser
  password: mypass
  include:
  - Кондиционер  # имя вашего кондиционера
  - Приставка  # имя не ИК-пульта, а устройства, настроенного вручную

Кондиционер будет добавлен как термостат:

script:
  volume_up:
    alias: Сделай громче
    sequence:
    - service: remote.send_command
      entity_id: remote.yandex_station_remote  # поменяйте на ваше устройство
      data:
        command: Сделай громче  # имя кнопки в интерфейсе
        num_repeats: 5  # (опционально) количество повторов
        delay_secs: 0.4  # (опционально) пауза между повторами в секундах
  turn_on:
    alias: Включи телевизор
    sequence:
    - service: remote.send_command
      entity_id: remote.yandex_station_remote  # поменяйте на ваше устройство
      data:
        command:   # можно несколько кнопок
        delay_secs: 0.4  # (опционально) пауза между повторами в секундах

Как настроить правильную техподдержку (helpdesk, service desk на коленке)

Эта статья будет полезна для компаний, которые оказывают техническую поддержку своим пользователям — внешним или внутренним клиентам

В статье я расскажу, как оказываем поддержку мы, как выстроили этот бизнес-процесс, что контролируем и на что обращаем внимание в работе

Вы можете использовать наш опыт при построении собственной системы поддержки или обратиться к нам за помощью за построением такой системы, будем рады помочь. В статье формируется основной набор правил, которые мы сформировали при настройке системы для себя, а так же небольшие примеры того, как мы эти правила применяем.

Командная строка Яндекса

С её помощью мы сможем получать нужные ключи доступа, чтобы отправлять файлы с записями на сервер для обработки.

Весь процесс установки мы опишем для Windows. Если у вас Mac OS или Linux, то всё будет то же самое, но с поправкой на операционную систему. Поэтому если что — .

Для установки и дальнейшей работы нам понадобится PowerShell — это программа для работы с командной строкой, но с расширенными возможностями. Запускаем PowerShell и пишем там такую команду:

Она скачает и запустит установщик командной строки Яндекса. В середине скрипт спросит нас, добавить ли путь в системную переменную PATH, — в ответ пишем Y и нажимаем Enter:

Командная строка Яндекса установлена в системе, закрываем PowerShell и запускаем его заново. Теперь нам нужно получить токен авторизации — это такая последовательность символов, которая покажет «Облаку», что мы — это мы, а не кто-то другой.

Переходим по специальной ссылке, которая даст нам нужный токен. Сервис спросит у нас, разрешаем ли мы доступ «Облака» к нашим данным на Яндексе — нажимаем «Разрешить». В итоге видим страницу с токеном:

Теперь нужно закончить настройку командной строки Яндекса, чтобы можно было с ней полноценно работать. Для этого в PowerShell пишем команду:

Когда скрипт попросит — вводим токен, который мы только что получили:

Сначала отвечаем «1», затем «Y» и «4».

Облачные сервисы —

Послыешь запрос, получаешь

Yandex.SpeechKit

«распознавание и синтез речи, голосовую активацию и выделение смысловых объектов в произносимом тексте.»
Есть в виде облачного сервиса и HTTP API к нему и в виде Mobile SDK для iOS, Android и WindowsPhone которые шлют поток с микрофона на сервер для распознавания.
Платный для коммерческого использования, до 10000 запросов бесплатен, но нужно запросить API ключ и я его уже четвёртый день жду.
Можно попробовать установив приложение Яндекс.Диктовка и оно распознаёт практически идеально.

Работает на своём движке. Вот тут Яндекс рассказали как Распознавание речи от Яндекса. Под капотом у Yandex.SpeechKit
Поддерживает распознавание и синтез русского языка и только распознавание турецкого, разрабатывается поддержка английского, но есть возможность говорить с разными эмоциями (добрый, злой, нейтральный) что довольно прикольно как по мне. Ещё интересно что может учитывать гео координаты для более точного распознавания названий улиц.

Железки начали понимать. А мы их всё равно считаем глупымиПочему роботы разговаривают с нами только в кино

Очень интересная фишка: Выделение смысловых объектов из текста с помощью которого можно распознавать например даты (что самое интересное поддерживается украинский язык), имена и адреса, что очень полезно для голосового управления.

Центр речевых технологий

«Центр речевых технологий» российская компания делающая синтезаторы текста и другой софт например для голосовой аутентификации и распознавалки для спецслужб.
Семь голосов, один женский голос на казахском языке. Украинского нету.
Дают облачный API для синтеза VoiceFabric, вроде не дорого.

Ребята очень крутые и даже умудрились сгенерировать голос умершего человека:

Google Speech API

Голос неприятный и ограничение на длину текста примерно в сто букв, но зато есть все языки которые поддерживаются гугловым онлайн переводчиком, включая украинский, белорусский и казахский.
Говорят что внутри переводчик использует движок eSpeak о котором ниже.

J.A.R.V.I.S. — Java биндинг (врапер) к Google Speech API

Microsoft Bing translator (Microsoft Translator API)

Доступен всем через Azure и до двух миллионов символов в месяц бесплатен, если выше смотрите цены.
Русский и Украинский есть, всего 45 языков.
Выглядит солидно, но не пробовал в деле. Поскольку это Майкрософт то где-то подвох будет точно.

SpokenText

SpokenText lets you easily convert text in to speech. Record (English, French, Spanish or German) PDF, Word, plain text, PowerPoint files, and web pages, and convert them to speech automatically. Create .mp3 or .m4b (Audio Book) recordings (in English, French, Spanish and German) of any text content on your computer or mobile phone.

Java

Есть стандарт Java Speech API (JSAPI) и JSR 113: JavaTM Speech API 2.0 но с его реализацией похоже туго.
No reference implementation exists for JSAPI. Вот мне всегда было непонятно зачем тогда создавать стандарт.
Насколько я понял, синтезатор голоса был изначально во первой версии Java от Sun, но потом его вырезали в FreeTTS, и у IBM тоже была какая-то своя приблуда для этого IBM Speech.
Вот их FAQ можно найти ответы на другие вопросы и посмотреть древний список реализаций этого апи.

jsapi.sourceforge.net

Java Speech API
Wrapper for vendors to simplify usage of the Java Speech API (JSR 113). Note that the spec is an untested early access and that there may be changes in the API. Demo implementations support FreeTTS, Sphinx 4, Microsoft Speech API 5.4 and the Mac OSX speech synthesizer.
Т.е. это просто биндинг к другим сервисам.

FreeTTS

FreeTTS выглядит заброшенным но вполне рабочий. Я его уже использовал для озвучивания логов как Log4J Appender где он справлялся хорошо.
Изначально разрабатывался в лаборатории компании Sun. Поддерживает JSAPI 1.0 (а уже есть 2.0) но только по синтезу (), не по распознаванию.
Поддерживает три голоса английского, но вроде как можно импортировать MBROLA голоса но русского и украинского там нет.
Вообщем рекомендую для базового синтеза простых текстов.

FreeTTS is a speech synthesis system written entirely in the JavaTM programming language. It is based upon Flite: a small run-time speech synthesis engine developed at Carnegie Mellon University. Flite is derived from the Festival Speech Synthesis System from the University of Edinburgh and the FestVox project from Carnegie Mellon University.
Т.е. корнями FreeTTS уходит в плюсовые программы описанные тут ниже.

Как я уже говорил, проект заброшенный, но есть форк на Гитхабе который делается одним пацаном для софта для больных Афазией.

Вот пример кода с использованием: FreeTTS Hello World Java Maven.

MARY Text-to-Speech System (MaryTTS)

Более серьёзный синтезатор разработанный в немецком университете и имеющий коммерческое применение. Разработка поддерживается, последний комит был пять дней назад.
Поддерживаются американский и британский английский, мужской русский, немецкий, итальянский, шведский, турецкий, французский, телугу (язык юго-восточноо штата в Индии) и была попытка сделать тибетский и арабский (статья). Украинского нету.Список языков и голосов и если что можно сделать самому поддержку языка.

MARY is an open-source, multilingual Text-to-Speech Synthesis platform written in Java. It was originally developed as a collaborative project of DFKI’s Language Technology lab and the Institute of Phonetics at Saarland University and is now being maintained by DFKI. As of version 4.3, MARY TTS supports German, British and American English, Telugu, Turkish, and Russian; more languages are in preparation. MARY TTS comes with toolkits for quickly adding support for new languages and for building unit selection and HMM-based synthesis voices.

Я не пробовал в работе, но мне кажется что его вполне можно использовать в продакшене.

Знакомство с API Yandex SpeechKit

Представьте простую, максимально идеальную ситуацию без подводных камней типа “а если..”. Вы организуете закрытую вечеринку и хотите общаться с гостями, ни на что не отвлекаясь. Тем более на тех, кого вы не ждали.

Давайте попробуем создать виртуального дворецкого, который будет встречать гостей и открывать дверь только приглашенным.

Синтез текста через cURL

С помощью встроенной в bash команды export запишем данные в переменные:

Теперь их можно передать в POST-запрос с помощью cURL:

Рассмотрим параметры запроса:

speech.raw – файл формата LPSM (несжатый звук). Это и есть озвученный текст в бинарном виде, который будет сохранен в текущую папку.

lang=ru-RU – язык текста.

emotion=good – эмоциональный окрас голоса. Пусть будет дружелюбным.

voice=ermil – текст будет озвучен мужским голосом Ermil. По умолчанию говорит Оксана.

https://tts.api.cloud.yandex.net/speech/v1/tts:synthesize – url, на который отправляется post-запрос на синтез речи дворецкого.

Бинарный файл послушать не получится, тогда установим утилиту SoX и сделаем конвертацию в wav:

speech.wav – приветствие готово и сохранено в текущую папку.

Для проигрывания wav внутри кода Python, можно взять, например, библиотеку simpleaudio. Она простая и не создает других потоков:

Итак, наш первый гость стоит перед входом на долгожданную party. Пытается открыть дверь, и вдруг слышит голос откуда-то сверху:

«Привет, чувак! Назови-ка мне свои имя и фамилию?» (или ваш вариант)

Отлично! Вы научили дворецкого приветствовать гостей, используя командную строку и cURL. А пока гость вспоминает ответ, научимся работать с API на языке Python.

Распознавание текста с помощью requests

Мы могли бы снова воспользоваться cURL для отправки ответа гостя на распознавание. Но мы пойдем дальше и напишем небольшую программу, основанную на подобных запросах.

Создайте готовый аудио-файл с ответом гостя. Сделать это можно через встроенный микрофон на вашем ноутбуке разными инструментами. Для macos подойдет Quick Time Player. Сконвертируйте аудио в формат ogg: name_guest.ogg. Можно онлайн, например, тут

Итак, пишем код на Python:

Для отправки запросов в Python воспользуемся стандартной библиотекой requests:

Импортируем в код:

Зададим параметры, которые мы получили в командной строке:

Аудио необходимо передавать в запрос в бинарном виде:

Давайте обернем весь процесс распознавания в функцию recognize:

Итак, чтобы дворецкий смог проверить гостя по списку, вызовем функцию и распознаем ответ:

Теперь очередь за дворецким. В нашем случае, он вежлив ко всем. И прежде чем открыть или не открыть гостю дверь, он обратится лично. Например, так:

“Мы вам очень рады, <имя_и фамилия_гостя>, но вас нет в списке, сорян”

Для последующего синтеза вы можете снова воспользоваться CURL или так же написать функцию на Python. Принцип работы с API для синтеза и распознавания речи примерно одинаков.

Использование компонента

Начиная с версии Oktell 2.12, в служебных и IVR сценариях появился компонент «Синтез речи». Компонент озвучивает заданную фразу (синтезирует речь) с помощью сервиса Yandex SpeechKit. Позволяет сразу воспроизвести файл в линию, либо сгенерировать файл для последующего использования. В компоненте можно включить кэш, тем самым сохраняя все сгенерированные файлы в папку \Oktell\Server\LocalStorage\SynthesisCache. Так как каждый запрос к сервису Яндекс платный, то включенный кэш позволяет сэкономить ваши средства.

Для использования системы синтеза речи Yandex SpeechKit выполните следующие действия:

Шаг 1. Получить авторизационные данные на использование сервиса Yandex SpeechKit.

Шаг 2. Перейдите в Администрирование / Общие настройки / Распознавание речи Yandex SpeechKit Cloud. Введите полученные значения OAuth-токен и Идентификатор каталога в соответствующие поля

Нажмите «Сохранить«. Теперь вы можете использовать синтез речи в сценариях.

Шаг 3. Рассмотрим пример использования синтеза речи в IVR сценарии.

Компонент «Синтез речи«. Озвучивает приветствие абоненту и сохраняет выбор абонента в переменную.

  • Режим — Воспроизвести. В этом режиме компонент сразу воспроизводит сгенерированный файл в текущую линию.
  • Текст — строка «Здравствуйте! Вас приветствует компания Телефонные Системы! Для соединения с менеджерами нажмите 1. Для соединения с сотрудниками технической поддержки нажмите 2.«. Введенный текст будет передан на сервера Yandex для озвучивания.
  • Голос — Zahar. Настройка отвечает за синтезируемый голос: Zahar — мужской голос, Jane -женский. Возможно указание другого значения, если оно поддерживается сервисом Yandex SpeechKit.
  • Эмоция — По умолчанию. Настройка отвечает за используемую окраску голоса. Возможные варианты: good, neutral, evil, mixed.
  • Кэш — Использовать. Если использовать кэш, то система попытается найти файл с озвученным текстом среди сгенерированных ранее (находятся в папке \Oktell\Server\LocalStorage\SynthesisCache). Рекомендуется всегда включать в целях экономии средств.
  • Таймаут ожидания ответа, с — 5. Максимальное время ожидания ответа от серверов Яндекс.
  • Символы прерывания — строка «1, 2«. Если абонент нажмет на указанные символы прерывания, компонент сохранит их в буфер и перейдет к следующему блоку.
  • Буфер для DTMF — переменная ввод (строковая). Переменная, в которую сохранится введенный символ прерывания.
  • Очистить буфер — Да. Указывает на то, что буфер предварительно будет очищен.

Компонент «Меню«. Маршрутизирует абонента на выбранную группу операторов.

  • Аргумент — переменная Ввод
  • Значения —
1 — на компонент «Переключение 1»
2, прочее — на компонент «Переключение 2»

Настройка дальнейшей маршрутизации не рассматривается.

Русский

Список поддерживаемых фонем при использовании русского языка (). Подробнее о русской фонологии.

IPA X-SAMPA Описание Примеры
Согласные
b b твердая «б» (voiced bilabial plosive) рыба
b’ мягкая «б» (palatalized voiced bilabial plosive) бюро
d d твердая «д» (voiced alveolar plosive) дом
d’ мягкая «д» (palatalized voiced alveolar plosive) дядя
f f твердая «ф» (voiceless labiodental fricative) форт
f’ мягкая «ф» (palatalized voiceless labiodental fricative) финал
g g твердая «г» (voiced velar plosive) гол
ɡʲ g’ мягкая «г» (palatalized voiced velar plosive) герой
j j звук «й» (palatal approximant) я , дизайн
k k твердая «к» (voiceless velar plosive) кот , ку
k’ мягкая «к» (palatalized voiceless velar plosive) кино , кю
l l твердая «л» (alveolar lateral approximant) луч
l’ мягкая «л» (palatalized alveolar lateral approximant) лес
m m твердая «м» (bilabial nasal) мама
m’ мягкая «м» (palatalized bilabial nasal) меч
n n твердая «н» (alveolar nasal) нос
n’ мягкая «н» (palatalized alveolar nasal) няня
p p твердая «п» (voiceless bilabial plosive) папа
p’ мягкая «п» (palatalized voiceless bilabial plosive) пена
r r твердая «р» (alveolar trill) рок
r’ мягкая «р» (palatalized alveolar trill) рис
s s твердая «с» (voiceless alveolar fricative) суд
s’ мягкая «с» (palatalized voiceless alveolar fricative) сено , русь
ɕ: s: шипящая «щ» (long voiceless alveolo-palatal fricative) щит
ʂ s` шипящая «ш» (voiceless retroflex fricative) шест
t t твердая «т» (voiceless alveolar plosive) танк
t’ мягкая «т» (palatalized voiceless alveolar plosive) тётя
t͡s ts звонкая «ц» (voiceless alveolar affricate) царь
t͡ɕ ts\ глухая «ч» (voiceless alveolo-palatal affricate) чуть
v v твердая «в» (voiced labiodental fricative) вон
v’ мягкая «в» (palatalized voiced labiodental fricative) весы
x x твердая «х» (voiceless velar fricative) хор
x’ мягкая «х» (palatalized voiceless velar fricative) химия
z z твердая «з» (voiced alveolar fricative) зуб
z’ мягкая «з» (palatalized voiced alveolar fricative) зима
ʑ: z: буквосочетания «зж» и «жж» (long voiced alveolo-palatal fricative) езжу , вожжи
ʐ z` короткая «ж» (voiced retroflex fricative) жена
Гласные
ə @ Шва — безударные «а», «о» или «э» (mid central vowel) корова , молоко
a a ударная «а» или «я» (open front unrounded vowel) там , мяч , яма
ɐ 6 безударная «а» (near-open central vowel каравай , голова
e e ударная «е» (close-mid front unrounded vowel) печь
ɛ E ударная «э» (open-mid front unrounded vowel) это
i i ударная «и» (close front unrounded vowel) лист
ɪ I «е» или «и» после палатализованной согласной в безударном слоге (near-close front unrounded vowel) дерево
ɨ̞ I\ «е» или «и» после непалатализованной согласной в безударном слоге (near-close central unrounded vowe) жена
ɨ 1 ударная «ы» (close central unrounded vowel) рыло
o o ударная «о» (close-mid back rounded vowel) кот
u u ударная «у» или «ю» (close back rounded vowel) муж , вьюга
ʊ U безударная «у» или «ю» (near-close back rounded vowel) сухой , мужчина

Достоинства

Во вложении обработка Yandex speech в которой реализована функция проверки новых звуковых wav файлов в каталоге SpRecord , подгрузка их в 1С, далее получение доп. информации о длительности и номерах из SpRecord и далее нарезка файлов по 55 секунд и распознавание их в Yandex SpeechKit Cloud.

В обработке нужно:

— заполнить идентификатор каталога Yandex SpeechKit Cloud

— заполнить идентификатор OAuth

— путь к каталогу SOX.

— в каталог  SOX установить дополнительно opusenc и cURL 

— В функции ПолучитьМенеджера необходимо задать соответствие номера линии SpRecord и номера телефона менеджера.

— КаталогСФайлами путь к звуковым файлам разговоров программы SpRecord.

— СтрокаСоединения задать свои параметры подключения к SQl серверу

Копирование числовых ячеек из 1С в Excel Промо

Решение проблемы, когда значения скопированных ячеек из табличных документов 1С в Excel воспринимаются последним как текст, т.е. без дополнительного форматирования значений невозможно применить арифметические операции. Поводом для публикации послужило понимание того, что целое предприятие с более сотней активных пользователей уже на протяжении года мучилось с такой, казалось бы на первый взгляд, тривиальной проблемой. Варианты решения, предложенные специалистами helpdesk, обслуживающими данное предприятие, а так же многочисленные обсуждения на форумах, только подтвердили убеждение в необходимости описания способа, который позволил мне качественно и быстро справиться с ситуацией.

Бесплатный GPS-трекинг Промо

Современные технологии и возможности становятся все более доступными для широких масс и повсеместно используемыми, как для частного лица, так и для мелкого и среднего бизнеса.
Так и GPS-трекинг (отслеживание в реальном времени на карте местоположения водителей, курьеров, монтажных бригад, торговых представителей, детей, собак и т.п., а также просмотр статистики по их передвижениям и остановкам), становится сейчас все более востребованным сервисом, как для домашних условий, так и для предприятия.
И, если крупные фирмы (например, транспортные предприятия) подписав договора с коммерческими сервисами, оплачивая своевременно счета за устройства и абонплату, эту проблему для себя решили, то это скорее подходит для крупных корпоративных клиентов.
Что делать нам, простым смертным или небольшой фирме с несколькими водителями, например? Какие есть простые, надежные и недорогие решения?

Программы для озвучки текста

Если вам нужно постоянно озвучивать большие объемы текста из электронных документов, то самый удобный вариант — установить специальные приложения, которые умеют работать с файлами разного формата.

Балаболка

Балаболка — бесплатная программа озвучки для Windows от российских разработчиков. Она поддерживает работу с любыми голосовыми движками, установленными в системе. В ее интерфейсе есть стандартные инструменты для управления воспроизведением: пауза, остановка, перемотка, изменение скорости и громкости.

«Балаболка» умеет читать вслух текст из буфера обмена, произносить набираемые на клавиатуре фразы, озвучивать содержимое редактора или загруженных в нее файлов в форматах AZW, AZW3, CHM, DjVu, DOC, DOCX, EML, EPUB, FB2, FB3, HTML, LIT, MOBI, ODP, ODS, ODT, PDB, PDF, PPT, PPTX, PRC, RTF, TCR, WPD, XLS, XLSX.

Результат обработки «Балаболка» сохраняет как аудиофайл в форматах WAV, MP3, MP4, OGG и WMA. У нее также есть возможность сохранения текста внутри файлов MP3 для дальнейшего отображения в виде субтитров в медиапроигрывателе.

Govorilka

Govorilka — ещё одна программа для озвучки с минималистичным интерфейсом. Поддерживает голосовые движки устаревшего стандарта SAPI 4, в том числе на иностранных языках.

По умолчанию Govorilka озвучивает текст голосом стандартного движка Microsoft. В ее составе есть инструменты управления, традиционные для программ такого типа: воспроизведение, пауза, остановка, изменение скорости, громкости и высоты голоса. Одновременно в ней можно открыть до 8 вкладок с разными фрагментами текста.

Несмотря на простоту и устаревший интерфейс, «Говорилка» всё еще актуальна. Она умеет распознавать текстовые документы в разных форматах объёмом до 2 Гб и сохранять результат обработки в MP3 и WAV.

eSpeak

eSpeak — бесплатная программа для озвучки текста, доступная на Windows, macOS, Linux и Android. Она использует голосовые движки, установленные в системе, а также добавляет к ним несколько своих.

Версия этого приложения для Windows имеет максимально простой интерфейс и управление. Текст, который нужно прочитать, достаточно вставить в поле посредине окна, а затем нажать “Speak”.

Максимальный размер текста здесь явно не определен, но приложение справляется с большими объёмами. Также у него есть возможность читать тексты из файлов с расширением TXT, другие форматы не поддерживаются.

Для управления скоростью чтения в eSpeak используется ползунок Rate. Если вы хотите сохранить прочитанный текст в аудиофайл, нажмите на кнопку «Save to .wav» и задайте имя записи.

В мобильной версии приложения для Android аналогичная функциональность, разве что нет возможности сохранить текст в аудио.

Acapela TTS

Acapela Group разрабатывает программы для всех популярных операционных систем: Windows, macOS, Linux. Android, iOS. Среди главных достоинств этого софта — поддержка большого количества языков и отличное качество голоса. Мощные движки хорошо обучены и имеют развёрнутую справочную базу, которая позволяет им говорить правильно и выразительно.

Однако все продукты Acapela коммерческие. Установить приложение на компьютер или телефон можно бесплатно, но без купленного голосового движка в них нет никакого смысла. Стоимость одного пакета — 3,99 евро. Прежде чем оплачивать покупку, вы можете прослушать демо голоса с произвольным текстом, чтобы определить, подходит ли вам такое звучание.

ICE Book Reader Professional

Если вы ищите программу, которая будет озвучивать целые книги, то попробуйте ICE Book Reader Professional. Это приложение поддерживает различные форматы текстовых документов: TXT, HTML, XML, RTF, DOC и DOCX, PALM (.PDB и .PRC), PSION/EPOC (.TCR), Microsoft Reader (.LIT), Microsoft HELP files (.CHM) и FictionBook файлы (все версии) (.FB2, .XML). А для чтения в нем используются голосовые движки стандарта SAPI 4 и 5.

Программа умеет превращать книги в MP3/WAV-файлы. Это значит, что вы можете из любого произведения, доступного в текстовом формате, сделать аудиокнигу.

Скорость преобразования текста в голос в этом приложении увеличивается за счёт одновременного использования нескольких модулей синтеза речи.

Translate.google.com — бесплатный сервис для перевода текста и его синтеза

Гугл переводчик является одним из самых популярных и наилучших сервисов, который предоставляет комплекс самых разных услуг. Например, всем известный переводчик имеет функцию озвучивания веденного текста, причем на всех поддерживаемых языках. Качество озвучки местами низкое, но в целом приемлемое. Если вы переводите печатный текст в речь для изучения языка, то синтезатор Google Translate подойдет вам идеально

Самое важное в этом сервисе то, что он является простым и доступным каждому пользователю в сети Интернет

Для озвучки набранного текста нажмите на кнопку в виде динамика.

Как синтезировать текст в Translate.google.com

Для того, чтобы воспользоваться сервисом от Гугл:

  1. Перейдите на страницу https://translate.google.com;
  2. Выберите необходимый язык, нажав кнопку «Определить язык»;
  3. Затем введите текст в окне там, где выбирали язык;
  4. Теперь нажмите на пиктограмму граммофона внизу окна, и вы сможете услышать воспроизведение текста женским голосом.

Недостатком его является отсутствие возможности скачать воспроизведенный синтез речи в файле на свой компьютер. Также нет каких-либо настроек голоса или выбора исполнителя.

Подготовимся. Настройка профиля CLI

Активация аккаунта на облаке

Для использования сервиса YSK у вас должна быть почта на Yandex. Если у вас её нет, то самое время завести.

Будьте готовы к тому, что вам потребуется еще подтвердить свой номер мобильного телефона. Без этого, увы, сервисы будут недоступны.

Почта есть. Теперь самое время перейти на cloud.yandex.ru. Перейдя в консоль надо активировать пробный период пользования сервисом. Для этого надо привязать платежную карту. Как только вы это сделаете вам будет доступен грант на 60 дней.

В облака – через командную строку

Для понимания, как работает распознавание и синтез, мы потренируемся в командной строке. Например, в iTerm.

Для отправки запросов на API через командную строку установим утилиту cURL. Перед установкой проверьте, возможно, она у вас уже есть ($ curl —version):

Теперь настроим Интерфейс Яндекс.Облака для командной строки (CLI). Запустим скрипт:

Перезапустите командную оболочку. В переменную окружения PATH добавится путь к исполняемому файлу – install.sh.

Теперь нам нужно, чтобы в CLI заработало автодополнение команд в bash:

Если у вас еще нет менеджера пакетов Homebrew, установите его. Он вам не раз пригодится, обещаю.

Затем ставим пакет bash-completion:

и посмотрим, что изменилось в файле ~/.bash_profile:

Примечание: ~/.bash_profile используется для пользовательских настроек, в частности – для определения переменных окружения.

Видим, что в конце bash_profile добавились новые строчки:

Выше новых строк вставьте эту:

Набираем команду:

 и получаем приветственное сообщение:

 Вам предложат выбрать облако (скорее всего у вас оно единственное):

Далее по желанию выберете Compute zone. Пока пользователь один – этим можно пренебречь.

Посмотрим, как выглядят настройки профиля CLI:

Мы в шаге от старта. Осталось добыть второй ключ (в настройках профиля он не будет отображаться): 

Полетели!

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Adblock
detector