azure_stt 0.1.0
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 +7 -0
- data/.github/dependabot.yml +6 -0
- data/.github/workflows/ci.yml +33 -0
- data/.gitignore +56 -0
- data/.rubocop.yml +22 -0
- data/CHANGELOG.md +28 -0
- data/CODE_OF_CONDUCT.md +74 -0
- data/Gemfile +24 -0
- data/Gemfile.lock +141 -0
- data/LICENSE +21 -0
- data/README.md +129 -0
- data/Rakefile +27 -0
- data/azure_stt.gemspec +29 -0
- data/bin/console +15 -0
- data/bin/setup +8 -0
- data/docs/AzureBatchTranscription.html +301 -0
- data/docs/AzureBatchTranscription/Configuration.html +212 -0
- data/docs/AzureSTT.html +305 -0
- data/docs/AzureSTT/Client.html +1008 -0
- data/docs/AzureSTT/Configuration.html +282 -0
- data/docs/AzureSTT/Error.html +305 -0
- data/docs/AzureSTT/Models.html +135 -0
- data/docs/AzureSTT/Models/Base.html +139 -0
- data/docs/AzureSTT/Models/CombinedRecognizedPhrases.html +538 -0
- data/docs/AzureSTT/Models/File.html +794 -0
- data/docs/AzureSTT/Models/RecognizedPhrase.html +769 -0
- data/docs/AzureSTT/Models/Report.html +384 -0
- data/docs/AzureSTT/Models/Result.html +796 -0
- data/docs/AzureSTT/Models/Sentence.html +615 -0
- data/docs/AzureSTT/Models/Transcription.html +1415 -0
- data/docs/AzureSTT/Models/Word.html +615 -0
- data/docs/AzureSTT/NetError.html +159 -0
- data/docs/AzureSTT/Parsers.html +128 -0
- data/docs/AzureSTT/Parsers/Base.html +404 -0
- data/docs/AzureSTT/Parsers/CombinedRecognizedPhrases.html +156 -0
- data/docs/AzureSTT/Parsers/File.html +156 -0
- data/docs/AzureSTT/Parsers/RecognizedPhrase.html +156 -0
- data/docs/AzureSTT/Parsers/Report.html +156 -0
- data/docs/AzureSTT/Parsers/Result.html +156 -0
- data/docs/AzureSTT/Parsers/Sentence.html +156 -0
- data/docs/AzureSTT/Parsers/Transcription.html +156 -0
- data/docs/AzureSTT/Parsers/Word.html +156 -0
- data/docs/AzureSTT/ServiceError.html +159 -0
- data/docs/AzureSTT/Session.html +767 -0
- data/docs/AzureSTT/Transcription.html +635 -0
- data/docs/AzureSTT/Types.html +116 -0
- data/docs/AzureStt_.html +121 -0
- data/docs/_index.html +392 -0
- data/docs/class_list.html +51 -0
- data/docs/css/common.css +1 -0
- data/docs/css/full_list.css +58 -0
- data/docs/css/style.css +497 -0
- data/docs/file.README.html +201 -0
- data/docs/file_list.html +56 -0
- data/docs/frames.html +17 -0
- data/docs/index.html +201 -0
- data/docs/js/app.js +314 -0
- data/docs/js/full_list.js +216 -0
- data/docs/js/jquery.js +4 -0
- data/docs/method_list.html +707 -0
- data/docs/top-level-namespace.html +110 -0
- data/env.sample +2 -0
- data/lib/azure_stt.rb +20 -0
- data/lib/azure_stt/client.rb +189 -0
- data/lib/azure_stt/configuration.rb +28 -0
- data/lib/azure_stt/errors.rb +25 -0
- data/lib/azure_stt/models.rb +30 -0
- data/lib/azure_stt/models/base.rb +27 -0
- data/lib/azure_stt/models/combined_recognized_phrases.rb +48 -0
- data/lib/azure_stt/models/file.rb +72 -0
- data/lib/azure_stt/models/recognized_phrase.rb +70 -0
- data/lib/azure_stt/models/report.rb +31 -0
- data/lib/azure_stt/models/result.rb +76 -0
- data/lib/azure_stt/models/sentence.rb +53 -0
- data/lib/azure_stt/models/transcription.rb +185 -0
- data/lib/azure_stt/models/word.rb +54 -0
- data/lib/azure_stt/parsers.rb +19 -0
- data/lib/azure_stt/parsers/base.rb +42 -0
- data/lib/azure_stt/parsers/combined_recognized_phrases.rb +28 -0
- data/lib/azure_stt/parsers/file.rb +28 -0
- data/lib/azure_stt/parsers/recognized_phrase.rb +45 -0
- data/lib/azure_stt/parsers/report.rb +25 -0
- data/lib/azure_stt/parsers/result.rb +56 -0
- data/lib/azure_stt/parsers/sentence.rb +45 -0
- data/lib/azure_stt/parsers/transcription.rb +34 -0
- data/lib/azure_stt/parsers/word.rb +28 -0
- data/lib/azure_stt/session.rb +100 -0
- data/lib/azure_stt/version.rb +5 -0
- metadata +158 -0
@@ -0,0 +1,72 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module AzureSTT
|
4
|
+
module Models
|
5
|
+
#
|
6
|
+
# Model class to represent files in our models
|
7
|
+
#
|
8
|
+
# @see https://francecentral.dev.cognitive.microsoft.com/docs/services/speech-to-text-api-v3-0/operations/GetTranscriptionFiles/console
|
9
|
+
#
|
10
|
+
class File < Base
|
11
|
+
#
|
12
|
+
# The id of the file
|
13
|
+
#
|
14
|
+
# @!attribute [r] id
|
15
|
+
# @return [Types::Coercible::String]
|
16
|
+
attribute :id, Types::Coercible::String
|
17
|
+
|
18
|
+
#
|
19
|
+
# The name of the file
|
20
|
+
#
|
21
|
+
# @!attribute [r] name
|
22
|
+
# @return [Types::Coercible::String]
|
23
|
+
attribute :name, Types::Coercible::String
|
24
|
+
|
25
|
+
#
|
26
|
+
# The kind of the file. It is useful to determine wether it is a
|
27
|
+
# transcription result or a report
|
28
|
+
#
|
29
|
+
# @!attribute [r] kind
|
30
|
+
# @return [Types::Coercible::String]
|
31
|
+
attribute :kind, Types::Coercible::String
|
32
|
+
|
33
|
+
#
|
34
|
+
# The properties you specified when you started the transcription
|
35
|
+
#
|
36
|
+
# @!attribute [r] properties
|
37
|
+
# @return [Types::Coercible::Hash]
|
38
|
+
attribute :properties, Types::Coercible::Hash
|
39
|
+
|
40
|
+
#
|
41
|
+
# The date the file had been created
|
42
|
+
#
|
43
|
+
# @!attribute [r] created_date_time
|
44
|
+
# @return [Types::Date]
|
45
|
+
attribute :created_date_time, Types::Date
|
46
|
+
|
47
|
+
#
|
48
|
+
# The url where you will be able to find the file. This url is valid only
|
49
|
+
# for a period of time.
|
50
|
+
#
|
51
|
+
# @!attribute [r] content_url
|
52
|
+
# @return [Types::Coercible::String]
|
53
|
+
attribute :content_url, Types::Coercible::String
|
54
|
+
|
55
|
+
#
|
56
|
+
# The client used to interrogate the API to get the content of the file
|
57
|
+
#
|
58
|
+
# @!attribute [r] client
|
59
|
+
# @return [AzureSTT::Client]
|
60
|
+
attribute :client, Types.Instance(AzureSTT::Client)
|
61
|
+
|
62
|
+
#
|
63
|
+
# Returns the result of the request to the file with the url content_url
|
64
|
+
#
|
65
|
+
# @return [Hash]
|
66
|
+
#
|
67
|
+
def content
|
68
|
+
client.get_file(content_url)
|
69
|
+
end
|
70
|
+
end
|
71
|
+
end
|
72
|
+
end
|
@@ -0,0 +1,70 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module AzureSTT
|
4
|
+
module Models
|
5
|
+
#
|
6
|
+
# Model class to store a recognized phrase from the results file
|
7
|
+
#
|
8
|
+
class RecognizedPhrase < Base
|
9
|
+
#
|
10
|
+
# The status of the recognition for this phrase
|
11
|
+
#
|
12
|
+
# @!attribute [r] recognition_status
|
13
|
+
# @return [Types::Coercible::String]
|
14
|
+
attribute :recognition_status, Types::Coercible::String
|
15
|
+
|
16
|
+
#
|
17
|
+
# The channel of the phrase. The API supports only two channels, so
|
18
|
+
# it is 0 or 1
|
19
|
+
#
|
20
|
+
# @!attribute [r] channel
|
21
|
+
# @return [Types::Coercible::Integer]
|
22
|
+
attribute :channel, Types::Coercible::Integer
|
23
|
+
|
24
|
+
#
|
25
|
+
# The speaker. The API supports only two speakers, so it is 0 or 1
|
26
|
+
#
|
27
|
+
# @!attribute [r] speaker
|
28
|
+
# @return [Types::Coercible::Integer]
|
29
|
+
attribute? :speaker, Types::Coercible::Integer
|
30
|
+
|
31
|
+
#
|
32
|
+
# The offset of the phrase in the audio. Ex: 'PT0.13S' means that the
|
33
|
+
# phrase begins at 13 seconds on the audio file
|
34
|
+
#
|
35
|
+
# @!attribute [r] offset
|
36
|
+
# @return [Types::Coercible::String]
|
37
|
+
attribute? :offset, Types::Coercible::String
|
38
|
+
|
39
|
+
#
|
40
|
+
# The duration of the phrase. Ex: 'PT0.13S' means that the phrase lasts 13
|
41
|
+
# seconds
|
42
|
+
#
|
43
|
+
# @!attribute [r] duration
|
44
|
+
# @return [Types::Coercible::String]
|
45
|
+
attribute? :duration, Types::Coercible::String
|
46
|
+
|
47
|
+
#
|
48
|
+
# The offset of the phrase in the audio in ticks.
|
49
|
+
#
|
50
|
+
# @!attribute [r] offset_in_ticks
|
51
|
+
# @return [Types::Coercible::Integer]
|
52
|
+
attribute? :offset_in_ticks, Types::Coercible::Integer
|
53
|
+
|
54
|
+
#
|
55
|
+
# The duration of the phrase in ticks
|
56
|
+
#
|
57
|
+
# @!attribute [r] duration_in_ticks
|
58
|
+
# @return [Types::Coercible::Integer]
|
59
|
+
attribute? :duration_in_ticks, Types::Coercible::Integer
|
60
|
+
|
61
|
+
#
|
62
|
+
# The sentences the API recognized. The first is the sentence with the
|
63
|
+
# highest confidence.
|
64
|
+
#
|
65
|
+
# @!attribute [r] n_best
|
66
|
+
# @return [Types::Array.of(Sentence)]
|
67
|
+
attribute :n_best, Types::Array.of(Sentence).default([].freeze)
|
68
|
+
end
|
69
|
+
end
|
70
|
+
end
|
@@ -0,0 +1,31 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module AzureSTT
|
4
|
+
module Models
|
5
|
+
#
|
6
|
+
# Model class for reports from a transcription.
|
7
|
+
#
|
8
|
+
class Report < Base
|
9
|
+
#
|
10
|
+
# The number of audio files that had been successsfully transcripted
|
11
|
+
#
|
12
|
+
# @!attribute [r] successful_transcriptions_count
|
13
|
+
# @return [Types::Coercible::Integer]
|
14
|
+
attribute :successful_transcriptions_count, Types::Coercible::Integer
|
15
|
+
|
16
|
+
#
|
17
|
+
# The number of audio files that have failed
|
18
|
+
#
|
19
|
+
# @!attribute [r] failed_transcriptions_count
|
20
|
+
# @return [Types::Coercible::Integer]
|
21
|
+
attribute :failed_transcriptions_count, Types::Coercible::Integer
|
22
|
+
|
23
|
+
#
|
24
|
+
# The details
|
25
|
+
#
|
26
|
+
# @!attribute [r] details
|
27
|
+
# @return [Types::Array.of(Types::Hash)]
|
28
|
+
attribute :details, Types::Array.of(Types::Hash).default([].freeze)
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|
@@ -0,0 +1,76 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module AzureSTT
|
4
|
+
module Models
|
5
|
+
#
|
6
|
+
# Model class for the results of a transcription when the transcription is
|
7
|
+
# successful
|
8
|
+
#
|
9
|
+
class Result < Base
|
10
|
+
#
|
11
|
+
# The audio file source
|
12
|
+
#
|
13
|
+
# @!attribute [r] source
|
14
|
+
# @return [Types::Coercible::String]
|
15
|
+
attribute :source, Types::Coercible::String
|
16
|
+
|
17
|
+
#
|
18
|
+
# The creation date of the result file
|
19
|
+
#
|
20
|
+
# @!attribute [r] timestamp
|
21
|
+
# @return [Types::Date]
|
22
|
+
attribute :timestamp, Types::Date
|
23
|
+
|
24
|
+
#
|
25
|
+
# The duration of the audio in ticks
|
26
|
+
#
|
27
|
+
# @!attribute [r] duration_in_ticks
|
28
|
+
# @return [Types::Coercible::Integer]
|
29
|
+
attribute :duration_in_ticks, Types::Coercible::Integer
|
30
|
+
|
31
|
+
#
|
32
|
+
# The duration of the audio in a String format
|
33
|
+
#
|
34
|
+
# @!attribute [r] duration
|
35
|
+
# @return [Types::Coercible::String]
|
36
|
+
attribute :duration, Types::Coercible::String
|
37
|
+
|
38
|
+
#
|
39
|
+
# The transcript. It seems that the API generates one
|
40
|
+
# 'combinedRecognizedPhrase per channel.
|
41
|
+
#
|
42
|
+
# @!attribute [r] combined_recognized_phrases
|
43
|
+
# @return [Types::Array.of(CombinedRecognizedPhrases)]
|
44
|
+
attribute :combined_recognized_phrases,
|
45
|
+
Types::Array.of(CombinedRecognizedPhrases).default([].freeze)
|
46
|
+
|
47
|
+
#
|
48
|
+
# The phrases that have been recognized from by the transcription
|
49
|
+
#
|
50
|
+
# @!attribute [r] recognized_phrases
|
51
|
+
# @return [Types::Array.of(RecognizedPhrases)]
|
52
|
+
attribute :recognized_phrases,
|
53
|
+
Types::Array.of(RecognizedPhrase).default([].freeze)
|
54
|
+
|
55
|
+
#
|
56
|
+
# The display field of the first CombinedRecognizedPhrases
|
57
|
+
#
|
58
|
+
# @return [String]
|
59
|
+
#
|
60
|
+
def text
|
61
|
+
combined_recognized_phrases.first.transcript
|
62
|
+
end
|
63
|
+
|
64
|
+
#
|
65
|
+
# Get all the best Models::Sentence of a result.
|
66
|
+
#
|
67
|
+
# @return [Array[Models::Sentence]]
|
68
|
+
#
|
69
|
+
def sentences
|
70
|
+
recognized_phrases.map do |recognized_phrase|
|
71
|
+
recognized_phrase.n_best.first
|
72
|
+
end
|
73
|
+
end
|
74
|
+
end
|
75
|
+
end
|
76
|
+
end
|
@@ -0,0 +1,53 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module AzureSTT
|
4
|
+
module Models
|
5
|
+
#
|
6
|
+
# Model to describe a sentence. A sentence is inside a nBest of a recognizedPhrase
|
7
|
+
#
|
8
|
+
class Sentence < Base
|
9
|
+
#
|
10
|
+
# The confidence score of the transcripted sentence.
|
11
|
+
#
|
12
|
+
# @!attribute [r] confidence
|
13
|
+
# @return [Types::Coercible::Float]
|
14
|
+
attribute :confidence, Types::Coercible::Float
|
15
|
+
|
16
|
+
#
|
17
|
+
# The lexical field
|
18
|
+
#
|
19
|
+
# @!attribute [r] lexical
|
20
|
+
# @return [Types::Coercible::String]
|
21
|
+
attribute :lexical, Types::Coercible::String
|
22
|
+
|
23
|
+
#
|
24
|
+
# The itn field
|
25
|
+
#
|
26
|
+
# @!attribute [r] itn
|
27
|
+
# @return [Types::Coercible::String]
|
28
|
+
attribute :itn, Types::Coercible::String
|
29
|
+
|
30
|
+
#
|
31
|
+
# The maskedITN field
|
32
|
+
#
|
33
|
+
# @!attribute [r] masked_itn
|
34
|
+
# @return [Types::Coercible::String]
|
35
|
+
attribute :masked_itn, Types::Coercible::String
|
36
|
+
|
37
|
+
#
|
38
|
+
# The display field. Displays the text with the format you specified in
|
39
|
+
# the paramters of the transcription.
|
40
|
+
#
|
41
|
+
# @!attribute [r] transcript
|
42
|
+
# @return [Types::Coercible::String]
|
43
|
+
attribute :transcript, Types::Coercible::String
|
44
|
+
|
45
|
+
#
|
46
|
+
# The words recognized in the sentence.
|
47
|
+
#
|
48
|
+
# @!attribute [r] words
|
49
|
+
# @return [Types::Array.of(Word)]
|
50
|
+
attribute? :words, Types::Array.of(Word).default([].freeze)
|
51
|
+
end
|
52
|
+
end
|
53
|
+
end
|
@@ -0,0 +1,185 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module AzureSTT
|
4
|
+
module Models
|
5
|
+
#
|
6
|
+
# Model for a transcription. Contains the results and static methods to
|
7
|
+
# create and retrieve the transcriptions.
|
8
|
+
#
|
9
|
+
class Transcription < Base
|
10
|
+
#
|
11
|
+
# The id of the transcription
|
12
|
+
#
|
13
|
+
# @!attribute [r] id
|
14
|
+
# @return [Types::Coercible::String]
|
15
|
+
attribute :id, Types::Coercible::String
|
16
|
+
|
17
|
+
#
|
18
|
+
# The model url of the transcription
|
19
|
+
#
|
20
|
+
# @!attribute [r] model
|
21
|
+
# @return [Types::Coercible::String]
|
22
|
+
attribute :model, Types::Coercible::String
|
23
|
+
|
24
|
+
#
|
25
|
+
# The properties of the transcription
|
26
|
+
#
|
27
|
+
# @!attribute [r] properties
|
28
|
+
# @return [Types::Hash]
|
29
|
+
attribute :properties, Types::Hash
|
30
|
+
|
31
|
+
#
|
32
|
+
# The links for the transcription (usually just a link to the files route)
|
33
|
+
#
|
34
|
+
# @!attribute [r] links
|
35
|
+
# @return [Types::Hash]
|
36
|
+
attribute :links, Types::Hash
|
37
|
+
|
38
|
+
#
|
39
|
+
# The last date the transcription has been updated
|
40
|
+
#
|
41
|
+
# @!attribute [r] last_action_date_time
|
42
|
+
# @return [Types::Date]
|
43
|
+
attribute :last_action_date_time, Types::Date
|
44
|
+
|
45
|
+
#
|
46
|
+
# The date the transcription has been created
|
47
|
+
#
|
48
|
+
# @!attribute [r] created_date_time
|
49
|
+
# @return [Types::Date]
|
50
|
+
attribute :created_date_time, Types::Date
|
51
|
+
|
52
|
+
#
|
53
|
+
# The status of the transcription
|
54
|
+
#
|
55
|
+
# @!attribute [r] status
|
56
|
+
# @return [Types::Coercible::String]
|
57
|
+
attribute :status, Types::Coercible::String
|
58
|
+
|
59
|
+
#
|
60
|
+
# The locale of the transcription. Example: 'en-US'
|
61
|
+
#
|
62
|
+
# @!attribute [r] locale
|
63
|
+
# @return [Types::Coercible::String]
|
64
|
+
attribute :locale, Types::Coercible::String
|
65
|
+
|
66
|
+
#
|
67
|
+
# The displayName of the transcription, not unique
|
68
|
+
#
|
69
|
+
# @!attribute [r] display_name
|
70
|
+
# @return [Types::Coercible::String]
|
71
|
+
attribute :display_name, Types::Coercible::String
|
72
|
+
|
73
|
+
#
|
74
|
+
# The transcription's files that can be retrieve
|
75
|
+
#
|
76
|
+
# @!attribute [r] files
|
77
|
+
# @return [Types::Array.of(File)]
|
78
|
+
attribute? :files, Types::Array.of(File).default([].freeze)
|
79
|
+
|
80
|
+
#
|
81
|
+
# The client used to interrogate the API
|
82
|
+
#
|
83
|
+
# @!attribute [r] client
|
84
|
+
# @return [AzureSTT::Client]
|
85
|
+
attribute :client, Types.Instance(AzureSTT::Client)
|
86
|
+
|
87
|
+
#
|
88
|
+
# Is the process still running ?
|
89
|
+
#
|
90
|
+
# @return [Boolean]
|
91
|
+
#
|
92
|
+
def running?
|
93
|
+
status == 'Running'
|
94
|
+
end
|
95
|
+
|
96
|
+
#
|
97
|
+
# Is the status is failed ?
|
98
|
+
#
|
99
|
+
# @return [Boolean]
|
100
|
+
#
|
101
|
+
def failed?
|
102
|
+
status == 'Failed'
|
103
|
+
end
|
104
|
+
|
105
|
+
#
|
106
|
+
# Has the process succeeded ?
|
107
|
+
#
|
108
|
+
# @return [Boolean]
|
109
|
+
#
|
110
|
+
def succeeded?
|
111
|
+
status == 'Succeeded'
|
112
|
+
end
|
113
|
+
|
114
|
+
#
|
115
|
+
# Is the process finished ? (Succeeded or failed)
|
116
|
+
#
|
117
|
+
# @return [Boolean]
|
118
|
+
#
|
119
|
+
def finished?
|
120
|
+
succeeded? || failed?
|
121
|
+
end
|
122
|
+
|
123
|
+
#
|
124
|
+
# Get the report of a transcription from transcriptions/id/files route
|
125
|
+
#
|
126
|
+
# @see https://centralus.dev.cognitive.microsoft.com/docs/services/speech-to-text-api-v3-0/operations/GetTranscriptionFiles/console
|
127
|
+
#
|
128
|
+
# @return [Models::Report]
|
129
|
+
#
|
130
|
+
def report
|
131
|
+
@report ||= retrieve_report
|
132
|
+
end
|
133
|
+
|
134
|
+
#
|
135
|
+
# Get the results of a transcription. The results are the files containing
|
136
|
+
# the speech-to-text. As a transcription process can have multiple files,
|
137
|
+
# the results are in an Array.
|
138
|
+
#
|
139
|
+
# @return [Array[Models::Result]]
|
140
|
+
#
|
141
|
+
def results
|
142
|
+
@results ||= retrieve_results
|
143
|
+
end
|
144
|
+
|
145
|
+
private
|
146
|
+
|
147
|
+
#
|
148
|
+
# All the files of a transcription
|
149
|
+
#
|
150
|
+
# @return [Array[File]] The files of the transcription
|
151
|
+
#
|
152
|
+
def files
|
153
|
+
@files ||= retrieve_files
|
154
|
+
end
|
155
|
+
|
156
|
+
#
|
157
|
+
# Interrogate the API to retrieve the files
|
158
|
+
#
|
159
|
+
# @return [Array[Files]] The files of the transcription
|
160
|
+
#
|
161
|
+
def retrieve_files
|
162
|
+
files_array = client.get_transcription_files(id)
|
163
|
+
files_array.map do |file_hash|
|
164
|
+
Models::File.new(
|
165
|
+
Parsers::File.new(file_hash).attributes.merge({ client: client })
|
166
|
+
)
|
167
|
+
end
|
168
|
+
end
|
169
|
+
|
170
|
+
def retrieve_report
|
171
|
+
report_file = files.find { |f| f.kind == 'TranscriptionReport' }
|
172
|
+
file_hash = report_file.content
|
173
|
+
Models::Report.new(Parsers::Report.new(file_hash).attributes)
|
174
|
+
end
|
175
|
+
|
176
|
+
def retrieve_results
|
177
|
+
results_files = files.select { |f| f.kind == 'Transcription' }
|
178
|
+
results_files.map do |result_file|
|
179
|
+
result_hash = result_file.content
|
180
|
+
Models::Result.new(Parsers::Result.new(result_hash).attributes)
|
181
|
+
end
|
182
|
+
end
|
183
|
+
end
|
184
|
+
end
|
185
|
+
end
|