Разговаривая с моим другом о машинном обучении, он сказал мне, что для преобразования человеческой речи в текст не требуется знать язык. Итак, в этом посте я реализовал некоторый тест, чтобы подтвердить, что
Цель
Имея единый мир на латинице языке, мне нужно получить текст или строку. Этот процесс называется транскрипцией для людей или преобразованием речи в текст для гиков.
Услуги транскрипции
Таких сервисов в интернете очень много. Они широко используются для телевизионных программ, интервью, конференций и т. д. В основном, если вы что-то платите, вы можете отправить видео или звук, а затем человек расшифрует их. Откуда я знаю, что человек используется? Потому что много лет назад, когда у меня не было ни копейки (университетская эпоха), я искал работу в интернете и нашел такие услуги:
Требования - иметь идеальную редакцию с любой ошибкой, старшинство Microsoft Word и т. Д.
Речь в текст
Поскольку я разработчик, сервис транскрипции, основанный на людях, не имеет смысла.
Преобразование речи в текст — это программное обеспечение для распознавания речи, которое позволяет распознавать и переводить разговорный язык в текст с помощью компьютерной лингвистики. Он также известен как распознавание речи или компьютерное распознавание речи. Определенные приложения, инструменты и устройства могут расшифровывать аудиопотоки в режиме реального времени для отображения текста и выполнения действий с ним.
AWS Преобразование речи в текст
https://aws.amazon.com/transcribe/
Google Речь в текст
https://cloud.google.com/speech-to-text
Офлайн Преобразование речи в текст
Как вы заметили, для предыдущих служб требуется Интернет, потому что механизм транскрипции находится на каком-то удаленном и мощном сервере (aws, google, azure и т. д.).
До этого сервисы разработчики публиковали множество алгоритмов и исходных кодов, чтобы сделать то же самое. Возможно, точность будет не очень хорошей, но это бесплатно.
Распознавание речи с Vosk и Python
Есть несколько моделей, но я пробовал Вокс и работал. Проверьте его официальные ссылки
Вот код, использующий английскую модель для расшифровки латинской речи.
Эти зависимости необходимы
pip3 install vosk pip3 install jsonpath_ng pip3 install pyaudio
И это код
from vosk import Model, KaldiRecognizer import pyaudio from jsonpath_ng import jsonpath, parse import json import sys model = Model(r"vosk-model-small-en-us-0.15") recognizer = KaldiRecognizer(model, 16000) mic = pyaudio.PyAudio() stream = mic.open(format=pyaudio.paInt16, channels=1, rate=16000, input=True, frames_per_buffer=8192) stream.start_stream() jsonpath_expression = parse('$.text') while True: data = stream.read(4096) if recognizer.AcceptWaveform(data): text = recognizer.Result() json_data = json.loads(text) match = jsonpath_expression.find(json_data) print(match[0].value)
Я был удивлен, потому что это работает с первой попытки :0
Просто запустите его, и если в журнале нет ошибок (кроме предупреждений ALSA), просто скажите что-нибудь в микрофон, и транскрипция будет показана в оболочке.
Результаты для слова [DEFENDERE]
Я выбираю слово DEFENDERE на латыни, что означает
Вот звук:
Я пробовал 05 раз, и вот результаты:
Использование модели ENGLISH
- обиженный
- тонкие знакомства
- друг сделал это
- финн сделал
- обиженный
Используется ИТАЛЬЯНСКАЯ модель, потому что она «несколько» похожа на ЛАТИНСКУЮ
- дифендере
- дифендере
- дифенде
- дифендере
- дель фенди
Чтобы использовать пользовательскую модель, просто скачайте ее с https://alphacephei.com/vosk/models, разархивируйте и вставьте в код
Подробнее здесь: https://stackoverflow.com/a/73304153/3957754
Заключение
Как вы можете видеть или если вы попробуете код Python, если языковая модель связана с исходным языком, используемым в речи, транскрипция будет лучше точность по сравнению с другими языками
До следующего,
JRichardsz
Первоначально опубликовано на https://jrichardsz.github.io 22 января 2023 г.