You are not logged in.

  • "doesntmatter" started this thread

Posts: 3

Date of registration: May 5th 2012

Language Team: English

Focus Group: Other - Not Listed Above

Thanks: 201 / 0

  • Send private message

1

Saturday, May 5th 2012, 6:12pm

Interesting translation/transcription for movie subtitles

Moderators, please put this thread under appropriate subforum e.g. Development or such, not sure which exactly. Thank you.

I want to share a little php script which produces output in form of text with translation and transcription above every word. It can be useful for those who just started studying a new language.



It takes subtitles from movie or cartoon in both languages as input files. Then it's necessary to create a dictionary file by copy-past from online translation services. The only difficulty might be manual synchronization sentences in both languages to match each other by its meaning. But it's optional. Bellow are steps necessary to create the example above.

1. Php server. In Windows I used MicroApache (Apache 1.3.41, PHP 4.4.9, size 1 Mb) from http://microapache.kerys.co.uk/. Just download last version with PHP, unpack zip archive (e.g. into directory MA in disk C) and run go.bat there. Then you should be able to see page on http://127.0.0.1:8800/. If it failed than try earlier versions. Put 0001.php from attachment bellow into Apache's document directory. In our example it can be ether on disk C or as in my case in dir. www inside directory MA. If it's located properly you should be able to open http://127.0.0.1:8800/0001.php which will show you one or several warning lines in bold. If you use Linux installation of php server shouldn’t be a problem for you. Not sure about Mackintosh and other operating systems but you always can use a free php hosting service.

2. Dictionary file ointer.txt. Download first subtitles (showed in bold in picture above). I used subtitles for cartoon Tarzan and Jane from http://subscene.com/english/Tarzan-and-J…itle-22760.aspx. Extract subtitles file, rename it into isubt.txt and put in www directory. Then run 0001.php by going to http://127.0.0.1:8800/0001.php. If all goes smoothly you'll find file oword.txt in www. Copy and past its content into any online translation service. I used http://translate.google.com/. Save translation as idict.txt in www. Then do the same to get file with transcription itrans.txt. Save it in utf-8 encoding in folder www. I used free PhoTransEdit 1.7d from http://www.photransedit.com/Desktop/Default.aspx. You can use their online service on http://www.photransedit.com/Online/Text2Phonetics.aspx as well. Then run 0001.php again. If everything is ok you'll find ointer.txt inside www. If not just read output and try to edit 0001.php accordingly. It has lots of comments inside. Just open it with notepad or such, edit, save are rerun again. Words which might not be transcribed (with "<" and ">") or translated (empty or with capital letters) properly will be at the end of ointer.txt to make manual editing of this dictionary file easier.

3. Second subtitles file synchronized with first (optional). You can see them in picture above in right column. Run 0001.php. You'll find osent.txt file in www dir. Then download second subtitles. I got it from http://subtitry.ru/subtitles/437324884/?tarzan-jane. Extract, rename to ilocsub.txt and put it into www dir. Run 0001.php. You should find olocsen.txt file there. Then I used MS Office to synchronize them. I believe it's possible to use LibreOffice or similar instead. Copy content of osent.txt into first column of Excel spread sheet. Then content of olocsen.txt to second column. Copy these two columns into MS Word. Next I recorded and assigned shortcuts for two macroses there. First to insert a cell in table (Ctrl+Insert) and second to remove it (Ctrl+Delete). It took me a couple of hours to match every line (sentence) of right column (second subtitles) with relevant line (sentence) from left one (first subtitles). I did it by inserting/removing cells into right column or moving words from one cell of the column to above or bellow ones to better match translation (second subtitles) but don't change original (first) subtitles. Then I copied right column, pasted it into notepad and saved as isynsen.txt in www directory. But it could be rather difficult if you're not familiar with both languages. In that case you can try to translate it with online translators or just live isynsen.txt empty.

4. Final file opage.html. Run 0001.php. If everything is ok you'll find opage.html in www dir. Go to http://127.0.0.1:8800/opage.html or drag the file into your browser. Then you can change dictionary file ointer.txt or necessary constants at the beginning of 0001.php to tune content or layout of opage.html and run 0001.php again to apply changes.

In attachment bellow are all these files. I tested the script with these subtitles only. Now I realize that I would rather use JavaScript instead of PHP because in this case you don’t need the server, just any modern browser in any operating system.

phonetic_transcription.zip

Tags: subtitles show phonetic transcription translation text second language study help read generate create html php script субтитры показать фонетика транскрипция перевод текст второй язык учить помощь читать генерировать сделать скрипт

53 guests thanked already.
  • "doesntmatter" started this thread

Posts: 3

Date of registration: May 5th 2012

Language Team: English

Focus Group: Other - Not Listed Above

Thanks: 201 / 0

  • Send private message

2

Saturday, May 5th 2012, 6:18pm

Тоже самое на русском. (The same in Russian)

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

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

1. Php сервер. В Windows я использовал MicroApache (Apache 1.3.41, PHP 4.4.9, размер 1 Mb) с http://microapache.kerys.co.uk/. Скачайте последнюю версию с PHP, распакуйте архив (например в директорию MА на диске С), и запустите go.bat оттуда. Если все нормально, то вам будет доступна страница по адресу http://127.0.0.1:8800/. В противном случае попробуйте более ранние версии. Поместите 0001.php из прикрепленного ниже архива в директорию документов сервера Apache. В нашем примере она может располагаться на диске C или как у меня в каталоге www внутри директории МА. Если директория определена правильно, то по адресу http://127.0.0.1:8800/0001.php вы увидите одну или несколько строк жирным шрифтом. Если вы пользуетесь Linux то установка PHP сервера не должна быть для вас проблемой. Не уверен насчет Mackintosh и других операционных систем, но в любом случае вы можете воспользоваться услугами какого-нибудь бесплатного PHP хостинга.

2. Файл словаря ointer.txt. Скачайте первые субтитры (показаны жирным шрифтом на картинке выше). Я использовал из мультфильма Тарзан и Джейн с http://subscene.com/english/Tarzan-and-J…itle-22760.aspx. Распакуйте файл субтитров, переименуйте его в isubt.txt и поместите в директорию www. Затем запустите 0001.php пройдя по адресу http://127.0.0.1:8800/0001.php. Если все прошло нормально, то в www появится файл oword.txt. Скопируйте и вставьте его содержимое в любой онлайн переводчик. Я использовал http://translate.google.com/. Сохраните перевод в файл idict.txt в www. Потом проделайте тоже самое, чтобы получить файл с транскрипцией itrans.txt. Сохраните его в кодировке utf-8 в каталоге www. Я использовал бесплатный PhoTransEdit 1.7d с http://www.photransedit.com/Desktop/Default.aspx. Вы можете воспользоваться их онлайн сервисом http://www.photransedit.com/Online/Text2Phonetics.aspx. Затем снова запустите 0001.php. Если все хорошо, то в www появится файл ointer.txt. Если нет, то читайте, какие ошибки выдает 0001.php и попытайтесь устранить их, редактируя скрипт в блокноте. Код содержит множество комментариев. После редактирования сохраните и снова запустите 0001.php. Слова, которые возможно содержат ошибки в транскрипции (с символами “<” и “>”) или переводе (c заглавными буквами или с пустым переводом) будут помещены в конец файла для упрощения ручного редактирования ointer.txt.

3. Второй файл субтитров синхронизированный с первым (не обязательно). Его содержимое видно в правой колонке на рисунке выше. Запустите 0001.php. В каталоге www должен появиться файл osent.txt. Затем скачайте вторые субтитры. Я взял их с http://subtitry.ru/subtitles/437324884/?tarzan-jane. Распакуйте, переименуйте в ilocsub.txt и положите его в www. Запустите 0001.php. Должен сгенерироваться файл olocsen.txt. Я использовал MS Office, чтобы синхронизировать их. Думаю это также можно сделать и в LibreOffice или подобном. Скопируйте содержимое osent.txt в первый столбец таблицы Excel. Затем содержимое olocsen.txt во второй. Скопируйте полученные столбцы в MS Word. Затем я записал и назначил на горячие клавиши два макроса. Первый для вставки ячейки в таблицу (Ctrl+Insert) и для удаления (Ctrl+Delete). Потом я потратил пару часов, чтобы сопоставить каждую строку (предложение) правой колонки (вторые субтитры) с соответствующей строкой (предложением) из левой (первые субтитры). Это достигается вставкой/удалением ячеек правой колонки или перемещением слов в более верхнюю или нижнюю ячейки, чтобы лучше сопоставить перевод (вторые субтитры) но не изменяя первые субтитры. Затем я скопировал правую колонку в блокнот и сохранил как isynsen.txt в каталоге www. Но это может быть довольно сложным, если вы не знаете двух языков. В этом случае можете попробовать перевести субтитры с помощью онлайн переводчиков или оставьте файл isynsen.txt пустым.

4. Заключительный файл opage.html. Запустите 0001.php. Если все прошло гладко будет сгенерирован файл opage.html в директории www. Зайдите на http://127.0.0.1:8800/opage.html или перетащите этот файл в браузер. Затем можно изменять файл словаря ointer.txt или необходимые константы в начале 0001.php чтобы настроить содержимое или расположение в opage.html и перезапустите 0001.php чтобы применить изменения.

Ниже прикреплен файл со всеми файлами перечисленными выше. Этот скрипт тестировался только с этими субтитрами. Теперь я понимаю, что надо было использовать JavaScript вместо PHP, чтобы обойтись без сервера, используя любой современный браузер в любой операционной системе.

1 registered user and 75 guests thanked already.

Users who thanked for this post:

Borislav/lizardman

  • "Ray" is male

Posts: 1,051

Date of registration: May 23rd 2011

Language Team: Global

Focus Group: LTI Administration Group

Location: Michigan, US

Thanks: 35776 / 6236

  • Send private message

3

Monday, May 7th 2012, 1:02am

This project idea is already in the right place, so no moving is needed.

Very interesting use of available technologies to bring language learning to anyone interested in expanding their global vocabulary! I'm now wondering how much of this can be automated so that visitors to an equipped website can choose to enable it for any page they wish, regardless of source language, and expanding it into any target language they desire to learn.
Signature from »Ray« Earth For Sale:
Slightly Used; inquire within

1 registered user and 51 guests thanked already.

Users who thanked for this post:

nomada

  • "doesntmatter" started this thread

Posts: 3

Date of registration: May 5th 2012

Language Team: English

Focus Group: Other - Not Listed Above

Thanks: 201 / 0

  • Send private message

4

Monday, May 7th 2012, 8:25am

It’s quite possible but a lot of work. With transcription situation a bit easier since pronunciation of a word in most cases is the same (actually depends on language). It will be enough to have a database which provides single transcription for every word. Or more difficult and prissier solution could be an algorithm (e.g. from open source project) which pickups transcription depending on previous words in the sentence.

With translation the situation is more difficult because one word has several translations (noun, adjective, figurative meaning in set phrases, etc.) depending on context. And solutions are the same. More easier and quicker but not so good in quality is a database with single translation per word. And better result will be with some algorithm which chooses correct translation depending on context of the sentence.

I suggest you to contact with developers of PhoTransEdit or similar project since they have more skills in that area.

2 registered users and 70 guests thanked already.

Users who thanked for this post:

nomada, Ray

© Linguistic Team International 2017
Context In Motion