Как стать автором
Обновить

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

Время на прочтение3 мин
Количество просмотров36K
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, для коммерческих целей — использование после договорённости с нами.
  • Как обычно в таких случаях, все права на использование данных, входящих в датасет, остаются у их владельцев. Наши права распространяются на сам датасет. Для научных и образовательных целей при этом действуют отдельные правила, смотрите законодательство вашей страны.

Ещё раз сайт проекта для тех, кто не увидел ссылку выше.
Теги:
Хабы:
Всего голосов 101: ↑96 и ↓5+91
Комментарии50

Публикации

Истории

Работа

Data Scientist
97 вакансий

Ближайшие события

19 августа – 20 октября
RuCode.Финал. Чемпионат по алгоритмическому программированию и ИИ
МоскваНижний НовгородЕкатеринбургСтавропольНовосибрискКалининградПермьВладивостокЧитаКраснорскТомскИжевскПетрозаводскКазаньКурскТюменьВолгоградУфаМурманскБишкекСочиУльяновскСаратовИркутскДолгопрудныйОнлайн
3 – 18 октября
Kokoc Hackathon 2024
Онлайн
10 – 11 октября
HR IT & Team Lead конференция «Битва за IT-таланты»
МоскваОнлайн
25 октября
Конференция по росту продуктов EGC’24
МоскваОнлайн
7 – 8 ноября
Конференция byteoilgas_conf 2024
МоскваОнлайн
7 – 8 ноября
Конференция «Матемаркетинг»
МоскваОнлайн