eva-ia-robot 0.1.1 → 0.1.2
Sign up to get free protection for your applications and to get access to all the features.
- 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
|