Специалистам по распознаванию речи давно не хватало большого открытого корпуса устной русской речи, поэтому только крупные компании могли позволить себе заниматься этой задачей, но они не спешили делиться своими наработками.
Мы торопимся исправить это годами длящееся недоразумение.
Итак, мы предлагаем вашему вниманию набор данных из 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)
begemot_sun
07.05.2019 09:11+1А может торрент стоит сделать? а то сегодня вы есть, завтра вас нет — а торренты помогут найти вас в веках.
snakers4
07.05.2019 09:38+1А может торрент стоит сделать?
Все разы, что пользовался академическими торрентами даже для сильно более мейнстримных датасетов, там не особо было возможно скачать что-то быстро. Тут размер будет в 5-10 раз больше. Наверное сделаем mp3 версию рано или поздно (надеюсь будет такой запрос от коммьюнити).
Делая торрент нужно будет иметь или арендовать несколько физических машин с хорошим интернетом и большим диском в разных регионах (Европа + Россия как минимум). Думаю это будет стоит баксов 20-50 в месяц живых денег. Девбоксы свои палить не хочется совсем.
Если у вас есть такие машины и вы готовы посидировать, то сделаем, вай нот.
а то сегодня вы есть, завтра вас нет — а торренты помогут найти вас в веках.
Обратите внимание, что файлы хостятся на AWS-подобном бакете, где высокая скорость скачивания и даже имеется CDN для кеширования.
И судя по биллингу, кто-то уже накачал на 3.5 TB =)
Я пока не особо волнусь, т.к. в свое время набрал кредитов на DO по рефералке на 600 долларов.
Если хотите помочь хостингу датасета — можете также просто задонатить или воспользоваться рефкой на DO.
PS
И что совсем характерно, деньги на хостинг бакета пришли из реферальной программы DO, а статью соответствующую на хабре/гт забанили =)begemot_sun
07.05.2019 10:51Я просто пробегал мимо, ваш набор не будет сильно меняться, а это значит что это идеальный вариант торрента. Просто сделайте торрент файл и выставите его в своем торрент клиенте, со временем набор расползется по сети и вы съэкономите свои 600 долларов для лучших применений.
snd3r
07.05.2019 11:14А какой практический смысл держать аудио в wave и платить за хостинг 431 GB, пусть и фантиками? В mp3 это было бы подъемные любому 43 GB, а то и меньше.
snakers4
07.05.2019 11:18+1держать аудио в wave
для тренировки сеток — читать лучше из wav, сильно быстрее, процессоры можно занять чем-то другим
да что-то сначала было весьма мало данных — гигов 50-100
потом все заверте, да и я не посмотрел какие там расценки за трансфер — думал будет 10 баксов в месяц и ладно
я сейчас уже сижу конвертирую в mp3)
платить за хостинг 431 GB, пусть и фантиками
за хостинг там копейки
в вот за скачивание — да, весьма ощутимые суммы
подъемные любому 43 GB
Скорее сжатие будет раза в 3-4 судя по тестам
snakers4
07.05.2019 11:57Я полазил по инету
Рекомендуют битрейт 64 с ним как раз 3-4 раза
16-32 как-то опасливо конечно
buriy Автор
07.05.2019 13:46Ваши расчёты верны для wav для стерео на 44100Гц, где большая избыточность, а у нас — моно на 16кГц, и иногда с фоновыми шумами, так что сильное сжатие небезопасно. Так что скорее всего будет сжатие раза в 3, но вот ещё mp3- и ogg-энкодеры не очень быстрые, и такое сжатие придётся может даже несколько дней считать. Но мы доберёмся до этого (если нас кто не опередит — предложения помощи приветствуются!)
lotse8
07.05.2019 12:37-1Хотим денег, но на нормальный хостинг 20-50 usd в месяц не имеем.
Попробуйте магию, эзотерику или еще что-то подобное, чтобы без посева рожь заколосилась. Успехов.buriy Автор
07.05.2019 14:01А кто хочет денег, и за что?
>на нормальный хостинг 20-50 usd
Там, скорее, будет в первый месяц $1000, во второй и последующие — $50.
Подумаем, как быть.
CryptoPirate
07.05.2019 17:18Лицензионные вопросы
Мы выкладываем датасет под двойной лицензией: для некоммерческих целей мы предлагаем лицензию cc-by-nc 4.0, для коммерческих целей — использование после договорённости с нами.
Как обычно в таких случаях, все права на использование данных, входящих в датасет, остаются у их владельцев. Наши права распространяются на сам датасет. Для научных и образовательных целей при этом действуют отдельные правила, смотрите законодательство вашей страны.
Вот этот момент не очень понятен. Если моя запись в датасете, то все права на неё у меня, вы её по сути хотите продавать. Тут явно не всё гладко с юридической точки зрения.
Тот же самый вопрос в случае с ImageNet не стоит, там комерческое использование не предполагается. Я чего-то не правильно понял?buriy Автор
07.05.2019 17:52Ваша запись в датасет может попасть в двух случаях:
1) если вы её легально в него передадите.
Но и в этом случае права на неё у вас, кроме эксклюзивности в тех правах, которыми вы поделились с нами по лицензии.
И мы не только и не столько собираемся её продавать, но и давать бесплатно использовать для кучи различных применений. Также гляньте на обсуждение в ветке выше.
2) вы можете сделать производный датасет с этой же cc-by-nc, включить туда свою строчку, и добавить себя как автора.
( «Adapt — remix, transform, and build upon the material» в описании лицензии ).
Тогда мы не сможем её продавать и бесплатно отдавать по договорённости (коммерческая часть пропадёт).
Нас это тоже вполне устраивает!
Ещё можно договориться с нами, стать контрибутором и совместно с нами продавать/распространять весь большой датасет. (Можно сказать, что мы таким образом и объединились.)vedenin1980
07.05.2019 18:50-1Речь скорее всего о другом. Вот у вас есть, например, «речь из видео с YouTube». Насколько я знаю, YouTube категорически запрещает скачивать свой контент без разрешения, плюс непонятно как вы решаете вопрос с авторскими правами авторов роликов (то что кто-то залил ролик на YouTube совершенно не означает, что передает всем право на что-либо кроме просмотра на ютубе). Как вы решаете вопрос с авторами оригинальных роликов и правилами YouTube и т.п. сервисов?
Что будет если к тем кто пользуется вашим корпусом придут правообладатели оригинального аудио/представители гугла или у вас эти вопросы уже решены?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 лицензии. Боюсь с остальными данными юридическая чистота (а это главное если вы их распостраняете) тоже под вопросом и может ваших клиентов сильно подвести.buriy Автор
07.05.2019 19:51+1Спасибо, исправим этот момент. Про voxforge уже написали, что там GNU GPL 3.0
buriy Автор
07.05.2019 19:51+1Всё правильно говорите.
Я так понял, что вы пропустили Disclaimer: «Как обычно в таких случаях, все права на использование данных, входящих в датасет, остаются у их владельцев. Наши права распространяются на сам датасет.»
То есть, ситуация примерно такая же, как с ImageNet: то, что мы что-то заэмбедили не значит, что вы этим можете пользоваться для той цели, для которой вы хотите.
Коммерческая компания, использующая такой датасет в распространяемом продукте, должна убедиться в нужной для их задач лицензионной чистоте.
Это ещё одна причина именно такой нашей лицензии.
Мы очень хотели бы использовать деньги от коммерческих компаний для получения лицензионно-чистого подмножества датасета для полностью свободного использования.
Это другая причина такой лицензии.
Если есть желающие это сделать компании — мы будем готовы обсудить.
Мы хотим стремиться к большей лицензионной частоте с течением времени.
А распространять данные мы можем до тех пор, пока нам кто-то не объяснит, почему мы не можем (и какими-либо доказательствами, что это его контент, ведь мы его нашли в интернете без пометки, что это именно его контент). Тогда мы уберём этот кусок данных.
Такая вот вынужденная временная opt-out политика. Мы считаем, что это лучше, чем ничего. И наличие ImageNet, устроенного похожим образом, нас в этом убеждает.Niakris
08.05.2019 10:25Как мы делали этот датасет?
- Нашли каналы с качественными субтитрами в YouTube, скачали аудио и субтитры
- Нашли в интернете аудиокниги и тексты книг
Авторы каналов на ютуб указаны, и Вы не могли их не заметить, когда скачивали. С книгами аналогично, но еще дикторы есть и издательство, которое эту озвучку спонсировало. И у них всех есть какие-то права, как исключительные, так и не исключительные.
А распространять данные мы можем до тех пор, пока нам кто-то не объяснит, почему мы не можем (и какими-либо доказательствами, что это его контент, ведь мы его нашли в интернете без пометки, что это именно его контент).
Вообще-то не можете. Про нашли в интернете и «я не я, корова не моя», написано выше. Вы знали заранее всех авторов и осознанно это проигнорировали. И Вам доказывать автор ничего не обязан. Это Вы должны будете доказывать, что взяли произведение с его согласия, а не разместили по собственному усмотрению.
Тогда мы уберём этот кусок данных.
К сожалению, Вы уже так просто не отделаетесь. Этот кусок данных к этому моменту могли скачать тысячи людей. И просто так изъять его у них не получится. А значит, Вы уже принесли какой-то убыток авторам. Дальнейшие действия на усмотрение авторов: могут простить, а могут в суд подать. Причем второе вероятней, так как Вы датасет с их кровным произведением продавали, а с ними не поделились.
akreal
08.05.2019 14:33+1Большое спасибо за публикацию! Думали ли вы о выделении некоторых частей датасета специально для валидации/тестирования? Добавляя или меняя данные в датасете, желательно иметь возможность сделать бенчмарк и увидеть эффект от изменений.
snakers4
08.05.2019 14:39Думали.
Но честно говоря пока не до конца ещё понимаем домен и генерализацию. В аудио оч много зависит от голосов, домена и числа данных.
Пока валидируемся просто на фиксированном случайном stratified семпле где точность разметки 95% + некоторые приватные сеты.
akreal
08.05.2019 14:55Фиксированный случайный stratified сэмпл вполне сошёл бы за такой бенчмарк, до тех пор пока не найдётся каких-то проблем в нём (самая легко проверяемая — одинаковые предложения в training и testing). Если не сложно, могли бы вы выложить список реплик и результат (WER или CER) на них? Мне бы хоть что-то для сравнения, если соберусь экспериментировать :)
snakers4
08.05.2019 15:12Можно сделать
Мб выложу в тикет просто в репо
По-хорошему надо конечно заводить репозиторий с моделями и пре-трейном но рановато чутка
snakers4
И да,
contributions are welcome
, давайте все вместе приблизим Imagenet-момент для TTS, возможно не только для русского)Какие-то грабли мы уже собрали, там немного неидеально закодировано все, плюс хорошо бы наверное еще mp3 версию сделать, но полагаю, тот кто будет качать, все еще раз соберет.
Чтобы два раза работу не делать, можно сразу такой скрипт написать, например.
Также с учетом того, как хорошо современные модели адаптируются под домены, если кто-то докинет еще один домен, это очень поможет генерализации модели)
DoctorStein
Ну не знаю, делать contribution в cc-by-nc + коммерция, это на любителя.
snakers4
Почему?
DoctorStein
Зачастую подготовкой таких данных занимаются тоже не из альтруистических побуждений, а очень даже на коммерческой основе. И делиться данными в проект, результатами работы которого не будешь иметь права воспользоваться, а кто-то на них ещё и заработает, как-то не очень приятно.
snakers4
Про альтруизм в доке пункт адресован подробно — гляньте.
Если вы представляете бизнес — то как Юрий подметил — пишите на почту, все обсуждается.
Если вы делаете общественно полезное дело — цена для вас будет стремиться к нулю — условно закинуть копейку на хостинг или данных докинуть и пользуйтесь.
Мы хотим избежать негативных кейсов, описанных ниже .
DoctorStein
У меня скорее интерес на будущее, и когда дойдёт до дела, мы конечно свяжемся и всё обсудим. Может и будет чем поделиться.
buriy Автор
Момент верно подмечен, надо бы его как-то прояснить в постах, что ли.
1) Мы добавим новых значительных контрибьюторов в соавторы при единогласном голосовании имеющихся контрибьюторов, как раз чтобы новые контрибуторы тоже имели возможность заработать на совместном проекте денег.
2) Вы и так, будучи автором, имеете возможность одновременно включить свои наработки в проект (передать свой вклад в этот проект) и при этом использовать его самостоятельно для коммерческих проектов.
То есть, при включении в проект, передача права не эксклюзивна.
vedenin1980
Думаю вы прекрасно понимаете, что cc-by-nc 4.0 несвободная лицензия даже по определению Creative Commons, это скорее вид триальной лицензии, причем с совершенно неизвестным ценником, если производный продукт вдруг окажется можно будет как-то монетезировать. По сути, получается предлагается бесплатно вкладывать труд в развитие чужого закрытого коммерческого проекта.
Поэтому заголовок
честнее написать
Я не говорю, что ваша работа неполезная для ряда случаев, просто это никак не opensource.
buriy Автор
А мы и не писали «open source» (что часто понимается как «free for all»), мы написали «открытый». Открыт он для многих вариантов использования (но не для всех), и открыт для контрибуции.
«Закрытый» и «проприетарный» — это другой край вариантов использования, у нас же получается что-то среднее.
buriy Автор
Значительных контрибуторов мы в авторы добавим, вот вообще не проблема.
Условная коммерция — вещь сложная, а «договоримся» не означает «хотим вагон бабла».
Для социальных и общественно-полезных проектов, для каких-нибудь роботов мы наверняка сможем договориться и о нулевой цене (или смешной цене), а для такого выбора лицензий были несколько иные причины: максимально снизить легальные риски, чтобы совсем уж нехорошим применениям датасета можно было при этом отказать, чтобы быть в курсе коммерческих применений датасета, чтобы кто-нибудь другой не смог его продавать, чтобы была легальная возможность себя закрепить авторами, чтобы была легальная возможность получить за него деньги при использовании его в коммерческом проекте (и потребовать деньги — при его использовании в крупном проекте крупной компании без малейшей ссылки на нас), чтобы добиться большей популярности и получить ссылки на нас при его использовании в научных работах.
Предлагайте альтернативные варианты лицензирования, может, мы выбрали не оптимальный вариант.
DoctorStein
Да не, в принципе лицензирование честное и понятное и у меня к этой схеме нет возражений кроме одного того, что она не предназначена для активного привлечения контрибьюторов. Но как я понял из ответа, это и не было целью.
buriy Автор
Ну, до бесконечности новых контрибьюторов тут и нет смысла привлекать. Ну будет 10к часов, 20к часов, ну увеличим его качество — и всё, придём в тупик.
snakers4
Дойдя до определенного уровня и процедив все несколько раз будет интересно уже зоопарк моделей публиковать
А это другая история
Про количество — ну Mozilla и как его там — voxforge (?) кажется привлекали всех подряд. И там для русского пока даже близко нормальное количество не собралось
Интересно ещё разные домены пособирать для генерализации