Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
17 changes: 16 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
@@ -1,4 +1,3 @@
.gradle
.idea
/local.properties
/build
Expand All @@ -8,3 +7,19 @@
*.md5
*.lst
*.iml

### Gradle ###
.gradle
/build/

# Ignore Gradle GUI config
gradle-app.setting

# Avoid ignoring Gradle wrapper jar file (.jar files are usually ignored)
!gradle-wrapper.jar

# Cache of project
.gradletasknamecache

# # Work around https://youtrack.jetbrains.com/issue/IDEA-116898
# gradle/wrapper/gradle-wrapper.properties
27 changes: 15 additions & 12 deletions app/build.gradle
Original file line number Diff line number Diff line change
@@ -1,18 +1,11 @@
apply plugin: 'com.android.application'

repositories {
google()
maven {
url 'https://alphacephei.com/maven/'
}
}

android {
compileSdkVersion 29
compileSdkVersion 30
defaultConfig {
applicationId "org.vosk.demo"
minSdkVersion 21
targetSdkVersion 29
minSdkVersion 24
targetSdkVersion 30
versionCode 1
versionName "1.1"
ndk {
Expand All @@ -32,8 +25,18 @@ android {
}

dependencies {
implementation project(':voskapi2')

implementation 'org.slf4j:slf4j-api:1.7.7@jar'
implementation 'eu.lp0.slf4j:slf4j-android:1.7.7-1@jar'

implementation 'androidx.appcompat:appcompat:1.2.0'
implementation 'net.java.dev.jna:jna:5.8.0@aar'
implementation group: 'com.alphacephei', name: 'vosk-android', version: '0.3.23'
implementation project(':models')
implementation 'com.alphacephei:vosk-android:0.3.23'
// implementation 'com.github.k3b:vosk-api:0.3.27.5'
// implementation 'com.github.k3b:vosk-api:master-SNAPSHOT'
implementation 'androidx.preference:preference:1.1.1'
implementation 'com.google.android.material:material:1.2.1'
implementation 'org.jetbrains:annotations:15.0'
implementation 'com.google.code.gson:gson:2.8.6'
}
25 changes: 22 additions & 3 deletions app/src/main/AndroidManifest.xml
Original file line number Diff line number Diff line change
@@ -1,22 +1,41 @@
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
package="org.vosk.demo">

<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission
android:name="android.permission.MANAGE_EXTERNAL_STORAGE"
tools:ignore="ScopedStorage" />
<uses-permission android:name="android.permission.RECORD_AUDIO" />

<application
android:allowBackup="false"
android:icon="@drawable/icon"
android:label="@string/app_name" >
android:label="@string/app_name"
android:requestLegacyExternalStorage="true">
<activity
android:name="VoskActivity"
android:label="@string/app_name" >
android:name=".SettingsActivity"
android:theme="@style/Theme.AppCompat"
android:label="@string/title_activity_settings"
android:parentActivityName=".VoskActivity">
<meta-data
android:name="android.support.PARENT_ACTIVITY"
android:value="org.vosk.demo.VoskActivity" />
</activity>
<activity
android:name=".VoskActivity"
android:label="@string/app_name">
<intent-filter>
<action android:name="android.intent.action.MAIN" />

<category android:name="android.intent.category.LAUNCHER" />
<!-- Makes this app visible on the application list in the Glass Launcher. -->
<category android:name="com.google.android.glass.category.DIRECTORY" />
</intent-filter>
</activity>
</application>

</manifest>
55 changes: 55 additions & 0 deletions app/src/main/java/org/vosk/demo/SettingsActivity.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,55 @@
package org.vosk.demo;

import android.os.Bundle;

import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.appcompat.app.ActionBar;
import androidx.appcompat.app.AppCompatActivity;
import androidx.preference.ListPreference;
import androidx.preference.PreferenceFragmentCompat;

import org.vosk.api.LanguageModelDefinition;
import org.vosk.api.VoskHelperAndroid;

import java.io.File;
import java.util.Collection;

public class SettingsActivity extends AppCompatActivity {
public static final String KEY_LANG_PREF_SWITCH = "example_switch";

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.settings_activity);
if (savedInstanceState == null) {
getSupportFragmentManager()
.beginTransaction()
.replace(R.id.settings, new SettingsFragment())
.commit();
}
ActionBar actionBar = getSupportActionBar();
if (actionBar != null) {
actionBar.setDisplayHomeAsUpEnabled(true);
}
}

public static class SettingsFragment extends PreferenceFragmentCompat implements org.vosk.demo.SettingsFragment {
@Override
public void onCreatePreferences(Bundle savedInstanceState, String rootKey) {
setPreferencesFromResource(R.xml.root_preferences, rootKey);

ListPreference localePreference = findPreference("lang");
Collection<LanguageModelDefinition> languages = VoskHelperAndroid.getLanguages(getContext()).values();
localePreference.setEntries(languages.stream().map(l -> getLocaleName(l)).toArray(CharSequence[]::new));
localePreference.setEntryValues(languages.stream().map(l -> l.getId()).toArray(CharSequence[]::new));
}

private String getLocaleName(LanguageModelDefinition l) {
File file = new File(VoskHelperAndroid.MODEL_FILE_ROOT_PATH, l.getId());
String prefix = VoskHelperAndroid.isModel(file) ? "[v] " : "[_] ";
return prefix + l.getLocaleName();
}
}

}
4 changes: 4 additions & 0 deletions app/src/main/java/org/vosk/demo/SettingsFragment.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
package org.vosk.demo;

public interface SettingsFragment {
}
Loading