基于百度API的开源自动翻译.srt文件软件的实现的几个技术细节总结附源代码
該軟件的實現技術細節和構想大概是這樣的,有更好的想法的可以聯系我,我們一起改進這個軟件
這個軟件是用差不多一個星期左右的時間編出來的
思路:
一.對字幕組有了解的人一點對.srt文件有一定的了解,這種文件大概長這個樣子
1
00:00:46,040 --> 00:00:51,809
East Berlin, 1975
?
2
00:01:16,400 --> 00:01:18,402
You're freezing cold.
?
3
00:01:23,280 --> 00:01:25,203
I'll give you my sweater.
所有第一步我是將以上文件分成3個獨立的文件,保存為1_temp.txt, 2_temp.txt, 3_temp.txt文檔.
二.然后再通過一個函數依次打開每一個這樣的文件讀取其中的第三行這個的英文字母
最后通過調用百度的API將英文傳給百度,最后從百度接受回來譯文補在每個臨時文件的后面
三.將臨時文件讀取并連接成最后的文件
思路很簡單,其中要解決的途中遇到的一些問題現在想起了就是Unicode的問題,頭都想大了
百度返回的是Unicode格式的字符串
但是在python2.x的條件下要是想顯示的話就很麻煩,后來是某位SegmentFault的大牛指點之下,在代碼開頭的地方加了一點代碼
from __future__ import unicode_literals
問題就解決了
此部分代碼如下
u = response.read()
dict_mid = eval(u)
dict_trans = dict_mid.get('trans_result')
dict_trans_mid = dict_trans[0]
result_mid = dict_trans_mid.get('dst')
result = (result_mid).encode("UTF-8")
print result
說到這里就想到這個頭大的百度返回的json格式的包
先讀取了json的包,通過eval()函數將這個str自動轉換成為dict也就是字典
然后獲得名為trans_result的鍵值,最后讀取這個值為列表
最后再將這個列表的第一個元素讀出來,然后讀出來的又是一個字典
最后再用字典的get方法得到最后dst的翻譯結果
最后encode解碼從utf8為變成中文輸出
其余的基本就是工程上的問題,想想就能解決,下面貼出代碼的位置
https://github.com/fansubgroup/Hyperion1.0
下一步是希望繼續改進.srt文件的行識別函數,兼容更多的翻譯模式,提供更智能的翻譯,最后還要加入可視化的操作界面
想加入這個開源軟件開發的同學可以郵箱聯系我super_big_hero@sina,com
下面貼出幾張本人參考的文章的url,希望對看這個文章的同學有用
關于python中future的使用 http://www.liaoxuefeng.com/wiki/001374738125095c955c1e6d8bb493182103fac9270762a000/001386820023084e5263fe54fde4e4e8616597058cc4ba1000
json的操作 http://www.cnblogs.com/qq78292959/p/3467937.html
總結
以上是生活随笔為你收集整理的基于百度API的开源自动翻译.srt文件软件的实现的几个技术细节总结附源代码的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: linux浏览器,邮件客户端,输入法,双
- 下一篇: 十四届大学生数学竞赛补赛试题