Changeset 35241
- Timestamp:
- 2021-08-03T15:30:08+12:00 (3 years ago)
- Location:
- gs3-extensions/atea-nlp-tools/trunk/src/koreromaori-proxy/src/main/java/org/atea/nlptools/koreromaoriinterface
- Files:
-
- 1 added
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
gs3-extensions/atea-nlp-tools/trunk/src/koreromaori-proxy/src/main/java/org/atea/nlptools/koreromaoriinterface/TranscriptionServlet.java
r35240 r35241 3 3 import java.io.FileInputStream; 4 4 import java.io.IOException; 5 import java.io.InputStream;6 5 import java.io.PrintWriter; 7 6 import java.lang.reflect.Type; … … 15 14 import javax.servlet.http.HttpServletRequest; 16 15 import javax.servlet.http.HttpServletResponse; 16 import javax.servlet.http.Part; 17 17 18 18 import com.google.gson.FieldNamingPolicy; … … 23 23 import org.apache.logging.log4j.LogManager; 24 24 import org.apache.logging.log4j.Logger; 25 import org.atea.nlptools.koreromaoriinterface.models.AudioFilePart; 25 26 import org.atea.nlptools.koreromaoriinterface.models.MyTranscriptionResponse; 26 27 import org.atea.nlptools.koreromaoriinterface.models.TranscriptionResult; … … 86 87 String[] audioFileKeys = audioFileKeysParameter.split("\\|"); 87 88 88 ArrayList< InputStream> audioFileStreams = new ArrayList<InputStream>(audioFileKeys.length);89 ArrayList<AudioFilePart> audioFileParts = new ArrayList<AudioFilePart>(audioFileKeys.length); 89 90 for (String audioFileKey : audioFileKeys) 90 91 { 91 audioFileStreams.add(request.getPart(audioFileKey).getInputStream()); 92 Part p = request.getPart(audioFileKey); 93 AudioFilePart audioFilePart = AudioFilePart.fromPart(p); 94 audioFileParts.add(audioFilePart); 92 95 } 93 96 94 97 try 95 98 { 96 List< TranscriptionResult> results = transcriptionService.GetTranscriptions(audioFileStreams);99 List<AudioFilePart> results = transcriptionService.GetTranscriptions(audioFileParts); 97 100 List<MyTranscriptionResponse> responses = new ArrayList<MyTranscriptionResponse>(results.size()); 98 101 99 for ( TranscriptionResult result : results) {100 responses.add(MyTranscriptionResponse.FromTranscriptionResult(result , "placeholder")); // TODO: Insert correct file name102 for (AudioFilePart result : results) { 103 responses.add(MyTranscriptionResponse.FromTranscriptionResult(result.getTranscriptionResult(), result.fileName)); 101 104 } 102 105 -
gs3-extensions/atea-nlp-tools/trunk/src/koreromaori-proxy/src/main/java/org/atea/nlptools/koreromaoriinterface/services/ReoTuhituhiApiService.java
r35240 r35241 14 14 import org.apache.logging.log4j.LogManager; 15 15 import org.apache.logging.log4j.Logger; 16 import org.atea.nlptools.koreromaoriinterface.models.AudioFilePart; 16 17 import org.atea.nlptools.koreromaoriinterface.models.TranscriptionResult; 17 18 … … 40 41 * Queries the Reo Tuhituhi API to transcribe the given audio files. 41 42 * 42 * @param audioFile Streams The audio files to retrieve a transcription for.43 * @param audioFileParts The audio files to retrieve a transcription for. 43 44 * @return A list of {@link TranscriptionResult} objects. 44 45 * @throws Exception 45 46 */ 46 public List< TranscriptionResult> GetTranscriptions(Iterable<InputStream> audioFileStreams)47 public List<AudioFilePart> GetTranscriptions(Iterable<AudioFilePart> audioFileParts) 47 48 throws Exception 48 49 { 49 Queue<Future< TranscriptionResult>> apiCalls = new LinkedList<Future<TranscriptionResult>>();50 Queue<Future<AudioFilePart>> apiCalls = new LinkedList<Future<AudioFilePart>>(); 50 51 51 52 // Queue each transcription request up asynchronously 52 for ( InputStream audioStream : audioFileStreams)53 for (AudioFilePart part : audioFileParts) 53 54 { 54 55 //Callable<TranscriptionResult> transcriptionTask = getTranscriptionCallable(audioStream); … … 57 58 } 58 59 59 List< TranscriptionResult> apiResults = new ArrayList<TranscriptionResult>(apiCalls.size());60 List<AudioFilePart> apiResults = new ArrayList<AudioFilePart>(apiCalls.size()); 60 61 61 for ( InputStream audioStream : audioFileStreams)62 for (AudioFilePart part : audioFileParts) 62 63 { 63 apiResults.add(getTranscription(audioStream)); 64 logger.debug("API call has completed."); 64 TranscriptionResult res = getTranscription(part.dataStream); 65 part.setTranscriptionResult(res); 66 apiResults.add(part); 65 67 } 66 68 … … 76 78 } 77 79 78 private Callable< TranscriptionResult> getTranscriptionCallable(final InputStream audioStream)80 private Callable<AudioFilePart> getTranscriptionCallable(final AudioFilePart part) 79 81 { 80 return new Callable< TranscriptionResult>()82 return new Callable<AudioFilePart>() 81 83 { 82 84 @Override 83 public TranscriptionResult call() throws Exception85 public AudioFilePart call() throws Exception 84 86 { 85 return getTranscription(audioStream); 87 TranscriptionResult res = getTranscription(part.dataStream); 88 part.setTranscriptionResult(res); 89 return part; 86 90 } 87 91 }; … … 97 101 .body(); 98 102 99 logger. debug("Reo Tuhituhi API responded with a success status.");103 logger.trace("Reo Tuhituhi API responded with a success status."); 100 104 TranscriptionResult res = jsonSerialiser.fromJson(jsonResponse, TranscriptionResult.class); 101 logger. debug("Reo Tuhituhi API response was succesfully deserialised.");105 logger.trace("Reo Tuhituhi API response was succesfully deserialised."); 102 106 return res; 103 107 }
Note:
See TracChangeset
for help on using the changeset viewer.