29

Выброс из головы , достойный на новый проект . Часть #2 Наверное конец ...

И снова добрый день мои читатели. И вот я закончил начатое , сразу скажу , проект я закончил , ТЗ - выполнено и приложение заработало .

Работает - палкой и смекалкой , но все же , возможно когда-нибудь пригодится человечеству ( вероятность = 0 )

Остановились в прошлой части мы на том , что извлекли видео и отдельно звуковую дорожку .

Проблема сразу меня атаковала и отняла 4 часа моего времени на её решение ( диванные эксперты справились бы за 1 минуту но я еще молод и глуп что бы просить помощи у великих .. )
Так вот , аудиофайл с youtube скачивается хоть и как mp3 файл , но mimetype у него webm , для этого пришлось скачать еще 3 файла с ffmpeg и закинуть в мою директорию указав в python .

import speech_recognition as sr

from os import path

from pydub import AudioSegment

AudioSegment.converter = "ffmpeg.exe"

AudioSegment.ffmpeg = "ffmpeg.exe"

AudioSegment.ffprobe ="ffprobe.exe"


с помощью библиотеки AudioSegment я импортирую исходный трек
sound = AudioSegment.from_file(namefile+".mp3")
beginning = sound + 1
Прибавляю 1db громкости ## мне помогло немного повысить точность распознания , если криво распознает убрать .

И теперь, сохраняет файл в wav формате со всеми изменениями .
beginning.export("outputfile.wav", format="wav")


Далее переходим к блоку распознания и так :

Импортируем библиотеки , да где то выше я уже импортировал их , но НУЖНО БОЛЬШЕ ИМПОРТОВ .
import speech_recognition
from speech_recognition import *

Берем наш файл и объявляем объект

sample_audio = speech_recognition.AudioFile('outputfile.wav')

r = sr.Recognizer()

with sr.AudioFile('outputfile.wav') as source:

audio = r.record(source) чтение объекта ( аудиофайла)

print(type(audio)) выводим тип аудиофайла , удостоверяемся что он объект своими глазами

massslov = [] - сюда будут выводиться слова которые нашел sphinx

try:

out = r.recognize_sphinx(audio, language="en-US")

massslov.append(out)

## далее идут исключения если ничего не нашел или невозможно найти .

except sr.UnknownValueError:

print("Sphinx could not understand audio")

except sr.RequestError as e:

print("Sphinx error; {0}".format(e))

print("--- %s seconds ---" % (time.time() - start_time)) ## считаю сколько времени займет процедура

Кстати, процедура не быстрая , 2 минутный трек читает около 80 сек . (На моём пеньке , у вас может будет быстрее) 

print(massslov) ## выводим массив найденных слов

Давайте переведём эти слова


Использовать будем библиотеку deep_translator

from deep_translator import GoogleTranslator

to_translate = massslov[0]

translated = GoogleTranslator(source='auto', target='ru').translate(to_translate)

print(translated)



И на выходе получаем это :

Получится что-то похожее на текст . Похожее на перевод .

Далее нужно этот текст озвучить :

Используем библиотеку gtts

from gtts import gTTS  ## импортируем библиотеку

import os  ## системные утилиты будет для сохранения нужна

text = translated ## говорим что текст для озвучки хранится в переменной translated

language = 'ru' # язык русский

speech = gTTS(text = text, lang = language, slow = False) ## с параметрами не игрался , возможно можно настроить более тонко , мне лень было честно , со slow можно играться , если в видео говорят быстро ставим True , а если нет - False.

speech.save("text.mp3") ## сохраняем в text.mp3 в нашей директории

И так ,есть видео , есть mp3 файл с переводом , давайте совместим видео с аудиодорожкой .


Используем библиотеку mhmovie

from mhmovie import *  ## импортируем библиотеку

m = Movie(namefile+".mpeg") # указываем видеофайл

mu = Music('text.mp3') # указываем звуковой файл

final = m+mu #соединить звук и видео

final.save(namefile+"film.mp4") ## сохраняем результат

и на выходе получаем ролик с переводом , открываем и наслаждаемся .. ( ржем с перевода ) мне стыдно :(

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

Все остальное допилю ,

Берем видео (Английская болтовня )

https://www.youtube.com/watch?v=hVivvHS4QZQ

А получаем вот что :

В общем ,  проект есть на моём github , код открыт для всех :
https://github.com/tagunzet/Translate_Youtube_movie/tree/mai...

Программирование на python

949 постов12K подписчиков

Правила сообщества

Публиковать могут пользователи с любым рейтингом. Однако!


Приветствуется:

• уважение к читателям и авторам

• конструктивность комментариев

• простота и информативность повествования

• тег python2 или python3, если актуально

• код публиковать в виде цитаты, либо ссылкой на специализированный сайт


Не рекомендуется:

• допускать оскорбления и провокации

• распространять вредоносное ПО

• просить решить вашу полноценную задачу за вас

• нарушать правила Пикабу

Темы

Политика

Теги

Популярные авторы

Сообщества

18+

Теги

Популярные авторы

Сообщества

Игры

Теги

Популярные авторы

Сообщества

Юмор

Теги

Популярные авторы

Сообщества

Отношения

Теги

Популярные авторы

Сообщества

Здоровье

Теги

Популярные авторы

Сообщества

Путешествия

Теги

Популярные авторы

Сообщества

Спорт

Теги

Популярные авторы

Сообщества

Хобби

Теги

Популярные авторы

Сообщества

Сервис

Теги

Популярные авторы

Сообщества

Природа

Теги

Популярные авторы

Сообщества

Бизнес

Теги

Популярные авторы

Сообщества

Транспорт

Теги

Популярные авторы

Сообщества

Общение

Теги

Популярные авторы

Сообщества

Юриспруденция

Теги

Популярные авторы

Сообщества

Наука

Теги

Популярные авторы

Сообщества

IT

Теги

Популярные авторы

Сообщества

Животные

Теги

Популярные авторы

Сообщества

Кино и сериалы

Теги

Популярные авторы

Сообщества

Экономика

Теги

Популярные авторы

Сообщества

Кулинария

Теги

Популярные авторы

Сообщества

История

Теги

Популярные авторы

Сообщества