From 625b4f0c3fe3a4a1110d766a948798e83364fe43 Mon Sep 17 00:00:00 2001 From: Luca Warmenhoven Date: Fri, 19 Apr 2024 14:03:45 +0200 Subject: [PATCH 01/19] Changes --- .idea/workspace.xml | 87 ++++++++++--------- src/app/res/activity_main.xml | 0 src/app/src/main/AndroidManifest.xml | 3 +- src/app/src/main/com/fitbot/MainActivity.java | 18 ++++ .../main/com/fitbot/audio/AudioRecorder.java | 57 ++++++++++++ 5 files changed, 123 insertions(+), 42 deletions(-) create mode 100644 src/app/res/activity_main.xml create mode 100644 src/app/src/main/com/fitbot/MainActivity.java create mode 100644 src/app/src/main/com/fitbot/audio/AudioRecorder.java diff --git a/.idea/workspace.xml b/.idea/workspace.xml index 400abd6..4281d65 100644 --- a/.idea/workspace.xml +++ b/.idea/workspace.xml @@ -1,7 +1,12 @@ + + + + + - @@ -9,7 +14,13 @@ - + + + + + + + \ No newline at end of file diff --git a/src/app/res/activity_main.xml b/src/app/res/activity_main.xml new file mode 100644 index 0000000..e69de29 diff --git a/src/app/src/main/AndroidManifest.xml b/src/app/src/main/AndroidManifest.xml index 0a552c4..43663a1 100644 --- a/src/app/src/main/AndroidManifest.xml +++ b/src/app/src/main/AndroidManifest.xml @@ -5,9 +5,10 @@ + \ No newline at end of file diff --git a/src/app/src/main/com/fitbot/MainActivity.java b/src/app/src/main/com/fitbot/MainActivity.java new file mode 100644 index 0000000..204e1d2 --- /dev/null +++ b/src/app/src/main/com/fitbot/MainActivity.java @@ -0,0 +1,18 @@ +package com.fitbot; + +import android.app.Activity; +import android.media.MediaRecorder; +import android.os.Bundle; + +public class MainActivity extends Activity { + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + + /* Since this is our main activity, we can start our audio recording service here */ + + + + } +} diff --git a/src/app/src/main/com/fitbot/audio/AudioRecorder.java b/src/app/src/main/com/fitbot/audio/AudioRecorder.java new file mode 100644 index 0000000..407870e --- /dev/null +++ b/src/app/src/main/com/fitbot/audio/AudioRecorder.java @@ -0,0 +1,57 @@ +package com.fitbot.audio; + +import android.app.Activity; +import android.media.MediaRecorder; + +import java.io.FileInputStream; +import java.util.concurrent.CompletableFuture; +import java.util.concurrent.Future; + +public class AudioRecorder extends Activity { + + private MediaRecorder recorder; + + + public AudioRecorder() { + } + + /** + * Record audio from the device's microphone + * @return An instance of the AudioRecorder class + */ + public AudioRecorder record() { + + recorder = new MediaRecorder(); + + File file = new File() + + FileInputStream stream = new FileInputStream(); + recorder.setAudioSource(MediaRecorder.AudioSource.MIC); + recorder.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP); + recorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB); + recorder.setOutputFile(stream.getFD()); + + // Attempt to prepare and start the audio recorder + try { + recorder.prepare(); + recorder.start(); + } catch (Exception e) { + System.err.println("Error preparing audio recorder"); + e.printStackTrace(); + } + + recorder.set + + return this; + } + + /** + * Stop the audio recording + */ + public void stop() { + recorder.stop(); + recorder.release(); + recorder = null; + } + +} From 11517ca2f0ec2d6b987b0ca8def6385b92cae7af Mon Sep 17 00:00:00 2001 From: Luca Warmenhoven Date: Fri, 19 Apr 2024 14:24:51 +0200 Subject: [PATCH 02/19] Added audio recorder files and speech callbacks --- .idea/workspace.xml | 33 +++++-- .../main/com/fitbot/audio/AudioAnalyser.java | 10 +++ .../main/com/fitbot/audio/AudioRecorder.java | 14 +-- .../com/fitbot/speech/ISpeechCallback.java | 8 ++ .../com/fitbot/speech/SpeechGenerator.java | 89 +++++++++++++++++++ 5 files changed, 137 insertions(+), 17 deletions(-) create mode 100644 src/app/src/main/com/fitbot/audio/AudioAnalyser.java create mode 100644 src/app/src/main/com/fitbot/speech/ISpeechCallback.java create mode 100644 src/app/src/main/com/fitbot/speech/SpeechGenerator.java diff --git a/.idea/workspace.xml b/.idea/workspace.xml index 4281d65..2a06124 100644 --- a/.idea/workspace.xml +++ b/.idea/workspace.xml @@ -15,11 +15,10 @@ - - - + + - + + + + + + + + + + + @@ -56,7 +67,7 @@ - + @@ -69,6 +80,14 @@ + + 1713528225837 + + @@ -86,4 +105,8 @@ + + + \ No newline at end of file diff --git a/src/app/src/main/com/fitbot/audio/AudioAnalyser.java b/src/app/src/main/com/fitbot/audio/AudioAnalyser.java new file mode 100644 index 0000000..3d64c3f --- /dev/null +++ b/src/app/src/main/com/fitbot/audio/AudioAnalyser.java @@ -0,0 +1,10 @@ +package com.fitbot.audio; + +import android.app.Activity; +import android.media.MediaRecorder; + +public class AudioAnalyser extends Activity { + + + +} diff --git a/src/app/src/main/com/fitbot/audio/AudioRecorder.java b/src/app/src/main/com/fitbot/audio/AudioRecorder.java index 407870e..e2f84c3 100644 --- a/src/app/src/main/com/fitbot/audio/AudioRecorder.java +++ b/src/app/src/main/com/fitbot/audio/AudioRecorder.java @@ -1,13 +1,8 @@ package com.fitbot.audio; -import android.app.Activity; import android.media.MediaRecorder; -import java.io.FileInputStream; -import java.util.concurrent.CompletableFuture; -import java.util.concurrent.Future; - -public class AudioRecorder extends Activity { +public class AudioRecorder { private MediaRecorder recorder; @@ -23,13 +18,9 @@ public class AudioRecorder extends Activity { recorder = new MediaRecorder(); - File file = new File() - - FileInputStream stream = new FileInputStream(); recorder.setAudioSource(MediaRecorder.AudioSource.MIC); recorder.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP); recorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB); - recorder.setOutputFile(stream.getFD()); // Attempt to prepare and start the audio recorder try { @@ -40,8 +31,6 @@ public class AudioRecorder extends Activity { e.printStackTrace(); } - recorder.set - return this; } @@ -54,4 +43,5 @@ public class AudioRecorder extends Activity { recorder = null; } + } diff --git a/src/app/src/main/com/fitbot/speech/ISpeechCallback.java b/src/app/src/main/com/fitbot/speech/ISpeechCallback.java new file mode 100644 index 0000000..48ccdf9 --- /dev/null +++ b/src/app/src/main/com/fitbot/speech/ISpeechCallback.java @@ -0,0 +1,8 @@ +package com.fitbot.speech; + +/** + * Interface for a callback that is called when speech is generated + */ +public interface ISpeechCallback { + void onSpeechGenerated(String speech); +} diff --git a/src/app/src/main/com/fitbot/speech/SpeechGenerator.java b/src/app/src/main/com/fitbot/speech/SpeechGenerator.java new file mode 100644 index 0000000..5990244 --- /dev/null +++ b/src/app/src/main/com/fitbot/speech/SpeechGenerator.java @@ -0,0 +1,89 @@ +package com.fitbot.speech; + +import java.util.Arrays; +import java.util.Locale; + +public class SpeechGenerator { + + private ISpeechCallback speechCallback = (content) -> {}; // Default empty callback + private StringBuilder speechBuffer = new StringBuilder(); // Buffer to store the speech content + private String languageIso639_1; // ISO 639-1 language code + + /** + * Constructor that sets the language of the speech to be generated + * @param languageIso639_1 The ISO 639-1 language code, e.g. "en" for English + */ + public SpeechGenerator(String languageIso639_1) + { + if ( !Arrays.asList(Locale.getISOLanguages()).contains(languageIso639_1) ) + throw new IllegalArgumentException("Invalid language code"); + this.languageIso639_1 = languageIso639_1; + } + + /** + * Default constructor, sets the language to English + */ + public SpeechGenerator() + { + this("en"); + } + + + /** + * Set the language of the speech to be generated + * @param languageIso639_1 The ISO 639-1 language code, e.g. "en" for English + * @return An instance of the SpeechGenerator class + */ + public SpeechGenerator language(String languageIso639_1) + { + this.languageIso639_1 = languageIso639_1; + return this; + } + + /** + * Appends the provided text to the speech buffer + * @param text The text to append + * @return An instance of the SpeechGenerator class + */ + public SpeechGenerator print(String text) + { + speechBuffer.append(text); + return this; + } + + /** + * Appends the provided text to the speech buffer, followed by a newline character + * @param text The text to append + * @return An instance of the SpeechGenerator class + */ + public SpeechGenerator println(String text) + { + return print(text).print("\n"); + } + + /** + * Get the contents of the speech buffer + */ + public String getBuffer() + { + return speechBuffer.toString(); + } + + /** + * Clear the contents of the speech buffer + */ + public void clearBuffer() + { + speechBuffer = new StringBuilder(); + } + + /** + * Print the contents of the speech buffer to the console + */ + public void speak() + { + speechCallback.onSpeechGenerated(speechBuffer.toString()); + } + + +} From 31b19292090cb1e88579a7cb22495d773734b36e Mon Sep 17 00:00:00 2001 From: SebasKoedam Date: Fri, 19 Apr 2024 14:36:49 +0200 Subject: [PATCH 03/19] Add Git mapping for project directory --- code/src/.idea/encodings.xml | 4 ++++ code/src/.idea/runConfigurations.xml | 12 ++++++++++++ code/src/.idea/vcs.xml | 1 + 3 files changed, 17 insertions(+) create mode 100644 code/src/.idea/encodings.xml create mode 100644 code/src/.idea/runConfigurations.xml diff --git a/code/src/.idea/encodings.xml b/code/src/.idea/encodings.xml new file mode 100644 index 0000000..15a15b2 --- /dev/null +++ b/code/src/.idea/encodings.xml @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/code/src/.idea/runConfigurations.xml b/code/src/.idea/runConfigurations.xml new file mode 100644 index 0000000..7f68460 --- /dev/null +++ b/code/src/.idea/runConfigurations.xml @@ -0,0 +1,12 @@ + + + + + + \ No newline at end of file diff --git a/code/src/.idea/vcs.xml b/code/src/.idea/vcs.xml index 6c0b863..64713b8 100644 --- a/code/src/.idea/vcs.xml +++ b/code/src/.idea/vcs.xml @@ -1,6 +1,7 @@ + \ No newline at end of file From ead909c457c6b735d307e0f09092e736badc2202 Mon Sep 17 00:00:00 2001 From: Luca Warmenhoven Date: Fri, 19 Apr 2024 14:47:27 +0200 Subject: [PATCH 04/19] Moved files to appropriate directory. --- .idea/workspace.xml | 38 +++++++++++++++---- .../main/java}/com/fitbot/MainActivity.java | 0 .../java}/com/fitbot/audio/AudioAnalyser.java | 2 +- .../java}/com/fitbot/audio/AudioRecorder.java | 0 .../java/com/fitbot/fitbot/MainActivity.java | 13 ------- .../java/com/fitbot/fitbot/TextSetter.java | 18 --------- .../com/fitbot/speech/ISpeechCallback.java | 0 .../com/fitbot/speech/SpeechGenerator.java | 0 8 files changed, 32 insertions(+), 39 deletions(-) rename {src/app/src/main => code/src/app/src/main/java}/com/fitbot/MainActivity.java (100%) rename {src/app/src/main => code/src/app/src/main/java}/com/fitbot/audio/AudioAnalyser.java (68%) rename {src/app/src/main => code/src/app/src/main/java}/com/fitbot/audio/AudioRecorder.java (100%) delete mode 100644 code/src/app/src/main/java/com/fitbot/fitbot/MainActivity.java delete mode 100644 code/src/app/src/main/java/com/fitbot/fitbot/TextSetter.java rename {src/app/src/main => code/src/app/src/main/java}/com/fitbot/speech/ISpeechCallback.java (100%) rename {src/app/src/main => code/src/app/src/main/java}/com/fitbot/speech/SpeechGenerator.java (100%) diff --git a/.idea/workspace.xml b/.idea/workspace.xml index 2a06124..5eb459e 100644 --- a/.idea/workspace.xml +++ b/.idea/workspace.xml @@ -14,11 +14,15 @@ - - - + - + + + + + + +