Да что мы знаем о веселье?
Выброс из головы , достойный на новый проект . Часть #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 я импортирую исходный трек sound = AudioSegment.from_file(namefile+".mp3")beginning = sound + 1Прибавляю 1db громкости ## мне помогло немного повысить точность распознания , если криво распознает убрать .
И теперь, сохраняет файл в wav формате со всеми изменениями . beginning.export("outputfile.wav", format="wav")
Далее переходим к блоку распознания и так :
Импортируем библиотеки , да где то выше я уже импортировал их , но НУЖНО БОЛЬШЕ ИМПОРТОВ . import speech_recognitionfrom speech_recognition import *
Берем наш файл и объявляем объект
with sr.AudioFile('outputfile.wav') as source:
audio = r.record(source) чтение объекта ( аудиофайла)
print(type(audio)) выводим тип аудиофайла , удостоверяемся что он объект своими глазами
massslov = [] - сюда будут выводиться слова которые нашел sphinx
out = r.recognize_sphinx(audio, language="en-US")
## далее идут исключения если ничего не нашел или невозможно найти .
print("Sphinx could not understand audio")
except sr.RequestError as e:
print("Sphinx error; ".format(e))
print("--- %s seconds ---" % (time.time() - start_time)) ## считаю сколько времени займет процедура
Кстати, процедура не быстрая , 2 минутный трек читает около 80 сек . (На моём пеньке , у вас может будет быстрее)
print(massslov) ## выводим массив найденных слов
Давайте переведём эти слова
Использовать будем библиотеку deep_translator
from deep_translator import GoogleTranslator
translated = GoogleTranslator(source='auto', target='ru').translate(to_translate)
И на выходе получаем это :
Получится что-то похожее на текст . Похожее на перевод .
Далее нужно этот текст озвучить :
Используем библиотеку 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") ## сохраняем результат
и на выходе получаем ролик с переводом , открываем и наслаждаемся .. ( ржем с перевода ) мне стыдно :(
Во первых я тупо наложил переведенный текст поверх видео , по этому тайминги между картинкой и озвучкой разные . ( Потому что функцию я еще не написал , но постараюсь размыслить в свободное время ) В данный момент я реализовал лишь план тз .
Все остальное допилю ,
Берем видео (Английская болтовня )
А получаем вот что :
Выброс из головы , достойный на новый проект . Часть #1
Сидел как-то смотрел я Youtube и подумал, вот бы была бы возможность взять англоязычный ролик, вытащить его, отделить от ролика звуковую дорожку, в помощь python и любого распознавателя речи (а их много) вытащить массив слов для перевода.
После того как мы вытащим слова, переводим их на другой язык, немного уменьшаем громкость оригинальной дорожки и накладываем переведенный звук поверх. Получится универсальный переводчик любого англоязычного ролика и наоборот! Именно звуковой перевод, не субтитры.. что реально интересно. Можно будет поиграться с движками распознавания - выбор есть.
А также можно попробовать сделать любой русскоязычный ролик - английским, китайским , японским , да хоть каким .. Тоже интересно.
Вероятно, перевод будет кривой, но разве это повод опускать руки? Всегда можно что-нибудь придумать костыльное, но рабочее.
И так, как хороший ленивый программист игнорируем тз, а список требований сокращаем в 100 раз для своего удобства. В целом нам требуется :
1.Скачать видео из Youtube по URL
2.Отделить видео от аудио и сохранить 2 файла в одну папку
3.Вытащить текст из аудио
5.Из текста создать новую дорожку
6.Наложить переведенную дорожку на оригинальную дорожку ( оригинальную немного приглушить что бы лучше было слышно перевод )
7.Наложить звук обратно на видео
8.Наслаждаться ОТМЕННЫМ переводом .
Создаем py файл, и начинаем калякать.
Для того, чтобы скачать видео нам требуется библиотека "youtube_dl" следственно импортируем её.
import os ## Требуется для os.path и поиска пути директории
import youtube_dl # импортирую библиотеку
result = ydl.extract_info( ##извлекаем информацию о видеофайле из ссылки
download=False ## Скачать информацию True False
if 'entries' in result:
# Если плейлист или список
И так на выходе получаем словарь, в котором начинаем рыться и искать URL на видео.
После копания в данном словаре я нашел что видео и звуковая дорожка находятся отдельно. Прекрасно, тогда скачиваем всё!
Поиск ключа и его значений:
slovar = video.keys() # выводим все ключи словаря
videos = video['formats'][6]['url'] ## URL видео было в списке "formats"
audios = video['formats'][3]['url'] ## URL аудио было в списке "formats"
Скачивать решил через WGET библиотеку.
Получаю два загруженных файла в папке, один видео, второй звук.
Получаем пути этих файлов:
path_vid = os.path.join(os.getcwd(), 'yt_vid.mpeg') ## Путь до видеофайла
path_audio = os.path.join(os.getcwd(), 'yt_sound.mp3') ## Путь до аудиофайла
Теперь перехожу к обработке . Но уже в следующем посте .
Переводчик с кошачьего на человеческий
В Google Play и AppStore состоялся релиз приложения MeowTalk, которое переводит с кошачьего на человеческий и наоборот. Его создал топ-менджер компании Akvelon Хавьер Санчес. С его помощью устраняется языковой барьер между питомцем и его хозяином.
Для работы приложения используется машинное обучение и технологии больших данных. ИИ постоянно совершенствуется и предлагает лучший перевод звуков котов. Он анализирует мяуканье, а затем использует 10 встроенных параметров для их классификации.
Создатель приложения отдельно отметил, что у кошек нет единого языка, но каждая из них обладает собственным словарным запасом, который она постоянно использует.
У приложения не очень высокие рейтинги в магазинах, но большинство низких оценок связано с отсутствием перевода на различные языки. Многие пользователи рады, что теперь могут послать кота куда подальше.
В Google разработали онлайн-переводчик древнеегипетских иероглифов
Приложение работает благодаря процессам машинного обучения и сопоставления языка древних египтян.
В Сети появился онлайн-переводчик древнеегипетских иероглифов. Приложение является частью проекта Google Arts & Aulture, запущенного в Британском музее в 2017 году.
В создании переводчика принимал участие австралийский центр египтологии, а также компании Psycle Interactive и Ubisoft. Переводчик работает благодаря процессам машинного обучения и сопоставления языка древних египтян.
Приложение, получившее название Fabricius, позволяет пользователям загружать изображения иероглифов, а затем сопоставляет их со своей базой данных. По словам принимавших участие в работе над ним египтологов, подобная оцифровка может поспособствовать восстановлению древних поврежденных настенных записей.
Между тем, в Египте обнаружили пещеру с уникальными наскальными рисунками. Находка располагается на севере Синайского полуострова и свидетельствует о том, что использовалась местным населением на протяжении нескольких столетий подряд.
Ответ на пост «Яндекс обновил голос в русском переводчике. ( голос звучания )»
Недавно был пост про то, что синтезируемый голос уже практически не отличим от человеческого.
Вот еще несколько примеров того, какими могут быть голоса в переводчике.
Говорим по-французски!
Переводчик lvl 9000
Иногда Гуглопереводчик (который в последнее время выдает стабильно-качественный результат в 90% случаев) порождает из своих недр нечто совершенно прекрасное:
Гугл переводчик и протесты в США
Решил значит перевести надпись,а тут.
Всё гениальное - прокси
Простой по своей гениальности способ обходить различного вида блокировки в Интернете.
Если вас куда-то не пускают, потому что у вас неправильная страна, неправильное вероисповедание, неправильная демократия или ваши копирасты не договорились с зарубежными о дележе прибыли, приходится пользоваться различными видами прокси-серверов, скрывающих или меняющих IP-адрес компьютера. Существуют разнообразнейшие программы, позволяющие автоматизировать это дело, или можно самому зайти в настройки браузера и выставить там необходимые прокси вручную.
Как оказалось, существует очень простой способ не морочиться всеми этими настройками. Не беда. Идем на страницу Гугл-переводчика, и вбиваем туда прямо в окно перевода ссылку на заблокированное видео.
В соседнем окне получаем ссылку на «перевод страницы». Кликаем на нее, и смотрим видео без блокировки. В этом случае переход на заблокированный контент осуществляется не с вашего IP, а с прокси-IP самого Гугла.
Такой вот элементарный способ. Наверняка многие о нем знали, ибо проще некуда. Но если кто не знал — пользуйтесь.