image

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

Мы торопимся исправить это годами длящееся недоразумение.

Итак, мы предлагаем вашему вниманию набор данных из 4000 часов аннотированной устной речи, собранный из различных интернет-источников.

Подробности под катом.

Вот данные по текущей версии 0.3:
Тип данных Аннотация Качество Фразы Часы GB
Книги alignment 95% / чистый 1,1M 1,511 166
Звонки ASR 70% / шумный 837K 812 89
Генерированные (русские адреса) TTS 100% / 4 голоса 1,7M 754 81
Речь из видео с YouTube субтитры 95% / шумный 786K 724 78
Книги ASR 70% / шумный 124K 116 13
Другие датасеты начитывание и alignment 99% / чистый 17K 43 5

А вот вам сразу ссылка на сайт нашего корпуса.

Будем ли мы развивать проект дальше?


Наша работа на этом не закончена, мы хотим получить хотя бы 10 тысяч часов аннотированной речи.

А дальше мы собираемся делать открытые и коммерческие модели для распознавания речи с использованием этого датасета. И вам предлагаем присоединяться: помогайте нам улучшать датасет, используйте его в своих задачах.

Почему наша цель 10 тысяч часов?


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

Что ещё сделать, чтобы улучшить качество распознавания, если данных по-прежнему не хватает?


Зачастую, можно приспособить нейросеть к вашим дикторам через начитку дикторами текстов.
Также можно приспособить нейросеть к словарю из вашей предметной области (языковая модель).

Как мы делали этот датасет?


  • Нашли каналы с качественными субтитрами в YouTube, скачали аудио и субтитры
  • Давали аудио для распознавания другим системам распознавания речи
  • Начитывали адреса робо-голосами
  • Нашли в интернете аудиокниги и тексты книг, после чего разбили на фрагменты по паузам и сопоставили одно с другим (так называемая задача «alignment»)
  • Добавили имеющиеся в интернете маленькие русские датасеты.
  • После этого преобразовали файлы в единый формат (16-bit wav, 16 kHz, mono, иерархическое расположение файлов на диске).
  • Метаданные сохранили в отдельном файле manifest.csv .

Как это использовать:


Файловая БД


Расположение файлов определяется их хешами, вот таким образом:

target_format = 'wav'
wavb = wav.tobytes()
f_hash = hashlib.sha1(wavb).hexdigest()
store_path = Path(root_folder,
                  f_hash[0],
                  f_hash[1:3],
                  f_hash[3:15]+'.'+target_format)

Чтение файлов


from utils.open_stt_utils import read_manifest
from scipy.io import wavfile
from pathlib import Path
manifest_df = read_manifest('path/to/manifest.csv')

for info in manifest_df.itertuples():
    sample_rate, sound = wavfile.read(info.wav_path)
    text = Path(info.text_path).read_text()
    duration = info.duration

Файлы manifest содержат тройки: имя аудио-файла, имя файла с текстовым описанием, и длительность фразы в секундах.

Фильтрация файлов только определённой длины


from utils.open_stt_utils import (plain_merge_manifests,
                                  check_files,
                                  save_manifest)
train_manifests = [
 'path/to/manifest1.csv',
 'path/to/manifest2.csv',
]
train_manifest = plain_merge_manifests(train_manifests,
                                        MIN_DURATION=0.1,
                                        MAX_DURATION=100)
check_files(train_manifest)
save_manifest(train_manifest,
             'my_manifest.csv')

Что почитать или посмотреть на русском языке, чтобы лучше познакомиться с задачей распознавания речи?


Недавно в рамках курса Deep Learning на пальцах мы записали лекцию про задачу распознавания речи (и немного про синтез). Возможно, она будет вам полезной!


Лицензионные вопросы


  • Мы выкладываем датасет под двойной лицензией: для некоммерческих целей мы предлагаем лицензию cc-by-nc 4.0, для коммерческих целей — использование после договорённости с нами.
  • Как обычно в таких случаях, все права на использование данных, входящих в датасет, остаются у их владельцев. Наши права распространяются на сам датасет. Для научных и образовательных целей при этом действуют отдельные правила, смотрите законодательство вашей страны.

Ещё раз сайт проекта для тех, кто не увидел ссылку выше.

Комментарии (45)


  1. snakers4
    06.05.2019 22:58

    И да, contributions are welcome, давайте все вместе приблизим Imagenet-момент для TTS, возможно не только для русского)


    Какие-то грабли мы уже собрали, там немного неидеально закодировано все, плюс хорошо бы наверное еще mp3 версию сделать, но полагаю, тот кто будет качать, все еще раз соберет.


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


    Также с учетом того, как хорошо современные модели адаптируются под домены, если кто-то докинет еще один домен, это очень поможет генерализации модели)


    1. DoctorStein
      07.05.2019 15:15

      Ну не знаю, делать contribution в cc-by-nc + коммерция, это на любителя.


      1. snakers4
        07.05.2019 15:50

        Почему?


        1. DoctorStein
          07.05.2019 16:19

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


          1. snakers4
            07.05.2019 16:25

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


            Если вы представляете бизнес — то как Юрий подметил — пишите на почту, все обсуждается.


            Если вы делаете общественно полезное дело — цена для вас будет стремиться к нулю — условно закинуть копейку на хостинг или данных докинуть и пользуйтесь.


            Мы хотим избежать негативных кейсов, описанных ниже .


            1. DoctorStein
              07.05.2019 16:30

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


          1. buriy Автор
            07.05.2019 16:34

            Момент верно подмечен, надо бы его как-то прояснить в постах, что ли.
            1) Мы добавим новых значительных контрибьюторов в соавторы при единогласном голосовании имеющихся контрибьюторов, как раз чтобы новые контрибуторы тоже имели возможность заработать на совместном проекте денег.
            2) Вы и так, будучи автором, имеете возможность одновременно включить свои наработки в проект (передать свой вклад в этот проект) и при этом использовать его самостоятельно для коммерческих проектов.
            То есть, при включении в проект, передача права не эксклюзивна.


        1. vedenin1980
          07.05.2019 16:22

          Думаю вы прекрасно понимаете, что cc-by-nc 4.0 несвободная лицензия даже по определению Creative Commons, это скорее вид триальной лицензии, причем с совершенно неизвестным ценником, если производный продукт вдруг окажется можно будет как-то монетезировать. По сути, получается предлагается бесплатно вкладывать труд в развитие чужого закрытого коммерческого проекта.

          Поэтому заголовок

          Огромный открытый датасет русской речи

          честнее написать
          Огромный бесплатный для некоммерческого использования проприетарный датасет русской речи


          Я не говорю, что ваша работа неполезная для ряда случаев, просто это никак не opensource.


          1. buriy Автор
            07.05.2019 17:08

            А мы и не писали «open source» (что часто понимается как «free for all»), мы написали «открытый». Открыт он для многих вариантов использования (но не для всех), и открыт для контрибуции.
            «Закрытый» и «проприетарный» — это другой край вариантов использования, у нас же получается что-то среднее.


      1. buriy Автор
        07.05.2019 16:18
        +1

        Значительных контрибуторов мы в авторы добавим, вот вообще не проблема.
        Условная коммерция — вещь сложная, а «договоримся» не означает «хотим вагон бабла».
        Для социальных и общественно-полезных проектов, для каких-нибудь роботов мы наверняка сможем договориться и о нулевой цене (или смешной цене), а для такого выбора лицензий были несколько иные причины: максимально снизить легальные риски, чтобы совсем уж нехорошим применениям датасета можно было при этом отказать, чтобы быть в курсе коммерческих применений датасета, чтобы кто-нибудь другой не смог его продавать, чтобы была легальная возможность себя закрепить авторами, чтобы была легальная возможность получить за него деньги при использовании его в коммерческом проекте (и потребовать деньги — при его использовании в крупном проекте крупной компании без малейшей ссылки на нас), чтобы добиться большей популярности и получить ссылки на нас при его использовании в научных работах.
        Предлагайте альтернативные варианты лицензирования, может, мы выбрали не оптимальный вариант.


        1. DoctorStein
          07.05.2019 16:27
          +2

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


          1. buriy Автор
            07.05.2019 16:38
            +1

            Ну, до бесконечности новых контрибьюторов тут и нет смысла привлекать. Ну будет 10к часов, 20к часов, ну увеличим его качество — и всё, придём в тупик.


            1. snakers4
              07.05.2019 16:43

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


              А это другая история


              Про количество — ну Mozilla и как его там — voxforge (?) кажется привлекали всех подряд. И там для русского пока даже близко нормальное количество не собралось


              Интересно ещё разные домены пособирать для генерализации


  1. snd3r
    06.05.2019 23:20
    +1

    КДПВ на миллион, включил только из-за него:


    1. buriy Автор
      07.05.2019 13:48

      Надо попробовать другой слайд поставить, хабр не очень удачный слайд вообще в супер-кашу превратил.



  1. begemot_sun
    07.05.2019 09:11
    +1

    А может торрент стоит сделать? а то сегодня вы есть, завтра вас нет — а торренты помогут найти вас в веках.


    1. snakers4
      07.05.2019 09:38
      +1

      А может торрент стоит сделать?

      Все разы, что пользовался академическими торрентами даже для сильно более мейнстримных датасетов, там не особо было возможно скачать что-то быстро. Тут размер будет в 5-10 раз больше. Наверное сделаем mp3 версию рано или поздно (надеюсь будет такой запрос от коммьюнити).


      Делая торрент нужно будет иметь или арендовать несколько физических машин с хорошим интернетом и большим диском в разных регионах (Европа + Россия как минимум). Думаю это будет стоит баксов 20-50 в месяц живых денег. Девбоксы свои палить не хочется совсем.


      Если у вас есть такие машины и вы готовы посидировать, то сделаем, вай нот.


      а то сегодня вы есть, завтра вас нет — а торренты помогут найти вас в веках.

      Обратите внимание, что файлы хостятся на AWS-подобном бакете, где высокая скорость скачивания и даже имеется CDN для кеширования.


      И судя по биллингу, кто-то уже накачал на 3.5 TB =)
      Я пока не особо волнусь, т.к. в свое время набрал кредитов на DO по рефералке на 600 долларов.


      Если хотите помочь хостингу датасета — можете также просто задонатить или воспользоваться рефкой на DO.


      PS
      И что совсем характерно, деньги на хостинг бакета пришли из реферальной программы DO, а статью соответствующую на хабре/гт забанили =)


      1. begemot_sun
        07.05.2019 10:51

        Я просто пробегал мимо, ваш набор не будет сильно меняться, а это значит что это идеальный вариант торрента. Просто сделайте торрент файл и выставите его в своем торрент клиенте, со временем набор расползется по сети и вы съэкономите свои 600 долларов для лучших применений.


        1. snakers4
          07.05.2019 10:54

          в своем торрент клиенте

          у меня нет машины, где я был бы готов это сделать (по ряду причин) =(


          1. amarao
            07.05.2019 11:13

            Поднимите deluged на той же машине, на которой у вас сайт крутится.


            1. snakers4
              07.05.2019 13:50

              Кстати машину я нашел с гигабитным каналом
              Так что будет и mp3 и торрент


              1. akreal
                08.05.2019 15:01

                Могу помочь с кодированием и сидированием, если ещё нужно.


                1. snakers4
                  08.05.2019 15:10

                  Напишите в личку плиз
                  Спасибо


        1. buriy Автор
          07.05.2019 13:57

          Меняться он будет, думаю, дополнения будут уже в мае.
          Если будет торрент, то к нему вроде бы можно добавлять части.
          Или можно сделать несколько торрентов поменьше. Попробуем.


          1. Halt
            07.05.2019 20:04

            Для меняющихся данных можно использовать IPFS


      1. snd3r
        07.05.2019 11:14

        А какой практический смысл держать аудио в wave и платить за хостинг 431 GB, пусть и фантиками? В mp3 это было бы подъемные любому 43 GB, а то и меньше.


        1. snakers4
          07.05.2019 11:18
          +1

          держать аудио в wave

          для тренировки сеток — читать лучше из wav, сильно быстрее, процессоры можно занять чем-то другим
          да что-то сначала было весьма мало данных — гигов 50-100
          потом все заверте, да и я не посмотрел какие там расценки за трансфер — думал будет 10 баксов в месяц и ладно
          я сейчас уже сижу конвертирую в mp3)


          платить за хостинг 431 GB, пусть и фантиками

          за хостинг там копейки
          в вот за скачивание — да, весьма ощутимые суммы


          подъемные любому 43 GB

          Скорее сжатие будет раза в 3-4 судя по тестам


          1. snakers4
            07.05.2019 11:57

            Я полазил по инету
            Рекомендуют битрейт 64 с ним как раз 3-4 раза
            16-32 как-то опасливо конечно


        1. buriy Автор
          07.05.2019 13:46

          Ваши расчёты верны для wav для стерео на 44100Гц, где большая избыточность, а у нас — моно на 16кГц, и иногда с фоновыми шумами, так что сильное сжатие небезопасно. Так что скорее всего будет сжатие раза в 3, но вот ещё mp3- и ogg-энкодеры не очень быстрые, и такое сжатие придётся может даже несколько дней считать. Но мы доберёмся до этого (если нас кто не опередит — предложения помощи приветствуются!)


  1. lotse8
    07.05.2019 12:37
    -1

    Хотим денег, но на нормальный хостинг 20-50 usd в месяц не имеем.
    Попробуйте магию, эзотерику или еще что-то подобное, чтобы без посева рожь заколосилась. Успехов.


    1. buriy Автор
      07.05.2019 14:01

      А кто хочет денег, и за что?
      >на нормальный хостинг 20-50 usd
      Там, скорее, будет в первый месяц $1000, во второй и последующие — $50.
      Подумаем, как быть.


  1. kraidiky
    07.05.2019 14:19
    +1

    Чувак! Ты памятник воздвиг себе нерукотворный!!!


  1. CryptoPirate
    07.05.2019 17:18

    Лицензионные вопросы

    Мы выкладываем датасет под двойной лицензией: для некоммерческих целей мы предлагаем лицензию cc-by-nc 4.0, для коммерческих целей — использование после договорённости с нами.
    Как обычно в таких случаях, все права на использование данных, входящих в датасет, остаются у их владельцев. Наши права распространяются на сам датасет. Для научных и образовательных целей при этом действуют отдельные правила, смотрите законодательство вашей страны.

    Вот этот момент не очень понятен. Если моя запись в датасете, то все права на неё у меня, вы её по сути хотите продавать. Тут явно не всё гладко с юридической точки зрения.
    Тот же самый вопрос в случае с ImageNet не стоит, там комерческое использование не предполагается. Я чего-то не правильно понял?


    1. buriy Автор
      07.05.2019 17:52

      Ваша запись в датасет может попасть в двух случаях:
      1) если вы её легально в него передадите.
      Но и в этом случае права на неё у вас, кроме эксклюзивности в тех правах, которыми вы поделились с нами по лицензии.
      И мы не только и не столько собираемся её продавать, но и давать бесплатно использовать для кучи различных применений. Также гляньте на обсуждение в ветке выше.
      2) вы можете сделать производный датасет с этой же cc-by-nc, включить туда свою строчку, и добавить себя как автора.
      ( «Adapt — remix, transform, and build upon the material» в описании лицензии ).
      Тогда мы не сможем её продавать и бесплатно отдавать по договорённости (коммерческая часть пропадёт).
      Нас это тоже вполне устраивает!

      Ещё можно договориться с нами, стать контрибутором и совместно с нами продавать/распространять весь большой датасет. (Можно сказать, что мы таким образом и объединились.)


      1. vedenin1980
        07.05.2019 18:50
        -1

        Речь скорее всего о другом. Вот у вас есть, например, «речь из видео с YouTube». Насколько я знаю, YouTube категорически запрещает скачивать свой контент без разрешения, плюс непонятно как вы решаете вопрос с авторскими правами авторов роликов (то что кто-то залил ролик на YouTube совершенно не означает, что передает всем право на что-либо кроме просмотра на ютубе). Как вы решаете вопрос с авторами оригинальных роликов и правилами YouTube и т.п. сервисов?

        Что будет если к тем кто пользуется вашим корпусом придут правообладатели оригинального аудио/представители гугла или у вас эти вопросы уже решены?


        1. vedenin1980
          07.05.2019 19:08
          -1

          Ради интереса, открыл, например, описание Caito.de dataset, там сказано:

          Redistribution and use in any form, including any commercial use, with or without modification are permitted provided that the following conditions are met:

          Redistributions of source data must retain the above copyright notice, this list of conditions and the following disclaimer.


          У вас нет упоминания, что данный датасет распостраняется по указанной лицензии, что уже нарушение opensource лицензии. Боюсь с остальными данными юридическая чистота (а это главное если вы их распостраняете) тоже под вопросом и может ваших клиентов сильно подвести.


          1. buriy Автор
            07.05.2019 19:51
            +1

            Спасибо, исправим этот момент. Про voxforge уже написали, что там GNU GPL 3.0


        1. buriy Автор
          07.05.2019 19:51
          +1

          Всё правильно говорите.
          Я так понял, что вы пропустили Disclaimer: «Как обычно в таких случаях, все права на использование данных, входящих в датасет, остаются у их владельцев. Наши права распространяются на сам датасет.»
          То есть, ситуация примерно такая же, как с ImageNet: то, что мы что-то заэмбедили не значит, что вы этим можете пользоваться для той цели, для которой вы хотите.
          Коммерческая компания, использующая такой датасет в распространяемом продукте, должна убедиться в нужной для их задач лицензионной чистоте.
          Это ещё одна причина именно такой нашей лицензии.

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

          А распространять данные мы можем до тех пор, пока нам кто-то не объяснит, почему мы не можем (и какими-либо доказательствами, что это его контент, ведь мы его нашли в интернете без пометки, что это именно его контент). Тогда мы уберём этот кусок данных.
          Такая вот вынужденная временная opt-out политика. Мы считаем, что это лучше, чем ничего. И наличие ImageNet, устроенного похожим образом, нас в этом убеждает.


          1. Niakris
            08.05.2019 10:25

            Как мы делали этот датасет?
            • Нашли каналы с качественными субтитрами в YouTube, скачали аудио и субтитры
            • Нашли в интернете аудиокниги и тексты книг


            Авторы каналов на ютуб указаны, и Вы не могли их не заметить, когда скачивали. С книгами аналогично, но еще дикторы есть и издательство, которое эту озвучку спонсировало. И у них всех есть какие-то права, как исключительные, так и не исключительные.

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

            Вообще-то не можете. Про нашли в интернете и «я не я, корова не моя», написано выше. Вы знали заранее всех авторов и осознанно это проигнорировали. И Вам доказывать автор ничего не обязан. Это Вы должны будете доказывать, что взяли произведение с его согласия, а не разместили по собственному усмотрению.

            Тогда мы уберём этот кусок данных.

            К сожалению, Вы уже так просто не отделаетесь. Этот кусок данных к этому моменту могли скачать тысячи людей. И просто так изъять его у них не получится. А значит, Вы уже принесли какой-то убыток авторам. Дальнейшие действия на усмотрение авторов: могут простить, а могут в суд подать. Причем второе вероятней, так как Вы датасет с их кровным произведением продавали, а с ними не поделились.


  1. akreal
    08.05.2019 14:33
    +1

    Большое спасибо за публикацию! Думали ли вы о выделении некоторых частей датасета специально для валидации/тестирования? Добавляя или меняя данные в датасете, желательно иметь возможность сделать бенчмарк и увидеть эффект от изменений.


  1. snakers4
    08.05.2019 14:39

    Думали.
    Но честно говоря пока не до конца ещё понимаем домен и генерализацию. В аудио оч много зависит от голосов, домена и числа данных.


    Пока валидируемся просто на фиксированном случайном stratified семпле где точность разметки 95% + некоторые приватные сеты.


    1. akreal
      08.05.2019 14:55

      Фиксированный случайный stratified сэмпл вполне сошёл бы за такой бенчмарк, до тех пор пока не найдётся каких-то проблем в нём (самая легко проверяемая — одинаковые предложения в training и testing). Если не сложно, могли бы вы выложить список реплик и результат (WER или CER) на них? Мне бы хоть что-то для сравнения, если соберусь экспериментировать :)


      1. snakers4
        08.05.2019 15:12

        Можно сделать
        Мб выложу в тикет просто в репо
        По-хорошему надо конечно заводить репозиторий с моделями и пре-трейном но рановато чутка