eva-ia-robot 0.1.1 → 0.1.2
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.
- data/eva_ia_robot.gemspec +2 -2
- data/eva_ia_robot/eva-ia-robot.rb +99 -33
- data/eva_ia_robot/eva-pergunta.rb +34 -0
- data/eva_ia_robot/eva-resposta.rb +8 -0
- data/eva_ia_robot/vagrantlistbox.rb +32 -0
- data/eva_ia_robot/versao.rb +32 -0
- metadata +6 -2
data/eva_ia_robot.gemspec
CHANGED
@@ -1,10 +1,10 @@
|
|
1
1
|
Gem::Specification.new do |s|
|
2
2
|
s.name = "eva-ia-robot"
|
3
|
-
s.version = "0.1.
|
3
|
+
s.version = "0.1.2"
|
4
4
|
s.description = "Gem integrada com Google Speech e Google Translate"
|
5
5
|
s.summary = "Command line"
|
6
6
|
s.author = "Henrique Utsch"
|
7
7
|
s.email = "henriqueutsch@gmail.com"
|
8
8
|
s.homepage = "https://github.com/henriqueutsch/Eva-IA-Robot"
|
9
|
-
s.files = Dir["{lib/**/*.rb,README.rdoc,test/**/*.rb,eva_ia_robot/*.rb
|
9
|
+
s.files = Dir["{lib/**/*.rb,README.rdoc,test/**/*.rb,eva_ia_robot/*.rb,eva_ia_robot/*.dll,,eva_ia_robot/*.exe,Rakefile,*.gemspec}"]
|
10
10
|
end
|
@@ -4,45 +4,25 @@ require "cgi"
|
|
4
4
|
require 'open-uri'
|
5
5
|
require 'json'
|
6
6
|
require 'win32ole'
|
7
|
-
|
8
7
|
require 'rbconfig'
|
9
8
|
require 'fileutils'
|
10
9
|
|
10
|
+
load 'eva-pergunta.rb'
|
11
|
+
load 'eva-resposta.rb'
|
12
|
+
load 'versao.rb'
|
13
|
+
|
11
14
|
module HelloWorld
|
12
15
|
def self.say
|
13
16
|
"Hello World!"
|
14
17
|
end
|
15
18
|
end
|
16
19
|
|
17
|
-
shell = WIN32OLE.new('Shell.Application')
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
def pergunta()
|
22
|
-
p 'gravando ...'
|
23
|
-
system('rec.exe -r 16000 test.flac silence -l 1 0.1 1% 1 1.5 1%')
|
24
|
-
p 'Enviando arquivo ...'
|
25
|
-
request = %x(wget.exe -q -U "rate=16000" -O - "http://www.google.com/speech-api/v1/recognize?lang=pt-BR&client=Mozilla/5.0" --post-file test.flac --header="Content-Type: audio/x-flac; rate=16000")
|
26
|
-
resposta = JSON.parse(request)
|
27
|
-
if resposta["status"] == 5
|
28
|
-
resposta("favor repêtir o comando")
|
29
|
-
else
|
30
|
-
resp = resposta["hypotheses"][0]["utterance"]
|
31
|
-
p resp
|
32
|
-
return resp
|
33
|
-
end
|
34
|
-
|
35
|
-
end
|
36
|
-
|
37
|
-
def resposta(texto)
|
38
|
-
texto = CGI::escape(texto)
|
39
|
-
url = 'http://translate.google.com/translate_tts?ie=UTF-8&tl=pt&q='+texto
|
40
|
-
open("arquivo.mp3", "wb") do |file|
|
41
|
-
file.write(open(url).read)
|
42
|
-
end
|
43
|
-
system('play.exe arquivo.mp3')
|
44
|
-
end
|
45
20
|
|
21
|
+
puts "teste"
|
22
|
+
shell = WIN32OLE.new('Shell.Application')
|
23
|
+
frase = ""
|
24
|
+
feedback = true
|
25
|
+
beep = true
|
46
26
|
def os
|
47
27
|
@os ||= (
|
48
28
|
host_os = RbConfig::CONFIG['host_os']
|
@@ -60,18 +40,104 @@ end
|
|
60
40
|
end
|
61
41
|
)
|
62
42
|
end
|
63
|
-
while
|
64
|
-
|
65
|
-
p frase = pergunta()
|
43
|
+
while frase !="sair" do
|
44
|
+
begin
|
45
|
+
p frase = pergunta(feedback,beep)
|
46
|
+
rescue =>e
|
47
|
+
puts e.message
|
48
|
+
end
|
66
49
|
if frase == 'eva'
|
67
50
|
resposta('pois não')
|
68
51
|
end
|
69
52
|
|
53
|
+
if frase == 'versão'
|
54
|
+
resposta(versao())
|
55
|
+
|
56
|
+
end
|
57
|
+
|
58
|
+
if frase == 'desativar'
|
59
|
+
resposta('sistema de resposta desativado')
|
60
|
+
feedback = false
|
61
|
+
end
|
62
|
+
|
63
|
+
if frase == 'ativar'
|
64
|
+
resposta('sistema de resposta ativado')
|
65
|
+
feedback = true
|
66
|
+
end
|
67
|
+
|
68
|
+
if frase == 'desativar som'
|
69
|
+
resposta('sistema de beep desativado')
|
70
|
+
beep = false
|
71
|
+
end
|
72
|
+
|
73
|
+
if frase == 'ativar som'
|
74
|
+
resposta('sistema de beep ativado')
|
75
|
+
beep = true
|
76
|
+
end
|
77
|
+
|
70
78
|
if frase == 'abrir chrome'
|
71
|
-
resposta('abrindo
|
79
|
+
resposta('abrindo krome')
|
72
80
|
shell.ShellExecute("chrome.exe", "", "", "open", 1)
|
73
81
|
end
|
74
82
|
|
83
|
+
if frase == 'que horas são'
|
84
|
+
resposta("são #{Time.now.hour.to_s} horas e #{Time.now.min.to_s} minutos")
|
85
|
+
end
|
86
|
+
|
87
|
+
if frase == 'que dia é hoje'
|
88
|
+
semana = ["","Segunda-feira","terça-feira","quarta-feira","quinta-feira","sexta-feira","sabado","domingo"]
|
89
|
+
mes = ["","janeiro","fevereiro","março","abril","maio","junho","julho","agosto","setembro","outubro","novembro","dezembro"]
|
90
|
+
resposta("hoje é #{semana[Time.now.wday]} dia #{Time.now.day.to_s} de #{mes[Time.now.month]} de #{Time.now.year.to_s}")
|
91
|
+
end
|
92
|
+
|
93
|
+
if frase == 'abrir excel'
|
94
|
+
resposta('abrindo ekcel')
|
95
|
+
shell.ShellExecute("excel.exe", "", "", "open", 1)
|
96
|
+
end
|
97
|
+
|
98
|
+
if frase == 'finalizar excel'
|
99
|
+
resposta('finalizando ekcel')
|
100
|
+
system("taskkill /IM excel.exe")
|
101
|
+
end
|
102
|
+
|
103
|
+
if frase == 'abrir word'
|
104
|
+
resposta('abrindo word')
|
105
|
+
shell.ShellExecute("winword.exe", "", "", "open", 1)
|
106
|
+
end
|
107
|
+
|
108
|
+
if frase == 'finalizar word'
|
109
|
+
resposta('finalizando word')
|
110
|
+
system("taskkill /IM winword.exe")
|
111
|
+
end
|
112
|
+
|
113
|
+
if frase == 'abrir illustrator'
|
114
|
+
resposta('abrindo ilustreitor')
|
115
|
+
shell.ShellExecute("illustrator.exe", "", "", "open", 1)
|
116
|
+
end
|
117
|
+
|
118
|
+
if frase == 'finalizar illustrator'
|
119
|
+
resposta('finalizando ilustreitor')
|
120
|
+
system("taskkill /IM illustrator.exe")
|
121
|
+
end
|
122
|
+
|
123
|
+
if frase == 'abrir prompt'
|
124
|
+
resposta('abrindo prompt de comando')
|
125
|
+
shell.ShellExecute("cmd.exe", "", "", "open", 1)
|
126
|
+
end
|
127
|
+
|
128
|
+
if frase == 'finalizar prompt'
|
129
|
+
resposta('finalizando prompt')
|
130
|
+
system("taskkill /IM cmd.exe")
|
131
|
+
end
|
132
|
+
|
133
|
+
|
134
|
+
if frase == 'sair'
|
135
|
+
resposta('finalizando sistema de voz')
|
136
|
+
resposta('tênha um bom dia')
|
137
|
+
|
138
|
+
end
|
139
|
+
|
140
|
+
|
75
141
|
if frase == 'sistema operacional'
|
76
142
|
resposta("seu sistema operacional é #{os()}")
|
77
143
|
end
|
@@ -0,0 +1,34 @@
|
|
1
|
+
#!/bin/env ruby
|
2
|
+
# encoding: utf-8
|
3
|
+
require 'win32/sound'
|
4
|
+
include Win32
|
5
|
+
|
6
|
+
|
7
|
+
def pergunta(feedback,beep)
|
8
|
+
p 'gravando ...'
|
9
|
+
if beep== true
|
10
|
+
Sound.beep(1500, 200)
|
11
|
+
end
|
12
|
+
system('rec.exe -r 16000 test.flac silence -l 1 0.1 1% 1 1.5 1%')
|
13
|
+
p 'Enviando arquivo ...'
|
14
|
+
request = %x(wget.exe -q -U "rate=16000" -O - "http://www.google.com/speech-api/v1/recognize?lang=pt-BR&client=Mozilla/5.0" --post-file test.flac --header="Content-Type: audio/x-flac; rate=16000")
|
15
|
+
begin
|
16
|
+
request.force_encoding('utf-8')
|
17
|
+
resposta = JSON.parse(request)
|
18
|
+
rescue =>e
|
19
|
+
puts e.message
|
20
|
+
end
|
21
|
+
if resposta["status"] == 5
|
22
|
+
if feedback==true
|
23
|
+
resposta("favor repêtir o comando")
|
24
|
+
else
|
25
|
+
puts "favor repetir o comando"
|
26
|
+
end
|
27
|
+
|
28
|
+
else
|
29
|
+
resp = resposta["hypotheses"][0]["utterance"]
|
30
|
+
puts resp
|
31
|
+
return resp
|
32
|
+
end
|
33
|
+
end
|
34
|
+
|
@@ -0,0 +1,32 @@
|
|
1
|
+
require 'open-uri'
|
2
|
+
require 'nokogiri'
|
3
|
+
|
4
|
+
pagina = Nokogiri::HTML(open("http://www.vagrantbox.es/"))
|
5
|
+
|
6
|
+
|
7
|
+
|
8
|
+
nome,link,tamanho,lista = Array.new
|
9
|
+
nome = pagina.xpath("//table/tbody/tr/th").map {|texto| texto.text}
|
10
|
+
link = pagina.xpath("//table/tbody/tr/td[2]").map {|texto| texto.text}
|
11
|
+
tamanho = pagina.xpath("//table/tbody/tr/td[3]").map {|texto| texto.text}
|
12
|
+
indice = Array.new(tamanho.count) {|i| i+1}
|
13
|
+
lista = indice,nome,link,tamanho
|
14
|
+
# lista = puts pagina.xpath("//div/a").text.split('-')
|
15
|
+
# puts pagina.xpath("//div/a").map {|texto| texto['onclick'].split("'")[1]}
|
16
|
+
# puts pagina.xpath("//div/a").map {|texto| texto['onclick'].split("'")[3]}
|
17
|
+
|
18
|
+
p "inicio"
|
19
|
+
p link[58]
|
20
|
+
system("dir")
|
21
|
+
p system("vagrant box add Freebsd2 #{link[58]}")
|
22
|
+
|
23
|
+
# pkg_add -r samba36
|
24
|
+
# NET SHARE vagrant=D:\vagrant "/grant:TODOS,FULL"
|
25
|
+
# NET SHARE $nomecomp=$caminho "/grant:$User,FULL|READ|WRITE"
|
26
|
+
|
27
|
+
|
28
|
+
# mount_smbfs -I 192.168.2.145 //Utsch@UTSCH-PC/Vagrant /usr/home/vagrant
|
29
|
+
# sudo mount_smbfs -I 192.168.2.145 //Utsch@UTSCH-PC/Vagrant /usr/home/vagrant
|
30
|
+
|
31
|
+
|
32
|
+
# VM Config = "/vagrant D:/Vagrant"
|
@@ -0,0 +1,32 @@
|
|
1
|
+
#!/bin/env ruby
|
2
|
+
# encoding: utf-8
|
3
|
+
require 'open-uri'
|
4
|
+
require 'nokogiri'
|
5
|
+
require 'rubygems'
|
6
|
+
|
7
|
+
|
8
|
+
def versao(teste)
|
9
|
+
pagina = Nokogiri::HTML(open("http://rubygems.org/gems/eva-ia-robot"))
|
10
|
+
vremota = pagina.xpath("/html/body/div/div[3]/div[1]/div[1]").text
|
11
|
+
vremota = vremota.gsub(/[^0-9.]/,'')
|
12
|
+
p vremota
|
13
|
+
|
14
|
+
|
15
|
+
name = /^/i
|
16
|
+
dep = Gem::Dependency.new(name, Gem::Requirement.default)
|
17
|
+
specs = Gem.source_index.search(dep)
|
18
|
+
vlocal = ""
|
19
|
+
# specs.map{ |s| puts "#{s.version}" if s.name=="eva-ia-robot"}
|
20
|
+
specs.map{ |s| vlocal = s.version if s.name=="eva-ia-robot"}
|
21
|
+
vlocal = vlocal.to_s
|
22
|
+
p vlocal
|
23
|
+
vremota= teste
|
24
|
+
if vlocal==vremota
|
25
|
+
return "Sua versão é a mais atual"
|
26
|
+
else
|
27
|
+
return "Existe uma atualização disponível"
|
28
|
+
end
|
29
|
+
|
30
|
+
end
|
31
|
+
|
32
|
+
# p v = versao("0.2.1")
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: eva-ia-robot
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.2
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date:
|
12
|
+
date: 2014-02-17 00:00:00.000000000 -03:00
|
13
13
|
default_executable:
|
14
14
|
dependencies: []
|
15
15
|
description: Gem integrada com Google Speech e Google Translate
|
@@ -20,6 +20,10 @@ extra_rdoc_files: []
|
|
20
20
|
files:
|
21
21
|
- test/eva_ia_robot_test.rb
|
22
22
|
- eva_ia_robot/eva-ia-robot.rb
|
23
|
+
- eva_ia_robot/eva-pergunta.rb
|
24
|
+
- eva_ia_robot/eva-resposta.rb
|
25
|
+
- eva_ia_robot/vagrantlistbox.rb
|
26
|
+
- eva_ia_robot/versao.rb
|
23
27
|
- eva_ia_robot/libgomp-1.dll
|
24
28
|
- eva_ia_robot/libltdl-7.dll
|
25
29
|
- eva_ia_robot/libmad.dll
|