gilcu3
Committed by GitHub

store speed in SharedPreferences (#991)

@@ -2,6 +2,7 @@ @@ -2,6 +2,7 @@
2 2
3 package com.k2fsa.sherpa.onnx.tts.engine 3 package com.k2fsa.sherpa.onnx.tts.engine
4 4
  5 +import PreferenceHelper
5 import android.media.MediaPlayer 6 import android.media.MediaPlayer
6 import android.net.Uri 7 import android.net.Uri
7 import android.os.Bundle 8 import android.os.Bundle
@@ -47,6 +48,7 @@ class MainActivity : ComponentActivity() { @@ -47,6 +48,7 @@ class MainActivity : ComponentActivity() {
47 override fun onCreate(savedInstanceState: Bundle?) { 48 override fun onCreate(savedInstanceState: Bundle?) {
48 super.onCreate(savedInstanceState) 49 super.onCreate(savedInstanceState)
49 TtsEngine.createTts(this) 50 TtsEngine.createTts(this)
  51 + val preferenceHelper = PreferenceHelper(this)
50 setContent { 52 setContent {
51 SherpaOnnxTtsEngineTheme { 53 SherpaOnnxTtsEngineTheme {
52 // A surface container using the 'background' color from the theme 54 // A surface container using the 'background' color from the theme
@@ -63,7 +65,10 @@ class MainActivity : ComponentActivity() { @@ -63,7 +65,10 @@ class MainActivity : ComponentActivity() {
63 Text("Speed " + String.format("%.1f", TtsEngine.speed)) 65 Text("Speed " + String.format("%.1f", TtsEngine.speed))
64 Slider( 66 Slider(
65 value = TtsEngine.speedState.value, 67 value = TtsEngine.speedState.value,
66 - onValueChange = { TtsEngine.speed = it }, 68 + onValueChange = {
  69 + TtsEngine.speed = it
  70 + preferenceHelper.setSpeed(it)
  71 + },
67 valueRange = 0.2F..3.0F, 72 valueRange = 0.2F..3.0F,
68 modifier = Modifier.fillMaxWidth() 73 modifier = Modifier.fillMaxWidth()
69 ) 74 )
  1 +import android.content.Context
  2 +import android.content.SharedPreferences
  3 +
  4 +class PreferenceHelper(context: Context) {
  5 +
  6 + private val PREFS_NAME = "com.k2fsa.sherpa.onnx.tts.engine"
  7 + private val SPEED_KEY = "speed"
  8 +
  9 + private val sharedPreferences: SharedPreferences =
  10 + context.getSharedPreferences(PREFS_NAME, Context.MODE_PRIVATE)
  11 +
  12 + fun setSpeed(value: Float) {
  13 + val editor = sharedPreferences.edit()
  14 + editor.putFloat(SPEED_KEY, value)
  15 + editor.apply()
  16 + }
  17 +
  18 + fun getSpeed(): Float {
  19 + return sharedPreferences.getFloat(SPEED_KEY, 1.0f)
  20 + }
  21 +}
@@ -11,6 +11,7 @@ import com.k2fsa.sherpa.onnx.getOfflineTtsConfig @@ -11,6 +11,7 @@ import com.k2fsa.sherpa.onnx.getOfflineTtsConfig
11 import java.io.File 11 import java.io.File
12 import java.io.FileOutputStream 12 import java.io.FileOutputStream
13 import java.io.IOException 13 import java.io.IOException
  14 +import PreferenceHelper
14 15
15 object TtsEngine { 16 object TtsEngine {
16 var tts: OfflineTts? = null 17 var tts: OfflineTts? = null
@@ -136,6 +137,8 @@ object TtsEngine { @@ -136,6 +137,8 @@ object TtsEngine {
136 ruleFars = ruleFars ?: "" 137 ruleFars = ruleFars ?: ""
137 ) 138 )
138 139
  140 + speed = PreferenceHelper(context).getSpeed()
  141 +
139 tts = OfflineTts(assetManager = assets, config = config) 142 tts = OfflineTts(assetManager = assets, config = config)
140 } 143 }
141 144