Всем привет! Мы — команда компании «Наносемантика», и недавно мы запустили проект SOVA, где занимаемся сбором датасета для использования его в обучении нейронных сетей и создания виртуальных ассистентов на базе искусственного интеллекта. Мы подготовили большой датасет для обучения движков распознавания речи и хотим поделиться им, чтобы компании могли внедрять его у себя для решения  разного рода бизнес-задач. Данные – это новая нефть, а одна из важнейших причин прогресса в системах распознавания на базе машинного обучения – наличие размеченных датасетов. Если вы интересуетесь исследованиями и разработками в области речевой аналитики – заходите под кат.В 2019 году «Наносемантика» получила грант от фонда РВК, в рамках которого необходимо к концу 2022 года подготовить один из крупнейших открытых датасетов в России. Это отличная возможность для нас сделать действительно полезный датасет. Он будет включать в себя 30000 часов аудиозаписей с отекстовками, 3 языка ( русский, английский и китайский) и огромное количество дикторов, аудио от которых будет использоваться в датасете. Датасет будет поэтапно выложен в открытый доступ (бесплатно), чтобы разработчики со всего мира могли использовать его для обучения нейронных сетей, создавать собственных виртуальных ассистентов с искусственным интеллектом и обучать системы распознавания речи.  Перед тем, как начать работать с данными и формировать датасет, у нас возникли вполне очевидные вопросы: какие данные можно использовать и где найти такие данные. Для себя мы приняли четыре важных решения: Датасет должен быть актуальным и универсальным, то есть содержать данные, необходимые для решения широкого круга современных задач. На данный момент англоязычная часть датасета представлена аудиокнигами, русская — начиткой текста и живой речью. До конца года мы планируем добавить значительно больше живой речи. Датасет должен содержать исходные данные. Очень часто можно встретить датасеты, которые содержат только аннотации и ссылки на исходные аудио, опубликованные где-то в сети, т. е. сами аудио не выкладываются. Такой подход без сомнения является простым и снимает ответственность с автора датасета за использование данных, перекладывая его на пользователя датасета. Но ссылки на исходные материалы устаревают, опубликованные материалы удаляются авторами, и датасет становится непригодным для использования.   Датасет должен содержать легальные данные и распространяться по разрешительной лицензии.  Данные в датасете должны быть высокого качества. Мы стараемся избегать добавления искусственных шумов и аугментаций и тщательно следим за тем, чтобы текст и аудио максимально соответствовали друг другу. Эти четыре условия трудно соблюдать, но без них вся работа не имеет смысла, ведь качество данных — это основа качественного продукта. Как ни странно, одним из самых сложных в реализации пунктов оказался третий: не так-то просто получить доступ к большим данным, не нарушив ни одного закона и не поправ чьи-то права на интеллектуальную собственность. Поэтому прежде чем перейти к описанию данных, нам придется немного углубиться в правовые аспекты, тем более, что именно с них мы и начали свою работу. Что такое РИД РИД (результат интеллектуальной деятельности) – это правовой термин, означающий итог использования творческих и духовно-интеллектуальных процессов человеческого мышления. Например, фильм, рисунок, книга, аудиокнига, игра, код программы, стул и т. д. (с) Wikipedia Кому вообще могут принадлежать права? Права на РИД могут принадлежать одному человеку и нескольким сторонам: автору, издательству, диктору, переводчику, также  РИД может являться общественным достоянием. «Общественное достояние»: это РИД, на которые истек срок охраны авторских прав. Например, в Российской Федерации произведения, как правило, переходят в общественное достояние через 70 лет после смерти автора. Но есть и исключения, когда права унаследовали родственники или компания. Понимание общественного достояния в разных странах свое, поэтому нужно быть аккуратными с зарубежными РИД. Подробнее по различиям в разных странах можно почитать тут, но лучше консультироваться с юристом. Кроме того, бывает РИД, сделанный на основе общественного достояния. Например, аудиокниги Пушкина. Само произведение является общественным достоянием, но вот аудио с голосом диктора уже РИД издательства, и для использования такой аудиокниги нужно получить разрешение издательства. РИД, размещенные в интернете (сайты, социальные сети, результаты в поисковике и т. д.), также охраняются авторским правом, поэтому необходимо обращать внимание на лицензию, под которой они публикуются. Как правило, название лицензии указывается рядом с РИД, либо на ресурсе, где размещается РИД, создается отдельная страница с текстом лицензии. Например, "Правила цитирования/использования материалов с сайта", "Пользовательское соглашение" и т. д., где содержится необходимая информация. В итоге, какие РИД можно использовать для создания датасета? Для создания датасета можно использовать РИД: полученные законным способом не нарушающие права исходных владельцев не имеющие ограничений на модификацию не имеющие ограничений на использование и последующее распространение Таким требованиям соответствуют следующие РИД: полученные на основании лицензионного договора или письма-согласия являющиеся общественным достоянием и не обремененные смежными правами с лицензией Creative Commons Attribution – CC BY (но при обязательном соблюдении условий, упомянутых в лицензии) с лицензией Creative Commons Zero – CC0 с лицензией WTFPL – Do What The Fuck You Want To Public License В качестве хорошего тона и подтверждения чистоты мы решили указывать все источники и авторов данных, используемых в датасете. Что нужно сделать для получения прав на использование РИД (коммерческий источник)? Со всеми коммерческими организациями и физическими лицами требуется заключение лицензионного договора, в котором обязательно указывается формальная стоимость лицензии соответствия ГК РФ. Согласно пункту 5.1.статьи 1235 ГК РФ не допускается безвозмездное предоставление права использования результата интеллектуальной деятельности или средства индивидуализации в отношениях между коммерческими организациями на территории всего мира и на весь срок действия исключительного права на условиях исключительной лицензии, если настоящим Кодексом не установлено иное. Что нужно сделать для получения прав на использование РИД (некоммерческий источник)? Так как ГК РФ предъявляет требования только к коммерческим организациям и исключительной лицензии, то при работе с некоммерческими источниками будет достаточно получить официальное письмо-согласие на использование РИД. При необходимости может быть подписан лицензионный договор на безвозмездной основе. Разобравшись с юридическими тонкостями, вернемся к сути и расскажем, какие источники данных мы в итоге решили использовать, и как мы это делали. Аудиокниги Подход к этому типу данных мы начали с изучения рынка аудиокниг в РФ и со знакомства с издательствами. Как оказалось, это достаточно маленький и закрытый рынок. С большим трудом нам удалось пообщаться с 20 издательствами различного уровня. Половина нам отказала сразу же при первом звонке, четверть – спустя какое-то время. Основные причины отказов: отсутствие соответствующих прав или их ограниченный срок действия отсутствие интереса безвозмездно делиться данными страх, что мы заберем работу у дикторов банальное отсутствие желания тратить свое время Тем не менее, нам удалось найти несколько издательств, которые согласились поделиться данными. С каждым издательством мы подписали лицензионное соглашение об использовании данных. Весь текст соглашения приводить не будем, но, например, по одному из условий соглашения мы обязуемся использовать в датасете только обезличенные фрагменты книг и не публиковать целое произведение в исходном виде. Таким образом, мы снимаем риски и опасения авторов данных. Конечно же, всегда остается относительно простой способ получить данные от издательств: покупка прав на использование РИД, но это окажется слишком дорого, при том, что дальше ещё потребуется потратиться на подготовку и разметку данных. Хочется выразить особую благодарность первопроходцам – ЛитРес и издательству ИДДК за проявленный интерес и оказанную помощь. Запись текста Хорошим по качеству данных и понятным с юридической стороны является запись подготовленного текста. В данном случае мы сами нанимаем дикторов, готовим для них тексты и оплачиваем их работу.  Очевидные плюсы этого метода: Можно подготовить разнообразные тексты с большим количеством слов, выражений, сделать текст сбалансированным Опытные дикторы практически не делают ошибок во время записи, таким образом, на перепроверку записей не надо тратить много ресурсов Большое количество дикторов разного возраста и пола помогает создать большую вариативность датасета С каждым диктором мы подписываем договор, права на РИД закрепляются за нами и в дальнейшем мы можем использовать записи или программы, сделанные с использованием этих записей Минусы этого метода: Переговоры и подписание договора с диктором занимают много времени. От момента начала переговоров до первой записи может пройти несколько месяцев Достаточно большая стоимость записи Стоит также отметить, что поиск дикторов – это достаточно сложная задача. Дикторы привыкли работать с понятными для них проектами: запись рекламных роликов, озвучка аудиокниг, озвучка фраз для голосового приветствия. Когда речь заходит о записях для искусственного интеллекта, дикторы часто не понимают, как будет использована их работа, боятся подписывать договор. Многие не желают работать с синтезом голоса, думая, что полученная программа сможет полностью их заменить: например, голосом диктора будут озвучиваться рекламные ролики, игры, фильмы, и диктор таким образом станет невостребованным. На объяснение всего процесса и пунктов в договоре часто уходит очень много времени. Также сразу возникает вопрос контроля этого процесса. Предположим, у вас 20 дикторов записываются одновременно. Кто-то уже скоро закончит работу, кто-то только начал первый текст. Как организовано получать от них аудиозаписи, как контролировать, сколько часов было записано каждым диктором; как проверить записи диктора на предмет наличия ошибок, помех, шумов? И это лишь часть возникающих вопросов. Для их решения мы разработали нашу собственную программу для записи аудио. Основные ее плюсы: Диктор может легко переключаться между текстами. Диктор может прослушать свои ранее сделанные записи и при необходимости перезаписать аудио. Диктор и наша команда видят, сколько всего было записано аудио с точностью до секунд, поэтому легко оценить проделанную работу. Аудио из программы можно быстро проверить в админке программы, при желании они также легко загружаются в нашу специализированную программу для разметки — Маркер. Программу можно открыть на компьютере в студии (подключив компьютер к микрофону и аудиокарте), таким образом, можно получать запись очень высокого качества. Режим с подсветкой ударения в словах, который можно включить, если диктору удобнее работать таким образом. Все записанные данные уже хранятся в нашей базе данных, диктору или профессиональной студии не надо отправлять их нам после каждой новой записи. С помощью этой программы мы делаем все записи подготовленного текста на данный момент, также она используется нами для создания датасетов для синтеза речи. После подписания договора запись аудио делается довольно быстро и также быстро может быть проверена и добавлена в датасет. Живая речь Наличие живой речи очень важно в датасете для распознавания речи, ведь в реальной жизни люди не зачитывают текст, и нейросеть, обученная исключительно на начитке, плохо справляется с распознаванием реальных разговоров.  Для решения этой задачи мы договорились с командой VoicyBot, которая предоставляет пользователям мессенджера «Телеграм» возможность распознавания голосовых сообщений в текст с помощью бота. Ребята согласились включить наш сервис по распознаванию речи в список тех, что можно выбрать при установке бота, и мы начали получать поток живой речи. Разумеется, при выборе нашего решения пользователей предупреждают, что их данные могут быть использованы.  Также мы очень хотели добавить в датасет телефонные звонки. Это особый вид данных, который невозможно качественно симулировать аугментациями, а распознавание телефонных звонков — одна из самых частых задач, возникающих на рынке распознавания речи. Однако получить разрешение на выкладывание в Open Source записей звонков от контактных центров или бизнеса практически невозможно: записи будут содержать коммерческую информацию и персональные данные. Мы попробовали пойти необычным путем: разработали сервис, который позволяет осуществлять бесплатные звонки, а взамен мы будем использовать записи звонков, о чем заранее предупреждаем пользователей. К сожалению, пока этот сервис не дал нам достаточного количества данных, но мы работаем над тем, чтобы это исправить. В качестве временного решения мы все же добавили в датасет несколько тысяч часов аугментированных данных.  Youtube С данным источником мы практически не работали и только делаем первые шаги. Права на все опубликованные в Youtube видео принадлежат их авторам (каналу), который сделал публикацию. Единственным легальным способом будет получение от автора письма, разрешающего использовать видео с канала с указанием условий, или подписание лицензионного договора. Свои первые шаги мы решили начать с каналов крупнейших вузов нашей страны. Мы получили разрешения на использование материалов, опубликованных в каналах Дальневосточного Федерального Университета (FEFU) и МГИМО, за что очень благодарны коллегам. Чуть позднее мы также обратили внимание, что существуют видео, которые при публикации были специально отмечены лицензией Creative Commons – CC BY. Такая лицензия позволяет модифировать и переиспользовать РИД при соблюдении условий лицензии. Найти такие видео можно с помощью стандартного поиска YouTube и затем применить фильтр “Лицензия Creative Commons”. Для упрощения работы можно воспользоваться официальным API Youtube.  EngAudiobooksOriginal — английские аудиокниги, оригинальное воспроизведение дикторов, запись на профессиональную аппаратуру. EngAudiobooksNoisy — английские аудиокниги с аугментацией под телефонные звонки. RuAudiobooksDevices — русские аудиокниги, оригинальное воспроизведение дикторов, запись на профессиональную аппаратуру. RuDevices — русская живая речь, запись на мобильные устройства и другую непрофессиональную аппаратуру. Типичные ошибки в датасетах — обрезанные в начале или в конце слова, небольшие ошибки в отекстовках. Очень редко и только в аудиокнигах попадаются и полностью не совпадающие строки. Для измерения качества датасета мы использовали параметр CER — Char Error Rate. Этот параметр показывает символьное расстояние Левенштейна между правильной отекстовкой и имеющимся вариантом. Мы использовали его номализованный вид, то есть отношение к символьной длине строки.  Среднее значение нормализованного CER для каждого датасета — не более 5. Проще говоря, можно считать, что 95% всех пар аудио-текст — корректные. Прежде чем обрабатывать данные, мы выявили стандартные параметры для всех аудиозаписей:  Кроме того, мы договорились, в каком виде будет представлены датасеты: набор аудио-файлов, каждый из которых имеет совпадающий с ним по названию текстовый файл с соответствующей отекстовкой. Помимо приведения к стандартным параметрам все полученные фрагменты мы очищаем от излишней тишины и шума в конце и в начале фрагмента. Для описания технической подготовки данных удобно условно разделить их на два типа: данные с заранее известным текстом и без него. В первый входят аудиокниги, начитка текста и Youtube (если есть субтитры), а во второй — живая речь. Их обработка принципиально разная. Записи с известным текстом Сейчас этот тип наиболее широко представлен в выложенных нами данных, так как получить и обработать такие данные в большом объеме оказалось проще и дешевле, чем живую речь. Главная особенность обработки — использование технологии forced alignment или «выравнивания» текста, которая позволяет получить таймштампы последовательных фрагментов текста для соответствующего им аудио с помощью синтеза речи. Эффективность ее работы напрямую зависит от степени соответствия аудио и текста, что сразу же усложняет обработку аудиокниг, так как в них постоянно встречаются расхождения, которые сложно отследить заранее. Это может быть другой перевод, перепутанный порядок глав, дополнительные комментарии чтеца или целая глава, посвященная используемой электронной библиотеке. Поэтому после «выравнивания» полученный результат необходимо проверить. Такую проверку мы реализовали с  помощью распознавания речи: полученные фрагменты мы распознаем лучшей из имеющихся моделей NLab Speech и далее сравниваем результаты с получившейся после «выравнивания» отекстовкой. Таким образом мы убираем практически все некорректные пары аудио-текст. Стоит отметить, что зачитанные дикторами тексты не нуждаются в «выравнивании», так как созданное нами приложение позволяет зачитывать и записывать небольшие фрагменты текста отдельно друг от друга. Однако для этих данных мы тоже используем проверку на случай, если при зачитке что-то пошло не так. Живая речь При обработке живой речи текст нам заранее неизвестен, поэтому здесь наша первая задача — максимально хорошо нарезать аудио, избегая обрывов слов на середине. Для этого мы используем Voice Activity Detector — нейросеть, умеющую определять наличие человеческой речи в заданном сэмпле. Длина сэмпла выбирается небольшая: от 30 до 100 миллисекунд. Получив разметку типа речь-не речь для аудиозаписи, мы нарезаем ее на фрагменты с речью не короче 100 миллисекунд и не длиннее 10 секунд. Причина такой верхней планки — не только возможное ограничение обучаемой модели, но и ухудшение качества следующего этапа: ручной разметки. Перед ручной разметкой мы также готовим предварительную отектовку для каждого фрагмента с помощью распознавания речи: наши эксперименты показали, что размечать запись значительно удобнее и быстрее, если у нее уже есть хотя бы примерная отекстовка. Для ручной разметки мы написали собственное приложение «Маркер», уже упоминавшееся выше. На этом этапе наша команда разметчиков поправляет текст при расхождении с аудио, а также отмечает все неподходящие для обучения фрагменты: записи на другом языке, наложение голосов, шумы и так далее. Действительно полезных открытых датасетов на русском языке практически нет. Мы потратили некоторое время на поиски и постарались собрать все известные нам датасеты на русском языке в едином списке. Common Voice. Открытый и мультиязычный набор голосовых данных, который любой желающий сможет использовать для обучения голосовых приложений. В настоящее время набор данных состоит из 7 335 проверенных часов на 60 языках Russian Speech Database (STC Russian). Датасет записан в 1996-1998 годах для проведения исследований и содержит речь 89 человек различных возрастов и пола. Фактически датасет состоит из 5 предложений. Каждый спикер читает каждое предложение 15 раз в разное время на протяжении 1-3 месяцев. Датасет распространяется на коммерческой основе, стоимость варьируется от 200 до 4000 EUR в зависимости от типа лицензии. Владельцем датасета является Европейская Ассоциации языковых ресурсов. В каталоге на сайте можно найти еще несколько датасетов на русском языке, как правило не превышающих 10-30 часов. CSS10 Russian: Single Speaker Speech Dataset. Датасет создан двумя датасаентистами в рамках коллекции CSS10 (A Collection of Single Speaker Speech Datasets for 10 Languages) и содержит примерно 22 часа русской речи, полученной из аудиокниг с LibriVox. Распространяется по лицензии CC0: Public Domain. M-AILABS Speech Dataset. Датасет содержит примерно 46 часов русской речи, полученной из аудиокниг с LibriVox. Распространяется по собственной свободной лицензии. Russian LibriSpeech (RuLS). Еще один датасет, созданный исключительно с использованием аудиокниг с LibriVox. Содержит примерно 98 часов и распространяется по свободной лицензии. Russian Open Speech To Text (STT/ASR) Dataset, также известный как OpenSTT. Пожалуй, единственный полезный датасет в данном списке. Коллеги собрали порядка 20000 часов аудио (примерно 2,3 TB в формате .wav). Данные получены из различных источников, например, YouTube, радио, телефонные звонки и аудиокниги. Датасет живой и периодически пополняется данными. Распространяется по лицензии CC-BY-NC (коммерческое использование возможно только после соглашения с авторами). Эти датасеты представляют большой интерес для разработчиков, однако у них есть ряд проблем:  во всех датасетах, кроме OpenSTT, очень небольшой размер данных, что не позволяет провести полноценное обучение таких сложных алгоритмов, как нейронные сети OpenSTT не обладает одинаковым качеством всех данных, отекстовки не всегда соответствуют аудиозаписям. Проводить обучение с использованием такого датасета уже намного интереснее, но общее качество данных не позволяет гарантировать успех при обучении. OpenSTT нельзя использовать для коммерческих целей по двум причинам: не позволяет лицензия + данные не имеют легального происхождения. Таким образом, для качественного обучения нейросетей перечисленных выше датасетов не хватит. Мы постарались учесть эти моменты, когда готовили наш датасет SOVA и план последующих обновлений для него. В будущих обновлениях мы планируем расширить вариативность данных в датасете, вместе с соответствием отекстовок и аудиозаписей это даст преимущество датасету SOVA перед всеми вышеперечисленными датасетами. Поделитесь с нами в комментариях, если знаете другие датасеты на русском языке,  и мы дополним список. По состоянию на февраль 2021 года SOVA Dataset содержит 11,402 часа размеченных данных. Это примерно 1,1 TB аудио в формате .wav. Преимущественно датасет состоит из аудиокниг на русском и английском языках, а также из записей живых разговоров. Датасет опубликован в Open Source и распространяется по лицензии CC-BY 4.0. Лицензия позволяет использовать данные в коммерческих целях, копировать, распространять и создавать производные материалы. Ссылка для загрузки датасета доступна в репозитории SOVA Dataset на GitHub. В течение текущего года запланировано несколько небольших обновлений, в том числе технических. Мы постараемся оптимизировать размеры и предоставить альтернативные способы загрузки датасета. Основное обновление датасета произойдет в декабре 2021 года. В датасет будет добавлено примерно 10000 часов данных на русском, английском и китайском языках. Источники пополнятся публичной живой речью, профессиональными записями читки, аудио с Youtube и радио. Если смотреть еще дальше в будущее, то до конца 2022 года датасет будет содержать не менее 30000 часов данных. Упомянутый в статье SOVA Dataset – часть более крупного Open Source проекта SOVA.ai: мы делаем открытую платформу для создания голосовых помощников. Нас поддержал государственный фонд РВК. Государство в принципе поддерживает Open Source проекты, в том числе, в рамках Федерального проекта «Искусственный интеллект». Например, в этом году запланированы конкурсы Фонда Содействия, Фонда Сколково и РФРИТ для компаний-разработчиков ИИ и Open Source библиотек для ИИ. Мы очень хотим внести свой вклад в развитие технологий распознавания и синтеза речи в нашей стране и мире. Надеемся, что SOVA Dataset будет полезен студентам, датасаентистам и бизнесу.  Мы всегда рады обратной связи, предложениям и помощи. Если у вас есть аудио, которыми вы готовы поделиться, пожалуйста, свяжитесь с нами по почте partnership@sova.ai. Руководитель отдела сбора и разметки данных