ASRT — это система распознавания китайской речи, основанная на глубоком обучении. Если вам она нравится, нажмите «Звездочка» ~.
Язык ReadMe | Китайская версия |
Домашняя страница проекта ASRT | Загрузка релизной версии | Посмотреть Wiki-документ этого проекта | Практический эффект Демонстрация |
Если у вас возникнут какие-либо проблемы во время запуска или использования программы, вы можете вовремя поднять их в вопросе, и я отвечу как можно скорее. Автор этого проекта общается в группе QQ: 894112051. Чтобы присоединиться к группе WeChat, добавьте идентификатор AI Lemon WeChat: ailemon-me и отметьте «Распознавание речи ASRT».
Пожалуйста, внимательно прочитайте проектную документацию, раздел «Часто задаваемые вопросы» и «Проблемы», прежде чем задавать вопросы, чтобы избежать повторных вопросов.
Если во время работы программы возникли какие-либо отклонения, при задаче вопросов отправьте полный снимок экрана и укажите используемую архитектуру ЦП, модель графического процессора, операционную систему, версии Python, TensorFlow и CUDA, а также был ли изменен какой-либо код или наборы данных. были добавлены или удалены и т. д. .
В этом проекте используется tensorFlow.keras на основе глубокой сверточной нейронной сети и нейронной сети долгосрочной кратковременной памяти, механизма внимания и реализации CTC.
В качестве примера возьмем операцию в системе Linux:
Сначала клонируйте этот проект на свой компьютер через Git, а затем загрузите наборы данных, необходимые для обучения в этом проекте. См. ссылку для скачивания в конце документа.
$ git clone https://github.com/nl8590687/ASRT_SpeechRecognition.git
Или вы можете использовать кнопку «Вилка», чтобы сделать копию этого проекта, а затем клонировать его локально, используя свой собственный SSH-ключ.
После клонирования хранилища через git войдите в корневой каталог проекта и создайте подкаталог для хранения данных, например /data/speech_data
(вместо этого вы можете использовать программную ссылку), а затем напрямую извлеките в него загруженный набор данных;
Обратите внимание, что в текущей версии в файл конфигурации по умолчанию добавлены шесть наборов данных, включая Thchs30, ST-CMDS, Primewords, aishell-1, aidatatang200 и MagicData. Если они вам не нужны, удалите их самостоятельно. Если вы хотите использовать другие наборы данных, вам необходимо самостоятельно добавить конфигурацию данных и заранее организовать данные, используя стандартный формат, поддерживаемый ASRT.
$ cd ASRT_SpeechRecognition
$ mkdir /data/speech_data
$ tar zxf <数据集压缩文件名> -C /data/speech_data/
Загрузите файл метки пиньинь набора данных по умолчанию:
$ python download_default_datalist.py
В настоящее время доступны модели 24, 25, 251 и 251 млрд.
Перед запуском этого проекта установите необходимые библиотеки, зависящие от версии Python3.
Чтобы начать обучение по этому проекту, выполните:
$ python3 train_speech_model.py
Чтобы начать тестирование этого проекта, выполните:
$ python3 evaluate_speech_model.py
Перед тестированием убедитесь, что путь к файлу модели, указанный в коде, существует.
Предскажите текст распознавания речи для одного аудиофайла:
$ python3 predict_speech_file.py
Чтобы запустить API-сервер протокола HTTP ASRT, выполните:
$ python3 asrserver_http.py
Локально проверьте, успешен ли вызов службы API протокола HTTP:
$ python3 client_http.py
Чтобы запустить API-сервер протокола ASRT GRPC, выполните:
$ python3 asrserver_grpc.py
Локально проверьте, успешен ли вызов службы API протокола GRPC:
$ python3 client_grpc.py
Обратите внимание, что после открытия сервера API вам необходимо использовать клиентское программное обеспечение, соответствующее этому проекту ASRT, для распознавания речи. Подробную информацию см. в Wiki-документе, чтобы загрузить SDK клиента распознавания речи ASRT и демо-версию.
Если вы хотите обучать и использовать модель, отличную от 251bn, внесите изменения в соответствующее место from speech_model.xxx import xxx
в коде.
Используйте docker для прямого развертывания ASRT:
$ docker pull ailemondocker/asrt_service:1.3.0
$ docker run --rm -it -p 20001:20001 -p 20002:20002 --name asrt-server -d ailemondocker/asrt_service:1.3.0
Только ЦП выполняет распознавание вывода без обучения.
DCNN+CTC
Среди них максимальная продолжительность входного звука составляет 16 секунд, а на выходе — соответствующая последовательность китайского пиньинь.
Обученная модель включена в сжатый пакет серверной программы релизной версии. Готовую серверную программу релизной версии можно скачать здесь: Страница загрузки ASRT.
Страница «Релизы» в этом репозитории Github также содержит вводную информацию для каждой версии. ZIP-пакет каждой версии также содержит пакет программы сервера выпуска обученной модели.
Скрытая марковская модель максимальной энтропии на основе вероятностного графа
Входные данные представляют собой последовательность китайских символов пиньинь, а выходные данные — соответствующий текст китайских символов.
В настоящее время лучшая модель может достичь 85% точности китайской пиньинь на тестовом наборе.
Если вы не знаете, как установить среду, выполните следующую команду напрямую (при условии, что у вас есть графический процессор и установлены Python3.9, CUDA 11.2 и cudnn 8.1):
$ pip install -r requirements.txt
Зависит от требований к конфигурации среды и производительности.
Для полного содержания просмотрите: Несколько новейших бесплатных наборов данных китайской речи с открытым исходным кодом.
Набор данных | продолжительность | размер | Внутренняя загрузка | Скачать за рубежом |
---|---|---|---|---|
ТХЧС30 | 40 часов | 6.01Г | data_thchs30.tgz | data_thchs30.tgz |
СТ-КМДС | 100ч | 7,67 г | ST-CMDS-20170001_1-OS.tar.gz | ST-CMDS-20170001_1-OS.tar.gz |
АИШелл-1 | 178ч. | 14.51Г | data_aishell.tgz | data_aishell.tgz |
Праймслова | 100ч | 8.44Г | primewords_md_2018_set1.tar.gz | primewords_md_2018_set1.tar.gz |
МагическиеДанные | 755ч | 52Г/1,0Г/2,2Г | train_set.tar.gz/dev_set.tar.gz/test_set.tar.gz | train_set.tar.gz/dev_set.tar.gz/test_set.tar.gz |
Примечание. Метод распаковки набора данных AISHELL-1.
$ tar xzf data_aishell.tgz
$ cd data_aishell/wav
$ for tar in *.tar.gz; do tar xvf $tar; done
Особая благодарность! Спасибо предшественникам за набор данных о публичных выступлениях.
Если предоставленную ссылку на набор данных невозможно открыть и загрузить, нажмите ссылку OpenSLR.
ASRT предоставляет возможности доступа к SDK для различных платформ и языков программирования, позволяющие клиентам вызывать и разрабатывать функции распознавания речи через RPC. Для других платформ доступ к функциям распознавания речи можно получить напрямую, вызвав общий RESTful Open API. Подробные инструкции по доступу см. в документации проекта ASRT.
Клиентская платформа | Ссылка на репозиторий проекта |
---|---|
Windows Client SDK и демо-версия | ASRT_SDK_WinClient |
Кроссплатформенный клиентский SDK Python3 и демо-версия | ASRT_SDK_Python3 |
Кроссплатформенный клиент Golang SDK и демо-версия | asrt-sdk-go |
Java-клиент SDK и демо-версия | ASRT_SDK_Java |
Пожалуйста, ознакомьтесь с этой статьей, чтобы узнать о принципах ASRT:
См. руководство по обучению и развертыванию ASRT:
Часто задаваемые вопросы о принципах статистических языковых моделей см.:
По вопросам CTC см.:
Для получения дополнительной информации посетите блог автора: AI Lemon Blog.
Или воспользуйтесь поисковой системой сайта AI Lemon для поиска сопутствующей информации.
GPL v3.0 © nl8590687 Автор: AI Lemon
DOI: 10.5281/zenodo.5808434
Страница автора
@nl8590687 (владелец репо)