lib/punchblock/translator/asterisk/component/mrcp_native_prompt.rb in punchblock-2.6.0 vs lib/punchblock/translator/asterisk/component/mrcp_native_prompt.rb in punchblock-2.7.0
- old
+ new
@@ -15,11 +15,11 @@
raise OptionError, "The recognizer #{recognizer} is unsupported." unless recognizer == 'unimrcp'
raise OptionError, 'A document is required.' unless output_node.render_documents.count > 0
raise OptionError, 'Only one document is allowed.' if output_node.render_documents.count > 1
raise OptionError, 'Only inline documents are allowed.' if first_doc.url
- raise OptionError, 'Only one audio file is allowed.' if first_doc.value.size > 1
+ raise OptionError, 'Only one audio file is allowed.' if first_doc.size > 1
raise OptionError, 'A grammar is required.' unless input_node.grammars.count > 0
super
end
@@ -39,10 +39,22 @@
def first_doc
output_node.render_documents.first
end
def audio_filename
- first_doc.value.first
+ path = if first_doc.ssml?
+ first_doc.value.children.first.src
+ else
+ first_doc.value.first
+ end.sub('file://', '')
+
+ dir = File.dirname(path)
+ basename = File.basename(path, '.*')
+ if dir == '.'
+ basename
+ else
+ File.join(dir, basename)
+ end
end
def unimrcp_app_options
super do |opts|
opts[:f] = audio_filename