Remove defunct Haven processing

This commit is contained in:
2019-07-18 14:31:59 +01:00
parent 2ec370ad61
commit 45d6882527
4 changed files with 0 additions and 244 deletions

View File

@@ -101,9 +101,6 @@ public class AudiobookRecorder extends JFrame {
SourceDataLine play = null;
public HavenQueue havenQueue = new HavenQueue();
public TargetDataLine microphone = null;
public AudioInputStream microphoneStream = null;
@@ -113,7 +110,6 @@ public class AudiobookRecorder extends JFrame {
toolBar = new MainToolBar(this);
toolBar.addSeparator();
toolBar.add(Box.createHorizontalGlue());
toolBar.add(havenQueue);
ob.add(toolBar, BorderLayout.NORTH);
}
@@ -815,7 +811,6 @@ public class AudiobookRecorder extends JFrame {
JMenuObject o = (JMenuObject)e.getSource();
Sentence s = (Sentence)o.getObject();
if (!s.isLocked()) {
havenQueue.submit(s);
}
}
});
@@ -1128,7 +1123,6 @@ public class AudiobookRecorder extends JFrame {
for (Enumeration s = c.children(); s.hasMoreElements();) {
Sentence snt = (Sentence)s.nextElement();
if (snt.getId().equals(snt.getText())) {
havenQueue.submit(snt);
}
}
}

View File

@@ -1,83 +0,0 @@
package uk.co.majenko.audiobookrecorder;
import java.util.*;
import java.util.concurrent.*;
import javax.swing.*;
import java.awt.*;
import java.util.Timer;
public class HavenQueue extends JPanel {
ConcurrentLinkedQueue<Sentence> sentenceList = new ConcurrentLinkedQueue<Sentence>();
Timer timer = new Timer();
Sentence currentSentence = null;
JLabel count;
public HavenQueue() {
timer.schedule(new TimerTask() { public void run() { processQueue(); }}, 30000);
count = new JLabel("Haven queue: 0");
setLayout(new BorderLayout());
add(count, BorderLayout.CENTER);
count.setOpaque(false);
setOpaque(false);
count.setForeground(Color.WHITE);
}
public void processQueue() {
count.setText("Haven queue: " + sentenceList.size());
if (currentSentence == null) {
// Grab a new sentence to process.
currentSentence = sentenceList.poll();
if (currentSentence != null) {
if (!currentSentence.postHavenData()) { // Failed. Add to the end of the queue and wait a bit
submit(currentSentence);
currentSentence = null;
timer.schedule(new TimerTask() { public void run() { processQueue(); }}, 30000);
return;
}
timer.schedule(new TimerTask() { public void run() { processQueue(); }}, 5000);
return;
}
timer.schedule(new TimerTask() { public void run() { processQueue(); }}, 5000);
return;
}
if (currentSentence != null) {
currentSentence.processPendingHaven();
int status = currentSentence.getHavenStatus();
switch (status) {
case 0: // Um... not running...?
currentSentence = null;
timer.schedule(new TimerTask() { public void run() { processQueue(); }}, 30000);
return;
case 1: // Still processing...
timer.schedule(new TimerTask() { public void run() { processQueue(); }}, 5000);
return;
case 2: // Finished
currentSentence = null;
timer.schedule(new TimerTask() { public void run() { processQueue(); }}, 30000);
return;
case 3: // Failed
currentSentence = null;
timer.schedule(new TimerTask() { public void run() { processQueue(); }}, 30000);
return;
}
}
timer.schedule(new TimerTask() { public void run() { processQueue(); }}, 30000);
}
public void submit(Sentence s) {
s.setOverrideText("[queued...]");
AudiobookRecorder.window.bookTreeModel.reload(s);
sentenceList.add(s);
count.setText("Haven queue: " + sentenceList.size());
}
}

View File

@@ -44,8 +44,6 @@ public class Options extends JDialog {
JSpinner etherealAttenuation;
JSpinner etherealOffset;
JTextField havenApiKey;
JTextField externalEditor;
JTextArea startupScript;
@@ -325,11 +323,6 @@ public class Options extends JDialog {
addSeparator(optionsPanel);
enableParsing = addCheckBox(optionsPanel, "Enable automatic speech-to-text submission", getBoolean("process.haven.auto"));
havenApiKey = addTextField(optionsPanel, "Haven OnDemand API Key", get("process.haven.apikey"));
addSeparator(optionsPanel);
externalEditor = addTextField(optionsPanel, "External Editor Command", get("editor.external"));
addSeparator(optionsPanel);
@@ -585,9 +578,6 @@ public class Options extends JDialog {
defaultPrefs.put("audio.export.bitrate", "256000");
defaultPrefs.put("audio.export.samplerate", "44100");
defaultPrefs.put("process.sphinx", "false");
defaultPrefs.put("process.haven.apikey", "");
defaultPrefs.put("editor.external", "");
defaultPrefs.put("cache.size", "100");
@@ -709,8 +699,6 @@ public class Options extends JDialog {
set("catenation.post-section", postSectionGap.getValue());
set("audio.export.bitrate", ((KVPair)bitRate.getSelectedItem()).key);
set("audio.export.samplerate", ((KVPair)exportRate.getSelectedItem()).key);
set("process.sphinx", enableParsing.isSelected());
set("process.haven.apikey", havenApiKey.getText());
set("editor.external", externalEditor.getText());
set("cache.size", cacheSize.getValue());
set("audio.recording.trim.fft", fftThreshold.getValue());

View File

@@ -49,14 +49,6 @@ public class Sentence extends DefaultMutableTreeNode implements Cacheable {
double gain = 1.0d;
String havenJobId = "";
// 0: Not processed
// 1: Submitted
// 2: Procesisng finished
// 3: Processing failed
int havenStatus = 0;
String overrideText = null;
public void setOverrideText(String s) { overrideText = s; }
@@ -190,9 +182,6 @@ public class Sentence extends DefaultMutableTreeNode implements Cacheable {
} else if (tm.equals("fft")) {
autoTrimSampleFFT();
}
if (Options.getBoolean("process.haven.auto")) {
recognise();
}
}
}
@@ -495,7 +484,6 @@ public class Sentence extends DefaultMutableTreeNode implements Cacheable {
}
public void recognise() {
AudiobookRecorder.window.havenQueue.submit(Sentence.this);
}
public void setLocked(boolean l) {
@@ -596,137 +584,6 @@ public class Sentence extends DefaultMutableTreeNode implements Cacheable {
return attention;
}
public String getHavenJobId() {
return havenJobId;
}
public void setHavenJobId(String i) {
havenJobId = i;
}
public int getHavenStatus() {
return havenStatus;
}
public void setHavenStatus(int i) {
havenStatus = i;
}
@SuppressWarnings("deprecation")
public boolean postHavenData() {
String apiKey = Options.get("process.haven.apikey");
if (apiKey == null || apiKey.equals("")) return false;
CloseableHttpClient httpclient = HttpClients.createDefault();
setOverrideText("[submitting...]");
AudiobookRecorder.window.bookTreeModel.reload(this);
try {
HttpPost httppost = new HttpPost("https://api.havenondemand.com/1/api/async/recognizespeech/v2?apikey=" + apiKey);
FileBody bin = new FileBody(getFile());
StringBody language = new StringBody("en-GB");
HttpEntity reqEntity = MultipartEntityBuilder.create()
.addPart("language_model", language)
.addPart("file", bin)
.build();
httppost.setEntity(reqEntity);
CloseableHttpResponse response = httpclient.execute(httppost);
try {
if (response.getStatusLine().getStatusCode() != 200) {
System.err.println("Error posting data: " + response.getStatusLine().getStatusCode());
return false;
}
HttpEntity resEntity = response.getEntity();
if (resEntity != null) {
JSONObject obj = new JSONObject(EntityUtils.toString(resEntity));
havenJobId = obj.getString("jobID");
System.err.println("Submitted new Haven OnDemand job #" + havenJobId);
havenStatus = 1;
}
EntityUtils.consume(resEntity);
} catch (Exception ex) {
ex.printStackTrace();
return false;
}
} catch (Exception ex) {
ex.printStackTrace();
return false;
}
return true;
// eddec91c-6018-4dcd-bd8d-5e96b23e334c --form "language_model=en-US" --form "file=@3e67460c-f298-4e2c-a412-d375d489e1b3.wav"
}
public void processPendingHaven() {
if (havenStatus != 1) return;
String apiKey = Options.get("process.haven.apikey");
if (apiKey == null || apiKey.equals("")) return;
CloseableHttpClient httpclient = HttpClients.createDefault();
try {
HttpPost httppost = new HttpPost("https://api.havenondemand.com/1/job/status/" + havenJobId + "?apikey=" + apiKey);
HttpEntity reqEntity = MultipartEntityBuilder.create().build();
httppost.setEntity(reqEntity);
CloseableHttpResponse response = httpclient.execute(httppost);
try {
if (response.getStatusLine().getStatusCode() != 200) {
havenStatus = 3;
return;
}
HttpEntity resEntity = response.getEntity();
if (resEntity != null) {
JSONObject obj = new JSONObject(EntityUtils.toString(resEntity));
System.err.println(havenJobId + ": " + obj.getString("status"));
if (obj.getString("status").equals("finished")) {
havenStatus = 2;
JSONArray textItems = obj.getJSONArray("actions").getJSONObject(0).getJSONObject("result").getJSONArray("items");
StringBuilder out = new StringBuilder();
for (int i = 0; i < textItems.length(); i++) {
out.append(textItems.getJSONObject(i).getString("text"));
out.append(" ");
}
String result = out.toString();
setText(result.trim());
AudiobookRecorder.window.bookTreeModel.reload(Sentence.this);
System.err.println(result);
} else if (obj.getString("status").equals("queued")) {
havenStatus = 1;
setOverrideText("[processing...]");
AudiobookRecorder.window.bookTreeModel.reload(Sentence.this);
} else {
text = id;
AudiobookRecorder.window.bookTreeModel.reload(Sentence.this);
havenStatus = 3;
return;
}
}
EntityUtils.consume(resEntity);
} catch (Exception ex) {
ex.printStackTrace();
}
} catch (Exception ex) {
ex.printStackTrace();
}
}
public double getPeakValue() {
double oldGain = gain;
gain = 1.0d;