Синтез речи из текста с помощью яндекс speechkit

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

Чтобы внедрить речевую аналитику на базе Yandex SpeechKit, нужно подготовиться: выстроить логику разговора и маршрутизацию звонков, настроить интеграцию, подобрать правильные словари синонимов. Вы можете сделать это самостоятельно или пригласить наших партнёров, которые умеют решать такие задачи.

Что могут компании-партнёры?

  • Построить логику целевого разговора, подобрать словари синонимов и подготовить основу для разметки текста.
  • Автоматизировать процесс передачи аудиофайлов на распознавание и перевод в текст.
  • Автоматизировать анализ текста и выделить показатели, важные для вашего бизнес-процесса. Обычно это: профили клиентов, источники информации о компании или предложении, факт следования скрипту, наличие или отсутствие кросс-продажи, соблюдение стандартов (приветствие, прощание, представление), эмоциональный фон речи и причины негатива, наличие дополнительных запросов и т. д.
  • Настроить передачу данных об отклонениях во внутренние системы для выделения отклонений и оперативных мер, настроить отчетность.

Совет

У Яндекс.Облака более 50 компаний-партнёров, которые реализуют решения на базе Yandex SpeechKit. , и мы подберём лучшего исполнителя для вашей задачи и ответим на любые вопросы.

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

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

Балаболка

Балаболка — бесплатная программа озвучки для 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-файлы. Это значит, что вы можете из любого произведения, доступного в текстовом формате, сделать аудиокнигу.

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

Git + 1С. Часть 1. Как подключиться к команде разработки и начать использовать Git

Первая статья из цикла инструкций по работе с Git в 1С-разработке. Рассмотрим, как настроить рабочее место, как получить свою «копию» проекта для разработки и приступить к полезным действиям. Все примеры будут изложены в рамках трёх практических кейсов: 1. Моя команда дорабатывает типовую конфигурацию, использует приватный репозиторий на BitBucket, в котором версионируются внешние отчеты/обработки, расширения конфигураций и правила обмена; 2. Я участвую в стартап-команде, которая разрабатывает свою конфигурацию с использованием Git и GitLab; 3. Я принимаю участие в развитии OpenSource-продукта на GitHub как заинтересованный разработчик (контрибьютор).

Настраиваем доступ

Есть два способа работать с сервисом SpeechKit: через IAM-токен, который нужно запрашивать заново каждые 12 часов, или через API-ключ, который постоянный и менять его не нужно. Мы будем работать через ключ, потому что так удобнее.

Чтобы его получить, нам нужен сервисный аккаунт в «Облаке». Создадим его так.

1. Заходим в консоль управления и нажимаем на единственную папку в нашем облаке:

2. Выбираем «Сервисные аккаунты» → «Создать»:

3. Вводим имя (какое понравится), затем нажимаем «Добавить роль» и выбираем «editor»:

4. Заходим в сервисный аккаунт, который только что создали:

5. Нажимаем на кнопку «Создать новый ключ» и выбираем пункт «Создать API-ключ»:

Сервис спросит про описание — можно ничего не заполнять.

6. Сохраняем отдельно секретный ключ — он выдаётся только один раз и восстановить его нельзя. Выделяем, копируем и сохраняем в безопасное место:

Знакомство с 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 для синтеза и распознавания речи примерно одинаков.

Условия и ограничения

Распознавание речи — платная услуга, но Яндекс даёт 60 дней и 3000 ₽ для тестирования. За эти деньги можно распознать 83 часа аудио — больше трёх суток непрерывного разговора. Это очень много: за время подготовки этой статьи и тестирования технологии мы потратили 4 рубля за 3 дня.

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

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

Последнее — из-за особенностей нашей речи и произношения SpeechKit может путать слова, которые звучат одинаково (код — кот) или ставить неправильное окончание («слава обрушилось на него неожиданно»). Решение простое: прогоняем такой текст через орфонейрокорректор и всё в порядке. Одна нейронка исправляет другую — реальность XXI века

Всё, приступаем.

Иногда результат получается вот таким, но на понимание текста это не сильно влияет.

Reviews

http-equiv=»Content-Type» content=»text/html;charset=UTF-8″>lass=»plugin-reviews»>

I’ve tried several text-to-speech services and found Speechkit to be the best. It’s easy to set up and work with, the choice of voices is superior and the price is very economical.

I use it to «speechify» articles on my blogs to give readers an additional way to engage with the content.

I can recommend Speechkit without reservation.

SpeechKit — superb product and superb support.

As someone who does a lot of content marketing, I’m always looking for ways to get more mileage out of what I publish. When I heard about this, I was a little hesitant — since most text-to-speech audio is of such poor quality. Since I know podcasts are increasing in popularity, however, I finally decided to pull the trigger… and am so happy that I did. It’s VERY easy to set up, and customer support is off-the-charts. I ran into a snafu with something my web developer did, and a bunch of super old articles ended up in rotation. They were amazingly helpful in cleaning up the mess. And have been very responsive in answering questions that I’ve had along the way. This is a tremendous value, and I couldn’t be happier with my decision.

We’ve used this plugin on Irish Tech News since their beta days and have found it to be excellent. It creates automated versions of articles without any input needed and the audio files can be shared as a podcast too. There is a far larger selection of voices now that can be used and have become more natural. Keep up the great work!

We have been using Speechkit now for a few weeks and love it!! Works really well and is simple to implement and add to our pages. We have also managed to use the app within our directory of disabled listings so its versatile to use across our whole platform.

Followed installation instructions.

Published a test page. No widget shown.

Uninstalled.

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

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

Данные

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

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

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

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

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

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

Примеры

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

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

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

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

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

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

Расширение для браузера

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

VoiceIn Voice Typing

VoiceIn Voice Typing — расширение создано на основе распознавания речи от Google. Оно позволяет использовать расшифровку на любом сайте и при этом работать в любом редакторе. Есть пробная версия с минимальными возможностями. Подписка стоит 25 долларов в год.

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


Скриншот настроек и блокнота, куда записывается голос

Важно! Ряд похожих расширений для браузера — Speech Recognition Anywhere и Voice to Text. Особенности:

Особенности:

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

Плюсы:

Поддерживает более 120 языков.

Минусы:

Полный функционал доступен в платной версии.

Получение команд от станции

Только для продвинутых пользователей

Для работы функционала должна быть настроена интеграция Home Assistant с умным домом Яндекса!

  1. Настройте список фраз, на которые ваши станции должны реагировать и ответы на них. Если не хотите ответ — просто поставьте точку как в примере. При первом запуске копонент создаёт служебный медиа-плеер .
  2. Синхронизируйте ваши устройства в мобильном приложении Яндекса, чтоб этот плеер появился и там. Не нужно его переименовывать и перемещать в комнаты.
  3. Перезапустите Home Assistant. В мобильном приложении Яндекса должны появиться ваши сценарии.

В ответ на эти фразы в Home Assistan будет генерироваться событие типа с произнесённым текстом. Теперь можете писать свои автоматизации на YAML или Node-RED.

yandex_station:
  username: myuser
  password: mypass
  intents:
    Покажи сообщение: ага
    Какая температура в комнате: .
    Какая влажность в комнате: .

automation:
- trigger:
    platform: event
    event_type: yandex_intent
    event_data:
      text: Покажи сообщение
  action:
    service: persistent_notification.create
    data:
      title: Сообщение со станции
      message: Шеф, станция чего-то хочет

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

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

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

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

Краткий Обзор Решений

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

Конкатенативные модели (появившиеся до DL бума). Из того, что хоть как-то поддерживается и живо и можно запустить «as-is» без археологических раскопок, я нашел только rhvoice (я глубоко не копал, но есть целые форумы, посвященные использованию голосов из Windows, но вряд ли это можно назвать поддерживаемым решением). На момент, когда я пользовался проектом ради интереса, он по сути был заброшен, но потом у него появился новый «хозяин». К плюсам такого рода решений можно отнести их скорость и нетребовательность к ресурсам (исключая ресурсы, чтобы заставить это работать). Очевидный и основной минус — звучит как говорилка. Менее очевидный минус — довольно тяжело оценить стоимость обладания. Качество звучания: 3+ по пятибалльной шкале;

DL-based модели в основном разделяют end-to-end TTS задачу на подзадачи: текст -> фичи и фичи -> речь (вокодинг). Практически повсеместно для первой подзадачи используется Tacotron2. Выделим следующие сочетания моделей в соответствии с их эффективностью и простотой использования:

Tacotron2 + WaveNet (оригинальный WaveNet принимал на вход лингвофичи, но для такотрона поменяли на более удобные мелспектрограммы). Основная проблема — очень медленный инференс ввиду авторегрессионности модели и необходимость запретительно большого количества ресурсов и времени. Качество звучания: 4+;

Tacotron2 + WaveRNN (тоже с переходом от лингвофичей к спектрограммам). Вокодер заметно быстрее предыдущего: при использовании всех хаков можно получить даже риалтайм синтез без GPU, правда естественность звука несколько просядет. Качество звучания: 3.5-4;

Tacotron2 + Parallel WaveNet. Упомянутый выше медленный вокодер был использован в качестве учителя для получения новой довольно быстрой параллельной модели вокодера: с ней стал возможен синтез быстрее риалтайма, но все еще на мощных GPU. Из недостатков — дистилляция требует качественную учительскую модель и соответствующую схему обучения. Качество звучания: 4+;

Tacotron2 + multi-band WaveRNN. Тоже развитие предыдущих идей, тоже распараллеливание в некотором смысле — здесь доступен синтез быстрее риалтайма уже на CPU. Однако, не слишком популярная работа, меньше имплементаций и поддержки, хотя некоторые подходы хороши и были успешно использованы в более поздних моделях; Качество звучания: 3.5-4+;

Tacotron2 + LPCNet. Интересная идея про сочетание DL и классических алгоритмов, что может дать буст по скорости до подходящего для продакшена уровня и на CPU, но требует вдумчивого допиливания для качественных результатов. Качество звучания: 3.5-4+;

Многочисленные решения на базе Tacotron2 + Waveglow от Nvidia как нынешний стандарт для задачи синтеза речи. Никто не пишет про свой «секретный соус» (например как 15.ai делает голос по 15 минутам и сколько там моделей в цепочке). Есть много имплементаций и репозиториев, которые «копируют» чужой код. Может звучать на cherry-picked примерах неотличимо от живых людей, но когда смотришь реальные модели от комьюнити, качество заметно варьируется, а детали улучшенных решений не раскрываются. Архитектурно к такотрону и его аналогам по скорости и цене обладания претензий нет, но Waveglow очень прожорлив к ресурсам как на тренировке, так и в продакшене, что делает его использование по сути нецелесообразным. Качество звучания: 3.5-4+;

Замена Tacotron2 => FastSpeech / FastSpeech 2 / FastPitch, то есть уход к более простой сетке (на базе forced-align от такотрона и миллион более хитрых и сложных вариантов). Из полезного дает контроль темпа речи и высоты голоса, что неплохо, вообще упрощает и делает более модульной конечную архитектуру

Немаловажно, что сетка перестает быть рекуррентной, что открывает просторы для оптимизаций по скорости. Качество звучания: 3.5-4+;

Вопросы

  • Почему вы используете консольные команды, а не REST-запросы по API?

  • В первых версиях этой обработки я использовал запросы напрямую из 1С. Но поскольку при распознавании коротких аудиозаписей мне приходилось запускать базу 1С в несколько потоков, четыре базы 1С, запущенные на одном компьютере, существенно съедали память. Из-за этого и перешли на Curl.

  • Разве у вас файловая база? В клиент-серверной базе можно пользоваться фоновыми заданиями, сделать REST-запрос на сервере. Такая возможность есть очень давно. У меня тоже используется подобное решение, правда для других целей – стартует несколько фоновых потоков, каждый из которых что-то выполняет. В вашем случае это дало бы очень сильный выигрыш.

  • Как вы решаете случаи, когда одно слово отправлено в разных кусках – будет ли оно распознано?

  • У нас есть исходная расшифровка и есть расшифровка менеджера, который приводит исходную расшифровку в более читаемый текстовый вид, потому что все равно исходное распознавание получается не стопроцентное – аналоговая АТС вносит свои коррективы. Например, при проверке онлайн-распознавания на сайте Яндекса, слова, сказанные в микрофон с ноутбука, распознаются лучше, чем загруженные из файла телефонного разговора, записанного через обычный аналоговый аппарат АТС. Соответственно, менеджеру приходится исправлять за Яндексом ошибки. Так эта проблема и решается.

  • Сколько времени заняла реализация проекта и какое количество суммарно сотрудников менеджеров телефонных звонков у такая статическая информация о понять масштабы?

  • Я на слайде приводил статистику – с 2017 года было обработано 118 тысяч звонков. У нас работает где-то 45 менеджеров, в месяц они наговаривают 5 гигабайт этих телефонных разговоров. Такое количество звуковой информации можно спокойно распознать в четырех потоках. Яндекс предоставляет 20 потоков, соответственно, еще есть куда расти.

  • Когда вы конвертируете wav-файлы в OggOpus, вы не пробовали играться, на каком битрейте уже распознавание хуже?

  • Я пробовал менять частоту дискретизации. Соответственно, сейчас он по умолчанию там на 11000 0,25 герц я пробовал увеличить в два раза до 22000. Размер файла увеличился в два раза, стоимость распознавания увеличилась, но качество не очень увеличилась. Скажу по опыту, что легче поставить хорошие телефонные аппараты, убрать фоновое звучание музыки – сделать тихий кабинет. Тогда все распознается идеально. Допустим, когда распознается автоответчик, что-то наговаривает, то когда Яндекс пытается это преобразовать в текст все идеально получается. Когда менеджер комкает слова либо быстро говорит – соответственно, возможны проблемы. То есть легче поменять оборудование и просить менеджеров следить за четким произнесением ключевых слов. Например, еси нужно, чтобы зафиксировалась слово «Заказ», то они должны четко сказать «Заказ», тогда это слово точно отделится пробелами от всех остальных слов и можно будет делать по нему поиск.

  • Что делать с переадресацией звонков на мобильный, звонки с мобильных, в WhatsApp и так далее? Или у вас все только через корпоративную АТС и других вариантов нет?

  • Если в компании используется мобильная телефония, то лучше перейти на цифровые АТС, например, на MANGO. Нашими силами это не решить – если звонок ушел с АТС, SPRecord его не запишет, и он не будет расшифрован.

*************

Данная статья написана по итогам доклада (видео), прочитанного на INFOSTART MEETUP Saint Petersburg.Online. Больше статей можно прочитать здесь.

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

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

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

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

iex (New-Object System.Net.WebClient).DownloadString(‘https://storage.yandexcloud.net/yandexcloud-yc/install.ps1’)

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

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

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

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

yc init

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

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

Использование сервиса

Создание клиентского приложения

Для распознавания речи приложение сначала должно отправить , а потом отправлять .

Параллельно с тем как отправляются аудиофрагменты, в ответ сервис будет возвращать , которые необходимо обрабатывать, например выводить их в консоль.

Чтобы приложение смогло обращаться к сервису, необходимо сгенерировать код интерфейса клиента для используемого языка программирования. Сгенерируйте этот код из файла stt_service.proto из репозитория Yandex.Cloud API.

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

Авторизация в сервисе

В каждом запросе приложение должно передавать идентификатор каталога, на который у вас есть роль или выше. Подробнее в разделе Управление доступом.

Также приложение должно аутентифицироваться при каждом запросе, например при помощи IAM-токена. Подробнее об аутентификации в сервисе.

Результат распознавания

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

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

Ограничения сессии распознавания речи

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

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

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

  • Максимальная длительность переданного аудио за всю сессию — 5 минут.

  • Максимальный размер переданных аудиоданных — 10 МБ.

Если в течение 5 секунд в сервис не отправлялись сообщения или достигнут лимит по длительности или размеру данных, сессия обрывается. Чтобы продолжить распознавание речи, надо заново установить соединение и отправить новое сообщение с настройками распознавания.

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

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

Adblock
detector