subtitle 0.1.7 → 0.1.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/lib/scc.rb +77 -0
- metadata +5 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: aba6a9f70a40bf96fd797a6a68816ca2e3070f93573d26dbbb1df4b12a47d691
|
4
|
+
data.tar.gz: 1f61c3bb5a4ec42ca6fe694c9e1bac4d805d21d7f057b6f45a4c51ac0671e287
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: e996202bdd3ee2c8860b51aa6c5e414b9eea4735355c5b8f9d58f90ce67105fb1fafd781ae3e7375215ae8d364c9dfd0caa6dc3d73fd9f0257bb2748b945badc
|
7
|
+
data.tar.gz: 5bfdf76e39dfc65a4ef5e5e288b74aa3e098fe358c402214300710b7b614d8c444053ed7dcdc3e012327d6c7b33d6d91db8701e06c39d6232dfdde42197d3e17
|
data/lib/scc.rb
ADDED
@@ -0,0 +1,77 @@
|
|
1
|
+
require 'aws-sdk-translate'
|
2
|
+
require 'aws-sdk-comprehend'
|
3
|
+
|
4
|
+
class SCC
|
5
|
+
|
6
|
+
def initialize(awskey, awssecret)
|
7
|
+
@translate = Aws::Translate::Client.new(:access_key_id => "#{awskey}", :secret_access_key => "#{awssecret}")
|
8
|
+
@comp = Aws::Comprehend::Client.new(:access_key_id => "#{awskey}", :secret_access_key => "#{awssecret}")
|
9
|
+
end
|
10
|
+
|
11
|
+
def get_text(srt_file, num_chars)
|
12
|
+
ccfile = File.open(srt_file, 'r:UTF-8', &:read)
|
13
|
+
text_sample = ""
|
14
|
+
ccfile.each_line do | line |
|
15
|
+
if line =~ /^\d\d:\d\d:\d\d:\d\d\s/
|
16
|
+
scc_text_code = line.gsub(/^\d\d:\d\d:\d\d:\d\d\s/, '')
|
17
|
+
text_sample << decode(scc_text_code)
|
18
|
+
if text_sample.length > (num_chars+1)
|
19
|
+
break
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
23
|
+
return text_sample[0,num_chars]
|
24
|
+
end
|
25
|
+
|
26
|
+
def decode(scc_code_text)
|
27
|
+
hex_codes = scc_code_text.gsub(/\s/,'').scan(/.{2}/)
|
28
|
+
decoded_text = ""
|
29
|
+
skip_next = false
|
30
|
+
skip_count = 0
|
31
|
+
hex_codes.each do | code |
|
32
|
+
if ["94", "91", "92", "97", "15", "16", "10", "13"].include?(code)
|
33
|
+
skip_next = true
|
34
|
+
skip_count = skip_count +1
|
35
|
+
next
|
36
|
+
end
|
37
|
+
if skip_count == 1 && skip_next
|
38
|
+
skip_next = false
|
39
|
+
skip_count = 0
|
40
|
+
next
|
41
|
+
end
|
42
|
+
dec_val = code.to_i(16) & 0x7F
|
43
|
+
decoded_text << dec_val.chr
|
44
|
+
end
|
45
|
+
decoded_text
|
46
|
+
end
|
47
|
+
|
48
|
+
def encode(free_text)
|
49
|
+
encoded_str = ""
|
50
|
+
count = 0
|
51
|
+
free_text.each_byte do |char|
|
52
|
+
count += 1
|
53
|
+
binval = char.to_s(2).count("1") % 2 == 0 ? (char.to_i | 128 ).to_s(2) : char.to_s(2)
|
54
|
+
encode_char = binval.to_i(2).to_s(16)
|
55
|
+
if ((count > 0) && (count % 2 == 0))
|
56
|
+
encoded_str << encode_char << " "
|
57
|
+
else
|
58
|
+
encoded_str << encode_char
|
59
|
+
end
|
60
|
+
end
|
61
|
+
encoded_str
|
62
|
+
end
|
63
|
+
|
64
|
+
def detect_lang(scc_file)
|
65
|
+
lang = nil
|
66
|
+
begin
|
67
|
+
sample_text = get_text(scc_file, 100)
|
68
|
+
response = @comp.detect_dominant_language( {
|
69
|
+
text: "#{sample_text}"
|
70
|
+
})
|
71
|
+
lang = response[:languages][0][:language_code] rescue nil
|
72
|
+
rescue => error
|
73
|
+
puts "Error while detecting the language!!"
|
74
|
+
end
|
75
|
+
lang
|
76
|
+
end
|
77
|
+
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: subtitle
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.8
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Maheshwaran G
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2019-10-
|
11
|
+
date: 2019-10-21 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -59,6 +59,7 @@ executables: []
|
|
59
59
|
extensions: []
|
60
60
|
extra_rdoc_files: []
|
61
61
|
files:
|
62
|
+
- lib/scc.rb
|
62
63
|
- lib/srt.rb
|
63
64
|
- lib/subtitle.rb
|
64
65
|
- lib/vtt.rb
|
@@ -87,5 +88,6 @@ rubyforge_project:
|
|
87
88
|
rubygems_version: 2.7.3
|
88
89
|
signing_key:
|
89
90
|
specification_version: 4
|
90
|
-
summary: subtitle
|
91
|
+
summary: subtitle helps you to detect language and translate closed caption to required
|
92
|
+
language
|
91
93
|
test_files: []
|