ruby_speech 2.3.1 → 2.3.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.hound.yml +2 -0
- data/.travis.yml +2 -2
- data/CHANGELOG.md +6 -0
- data/README.md +4 -4
- data/lib/ruby_speech/generic_element.rb +2 -2
- data/lib/ruby_speech/nlsml/builder.rb +2 -1
- data/lib/ruby_speech/nlsml/document.rb +5 -0
- data/lib/ruby_speech/version.rb +1 -1
- data/spec/ruby_speech/grxml_spec.rb +1 -1
- data/spec/ruby_speech/nlsml_spec.rb +48 -0
- data/spec/ruby_speech/ssml_spec.rb +24 -0
- metadata +4 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: bb37334ff6ea56b3b11705f1f8091c966de69ab4
|
4
|
+
data.tar.gz: a9ef15cb9fe4fae5ae8a7b7731930d5ad7821fa7
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 5ed551a6e78ef2e19ecf8ce194d5e1c5e04334f8974585ab7e101cbaef5bdece0c7cbb0156d721e6f682ab41170573f67a3d58eb7e0e7a7ce735d9f9d550f513
|
7
|
+
data.tar.gz: 88c7b894a74862c146256c29970b67626072f837d81bd05108ce16ab93ee338d4c17d3a7455e4e5adf2dd4bef68520d2198e73628886125c9a4e9815e55de881
|
data/.hound.yml
ADDED
data/.travis.yml
CHANGED
data/CHANGELOG.md
CHANGED
@@ -1,5 +1,11 @@
|
|
1
1
|
# [develop](https://github.com/benlangfeld/ruby_speech)
|
2
2
|
|
3
|
+
# [2.3.2](https://github.com/benlangfeld/ruby_speech/compare/v2.3.1...v2.3.2) - [2014-04-21](https://rubygems.org/gems/ruby_speech/versions/2.3.2)
|
4
|
+
* Bugfix: String nodes should take non-strings and cast to a string (`#to_s`)
|
5
|
+
* Bugfix: Cleanly handle NLSML with no input tag
|
6
|
+
* Bugfix: Drawing an NLSML doc should return something structured/parsed
|
7
|
+
* Bugfix: Cloning SSML documents no longer turns them into GRXML docs
|
8
|
+
|
3
9
|
# [2.3.1](https://github.com/benlangfeld/ruby_speech/compare/v2.3.0...v2.3.1) - [2014-02-24](https://rubygems.org/gems/ruby_speech/versions/2.3.1)
|
4
10
|
* Bugfix: Phone number grammar should only allow a single instance of '*'/'x'
|
5
11
|
* Bugfix: Concatenating documents containing strings across the border inserts appropriate spacing (#21).
|
data/README.md
CHANGED
@@ -259,7 +259,7 @@ require 'ruby_speech'
|
|
259
259
|
|
260
260
|
nlsml = RubySpeech::NLSML.draw grammar: 'http://flight' do
|
261
261
|
interpretation confidence: 0.6 do
|
262
|
-
input "I want to go to Pittsburgh", mode: :
|
262
|
+
input "I want to go to Pittsburgh", mode: :voice
|
263
263
|
|
264
264
|
instance do
|
265
265
|
airline do
|
@@ -288,7 +288,7 @@ becomes:
|
|
288
288
|
<?xml version="1.0"?>
|
289
289
|
<result xmlns="http://www.ietf.org/xml/ns/mrcpv2" grammar="http://flight">
|
290
290
|
<interpretation confidence="0.6">
|
291
|
-
<input mode="
|
291
|
+
<input mode="voice">I want to go to Pittsburgh</input>
|
292
292
|
<instance>
|
293
293
|
<airline>
|
294
294
|
<to_city>Pittsburgh</to_city>
|
@@ -315,7 +315,7 @@ document.match? # => true
|
|
315
315
|
document.interpretations # => [
|
316
316
|
{
|
317
317
|
confidence: 0.6,
|
318
|
-
input: { mode: :
|
318
|
+
input: { mode: :voice, content: 'I want to go to Pittsburgh' },
|
319
319
|
instance: { airline: { to_city: 'Pittsburgh' } }
|
320
320
|
},
|
321
321
|
{
|
@@ -326,7 +326,7 @@ document.interpretations # => [
|
|
326
326
|
]
|
327
327
|
document.best_interpretation # => {
|
328
328
|
confidence: 0.6,
|
329
|
-
input: { mode: :
|
329
|
+
input: { mode: :voice, content: 'I want to go to Pittsburgh' },
|
330
330
|
instance: { airline: { to_city: 'Pittsburgh' } }
|
331
331
|
}
|
332
332
|
```
|
@@ -172,11 +172,11 @@ module RubySpeech
|
|
172
172
|
end
|
173
173
|
|
174
174
|
def string(other)
|
175
|
-
self << Nokogiri::XML::Text.new(other, document)
|
175
|
+
self << Nokogiri::XML::Text.new(other.to_s, document)
|
176
176
|
end
|
177
177
|
|
178
178
|
def clone
|
179
|
-
|
179
|
+
self.class.import to_xml
|
180
180
|
end
|
181
181
|
|
182
182
|
def traverse(&block)
|
@@ -5,11 +5,12 @@ module RubySpeech
|
|
5
5
|
|
6
6
|
def initialize(options = {}, &block)
|
7
7
|
options = {'xmlns' => NLSML_NAMESPACE}.merge(options)
|
8
|
-
|
8
|
+
xml_doc = Nokogiri::XML::Builder.new do |builder|
|
9
9
|
builder.result options do |r|
|
10
10
|
apply_block r, &block
|
11
11
|
end
|
12
12
|
end.doc
|
13
|
+
@document = RubySpeech::NLSML::Document.new xml_doc
|
13
14
|
end
|
14
15
|
|
15
16
|
def interpretation(*args, &block)
|
@@ -38,6 +38,10 @@ module RubySpeech
|
|
38
38
|
noinput_elements.any?
|
39
39
|
end
|
40
40
|
|
41
|
+
def to_xml
|
42
|
+
document.to_xml
|
43
|
+
end
|
44
|
+
|
41
45
|
private
|
42
46
|
|
43
47
|
def nomatch?
|
@@ -58,6 +62,7 @@ module RubySpeech
|
|
58
62
|
|
59
63
|
def input_hash_for_interpretation(interpretation)
|
60
64
|
input_element = interpretation.at_xpath 'ns:input', 'ns' => NLSML_NAMESPACE
|
65
|
+
return unless input_element
|
61
66
|
{ content: input_element.content }.tap do |h|
|
62
67
|
h[:mode] = input_element['mode'].to_sym if input_element['mode']
|
63
68
|
end
|
data/lib/ruby_speech/version.rb
CHANGED
@@ -55,6 +55,22 @@ describe RubySpeech::NLSML do
|
|
55
55
|
document.to_xml.should == expected_document
|
56
56
|
end
|
57
57
|
|
58
|
+
it "should return a structured/parsed document" do
|
59
|
+
document = RubySpeech::NLSML.draw(grammar: 'http://flight') do
|
60
|
+
interpretation confidence: 0.6 do
|
61
|
+
input "I want to go to Pittsburgh", mode: :speech
|
62
|
+
|
63
|
+
instance do
|
64
|
+
airline do
|
65
|
+
to_city 'Pittsburgh'
|
66
|
+
end
|
67
|
+
end
|
68
|
+
end
|
69
|
+
end
|
70
|
+
|
71
|
+
document.should be_match
|
72
|
+
end
|
73
|
+
|
58
74
|
context "with a string instance" do
|
59
75
|
let :example_document do
|
60
76
|
'''
|
@@ -198,6 +214,38 @@ describe RubySpeech::NLSML do
|
|
198
214
|
its(:best_interpretation) { should == expected_best_interpretation }
|
199
215
|
end
|
200
216
|
|
217
|
+
context "with an interpretation that has no input" do
|
218
|
+
let :example_document do
|
219
|
+
'''
|
220
|
+
<result xmlns="http://www.ietf.org/xml/ns/mrcpv2" grammar="http://flight">
|
221
|
+
<interpretation confidence="0.6">
|
222
|
+
<instance>
|
223
|
+
<airline>
|
224
|
+
<to_city>Pittsburgh</to_city>
|
225
|
+
</airline>
|
226
|
+
</instance>
|
227
|
+
</interpretation>
|
228
|
+
</result>
|
229
|
+
'''
|
230
|
+
end
|
231
|
+
|
232
|
+
let(:expected_best_interpretation) do
|
233
|
+
{
|
234
|
+
confidence: 0.6,
|
235
|
+
input: nil,
|
236
|
+
instance: { airline: { to_city: 'Pittsburgh' } },
|
237
|
+
instances: [{ airline: { to_city: 'Pittsburgh' } }]
|
238
|
+
}
|
239
|
+
end
|
240
|
+
|
241
|
+
let(:expected_interpretations) do
|
242
|
+
[expected_best_interpretation]
|
243
|
+
end
|
244
|
+
|
245
|
+
its(:interpretations) { should == expected_interpretations }
|
246
|
+
its(:best_interpretation) { should == expected_best_interpretation }
|
247
|
+
end
|
248
|
+
|
201
249
|
context "with a string instance" do
|
202
250
|
let :example_document do
|
203
251
|
'''
|
@@ -81,6 +81,30 @@ module RubySpeech
|
|
81
81
|
SSML.draw { string foo }.should == expected_doc
|
82
82
|
end
|
83
83
|
|
84
|
+
describe 'cloning' do
|
85
|
+
context 'SSML documents' do
|
86
|
+
let :original do
|
87
|
+
RubySpeech::SSML.draw do
|
88
|
+
string "Hi, I'm Fred."
|
89
|
+
end
|
90
|
+
end
|
91
|
+
|
92
|
+
subject { original.clone }
|
93
|
+
|
94
|
+
it 'should match the contents of the original document' do
|
95
|
+
subject.to_s.should == original.to_s
|
96
|
+
end
|
97
|
+
|
98
|
+
it 'should match the class of the original document' do
|
99
|
+
subject.class.should == original.class
|
100
|
+
end
|
101
|
+
|
102
|
+
it 'should be equal to the original document' do
|
103
|
+
subject.should == original
|
104
|
+
end
|
105
|
+
end
|
106
|
+
end
|
107
|
+
|
84
108
|
describe "embedding" do
|
85
109
|
it "SSML documents" do
|
86
110
|
doc1 = RubySpeech::SSML.draw do
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: ruby_speech
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.3.
|
4
|
+
version: 2.3.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Ben Langfeld
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-
|
11
|
+
date: 2014-04-21 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: nokogiri
|
@@ -207,6 +207,7 @@ extensions:
|
|
207
207
|
extra_rdoc_files: []
|
208
208
|
files:
|
209
209
|
- ".gitignore"
|
210
|
+
- ".hound.yml"
|
210
211
|
- ".rspec"
|
211
212
|
- ".travis.yml"
|
212
213
|
- CHANGELOG.md
|
@@ -316,7 +317,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
316
317
|
version: '0'
|
317
318
|
requirements: []
|
318
319
|
rubyforge_project: ruby_speech
|
319
|
-
rubygems_version: 2.2.
|
320
|
+
rubygems_version: 2.2.2
|
320
321
|
signing_key:
|
321
322
|
specification_version: 4
|
322
323
|
summary: A Ruby library for TTS & ASR document preparation
|