Tinkoff VoiceKit - неплохой онлайн-сервис для синтеза речи, но неудобный для использования в компьютерных программах. Аудиоданные возвращаются в экзотическом формате RAW_OPUS, который годится только для потокового синтеза речи. Мне же нужен непотоковый синтез.
То есть, все остальные онлайн-сервисы в мире используют стандартные форматы MP3, OggOpus или OggVorbis. Есть стандартные библиотеки для работы со звуковыми форматами. Для RAW_OPUS этого нет.
Ситуация интересна еще и тем, что разработчики Tinkoff VoiceKit имели планы по добавлению поддержки стандартных аудиоформатов. Вот что написано в их документации:
Код
enum AudioEncoding { // Формат кодирования аудио. Задаёт и контейнер, и кодек.
ENCODING_UNSPECIFIED = 0;
LINEAR16 = 1;
reserved "FLAC"; reserved 2;
reserved "MULAW"; reserved 3;
reserved "AMR"; reserved 4;
reserved "AMR_WB"; reserved 5;
reserved "OGG_OPUS"; reserved 6;
reserved "SPEEX_WITH_HEADER_BYTE"; reserved 7;
ALAW = 8;
reserved "LINEAR32F"; reserved 9;
reserved "OGG_VORBIS"; reserved 10;
RAW_OPUS = 11;
reserved "MPEG_AUDIO"; reserved 12;
}
Для формата OggOpus они зарезервировали специальное значение константы; значит, думали об этом, что-то планировали.
Хорошо, написал в службу поддержки, попросил добавить поддержку формата OGG_OPUS. Поначалу их ответ вселил в меня оптимизм:
Цитата
Поддержка OGG OPUS уже есть в backlog'e наших задач, но не было до этого запросов от пользователей, поэтому не реализовывали. По возможности постараемся взять в работу.
Но после обмена еще несколькими письмами получил вот такое сообщение:
Цитата
Насчёт поддержки Ogg Opus, Ogg Vorbis, MP3 - в первую очередь мы ориентировались на стриминг (не на REST), а для него в них особого смысла нет. Но мы рассмотрим задачу, как лучше их встроить в Synthesize, с учётом других design flaws этого метода.
Прошло еще какое время, я напомнил им о своей просьбе:
Цитата
Пожалуйста, добавьте для непотокового синтеза речи Synthesize поддержку формата кодирования аудио OGG_OPUS. В Ваших примерах на GitHub можно увидеть зарезервированное значение константы для этого формата.
Получил вот такой ответ:
Цитата
К сожалению, нам пока не удалось взять в работу данный кейс, т.к. запросов на эту доработку, кроме Вашего, больше не поступало. Мы сообщим Вам о смене статуса данной задачи.
Хм, что ж, раз я единственный, кого это вообще интересует, заранее предупреждаю пользователей "Балаболки": до конца года поддержка сервиса Tinkoff VoiceKit будет убрана из моей программы. Попросил добавить поддержку звукового формата, который есть у всех других онлайн-сервисов, мне ответили отказом; всё понятно.