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

Цель

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

Услуги транскрипции

Таких сервисов в интернете очень много. Они широко используются для телевизионных программ, интервью, конференций и т. д. В основном, если вы что-то платите, вы можете отправить видео или звук, а затем человек расшифрует их. Откуда я знаю, что человек используется? Потому что много лет назад, когда у меня не было ни копейки (университетская эпоха), я искал работу в интернете и нашел такие услуги:

Требования - иметь идеальную редакцию с любой ошибкой, старшинство 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 на латыни, что означает

Вот звук:

https://voca.ro/16m4gog8RfJe

Я пробовал 05 раз, и вот результаты:

Использование модели ENGLISH

  • обиженный
  • тонкие знакомства
  • друг сделал это
  • финн сделал
  • обиженный

Используется ИТАЛЬЯНСКАЯ модель, потому что она «несколько» похожа на ЛАТИНСКУЮ

  • дифендере
  • дифендере
  • дифенде
  • дифендере
  • дель фенди

Чтобы использовать пользовательскую модель, просто скачайте ее с https://alphacephei.com/vosk/models, разархивируйте и вставьте в код

Подробнее здесь: https://stackoverflow.com/a/73304153/3957754

Заключение

Как вы можете видеть или если вы попробуете код Python, если языковая модель связана с исходным языком, используемым в речи, транскрипция будет лучше точность по сравнению с другими языками

До следующего,
JRichardsz

Первоначально опубликовано на https://jrichardsz.github.io 22 января 2023 г.