Видео и аудио в текст бесплатно: новый онлайн-сервис для быстрой расшифровки речи в текст на русском языке

Сервис «Писец» помогает транскрибировать аудио и видео файлы в текст с разбивкой на спикеров и расстановкой тайм-кодов за считаные минуты. Рубрика «Продукт дня»

Видео и аудио в текст бесплатно: новый онлайн-сервис для быстрой расшифровки речи в текст на русском языке
7979

Я: Мне нужна функция, которая распознает русскую речь в файле mp3 и превратит этот звуковой файл в текстовый файл.

Буратино: Для того, чтобы написать функцию на питоне, которая распознает русскую речь в файле mp3 и превратит этот звуковой файл в текстовый файл, тебе нужно сделать следующее:

• Импортировать модуль speech_recognition, который предоставляет функции для работы с разными движками и API для распознавания речи https://pypi.org/project/SpeechRecognition/. Например: import speech_recognition as sr.

• Создать объект Recognizer, который будет выполнять распознавание речи https://realpython.com/python-speech-recognition/. Например: recognizer = sr.Recognizer().

• Открыть файл mp3 для чтения в двоичном режиме с помощью функции open() и передать его объекту AudioFile из модуля speech_recognition https://realpython.com/python-speech-recognition/. Например: with open('file.mp3', 'rb') as file: audio = sr.AudioFile(file).

• Извлечь данные из объекта AudioFile с помощью метода record() объекта Recognizer https://realpython.com/python-speech-recognition/. Например: data = recognizer.record(audio).

• Распознать русскую речь в данных с помощью метода recognize_google() объекта Recognizer и передать ему параметр language='ru-RU' https://stackoverflow.com/questions/51517700/changing-language-in-python-speechrecognition https://realpython.com/python-speech-recognition/. Например: text = recognizer.recognize_google(data, language='ru-RU').

• Записать полученный текст в текстовый файл с помощью функции open() и метода write(). Например: with open('file.txt', 'w') as file: file.write(text).

Вот пример функции, которая делает все это:

import speech_recognition as sr

def speech_to_text(filename):
# Создаем объект Recognizer
recognizer = sr.Recognizer()
# Открываем файл mp3 для чтения в двоичном режиме
with open(filename, 'rb') as file:
# Создаем объект AudioFile из файла
audio = sr.AudioFile(file)
# Извлекаем данные из объекта AudioFile
data = recognizer.record(audio)
# Распознаем русскую речь в данных
text = recognizer.recognize_google(data, language='ru-RU')
# Записываем полученный текст в текстовый файл
with open(filename[:-4] + '.txt', 'w') as file:
file.write(text)

Я: Как мне добавить информацию о временных отметках в этот текстовый файл? Мне нужно знать, когда была признесена та или иная фраза в этой аудиозаписи

Буратино: Для того, чтобы добавить информацию о временных отметках в текстовый файл, тебе нужно сделать следующее:

• Импортировать модуль whisper_timestamped, который предоставляет функции для распознавания речи с помощью моделей Whisper и получения словесных отметок и уверенности https://github.com/linto-ai/whisper-timestamped. Например: import whisper_timestamped as wt.

• Создать объект Whisper, который будет загружать модель Whisper и выполнять распознавание речи https://github.com/linto-ai/whisper-timestamped. Например: whisper = wt.Whisper().

• Вызвать метод transcribe() объекта Whisper и передать ему имя файла mp3 и код языка (в нашем случае 'ru') https://github.com/linto-ai/whisper-timestamped. Например: transcription = whisper.transcribe('file.mp3', 'ru').

• Получить список слов и их временных отметок из объекта transcription с помощью атрибута words https://github.com/linto-ai/whisper-timestamped. Например: words = transcription.words.

• Открыть текстовый файл для записи с помощью функции open() и метода write(). Например: with open('file.txt', 'w') as file:.

• Для каждого слова из списка записать его текст, начальную и конечную временные отметки в текстовый файл с помощью метода write(). Например: for word in words: file.write(f'{word.text} {word.start} {word.end}\n').

Вот пример функции, которая делает все это:

import whisper_timestamped as wt

def add_timestamps(filename):
# Создаем объект Whisper
whisper = wt.Whisper()
# Выполняем распознавание речи с помощью модели Whisper
transcription = whisper.transcribe(filename, 'ru')
# Получаем список слов и их временных отметок
words = transcription.words
# Открываем текстовый файл для записи
with open(filename[:-4] + '.txt', 'w') as file:
# Для каждого слова из списка
for word in words:
# Записываем его текст, начальную и конечную временные отметки в файл
file.write(f'{word.text} {word.start} {word.end}\n')

4
Ответить

А есть такое, только без регистрации и смс, ну типа я своё файло перетянул куда-то и пошёл, а потом пришёл обратно и всё чикипуки?

Ответить

Ваще огонь. Получается и делать ничего не нужно, уже все готово.

Нужно всего лишь, при помощи старого советского средства ...

Ответить