From 90aac9c765ecf8782f30179173e8f4c904c7f98b Mon Sep 17 00:00:00 2001 From: Nikolaus Gotsche Date: Sat, 5 Dec 2015 16:16:47 +0100 Subject: Speech Pitch and Rate Randomized and Set --- .../nik/spiritlevel/AppPreferences.java | 64 +++++++++++++++++++--- .../nik/spiritlevel/LevelActivity.java | 45 ++++++++++++--- app/src/main/res/values/strings.xml | 8 +++ app/src/main/res/xml/preference.xml | 4 +- app/src/main/res/xml/settings.xml | 31 +++++++++-- 5 files changed, 130 insertions(+), 22 deletions(-) diff --git a/app/src/main/java/com/softwarefools/nik/spiritlevel/AppPreferences.java b/app/src/main/java/com/softwarefools/nik/spiritlevel/AppPreferences.java index 859239e..ed1e163 100644 --- a/app/src/main/java/com/softwarefools/nik/spiritlevel/AppPreferences.java +++ b/app/src/main/java/com/softwarefools/nik/spiritlevel/AppPreferences.java @@ -5,10 +5,18 @@ import com.example.spiritlevel.R; * Created by nick on 01.12.15. */ //import android.app.Fragment; +import android.content.SharedPreferences; +import android.content.SharedPreferences.OnSharedPreferenceChangeListener; +import android.os.Bundle; +import android.preference.PreferenceActivity; +import android.preference.PreferenceFragment; +import android.preference.PreferenceManager; +//import fr.at.testsliderpref.utils.SeekBarPreference; import android.os.Bundle; import android.preference.PreferenceActivity; import android.preference.PreferenceFragment; import android.preference.PreferenceScreen; +import android.widget.SeekBar; //import android.support.v7.preference.*; //import android.support.v4.app.*; @@ -16,7 +24,8 @@ import android.preference.PreferenceScreen; public class AppPreferences extends PreferenceActivity { //public static final String PREFS_NAME = "MyPrefsFile"; - + // private SeekBar seekbar_pitch; + // private SeekBar seekbar_rate; @Override protected void onCreate(Bundle savedInstanceState) { @@ -25,17 +34,58 @@ public class AppPreferences extends PreferenceActivity { //getSupportFragmentManager().beginTransaction().replace(android.R.id.content, new MyPreferenceFragment()).commit(); //Initialize the "up" button - // getActionBar().setDisplayHomeAsUpEnabled(true); + // seekbar_pitch().setDisplayHomeAsUpEnabled(true); + /* seekbar_pitch = (SeekBar)findViewById(R.id.PRICEseekBarID); // make seekbar object + seekbar_pitch.setOnSeekBarChangeListener(super.onCreate(savedInstanceState)); + seekbar_pitch.setOnSeekBarChangeListener(new OnSeekBarChangeListener() { + + @Override + public void onStopTrackingTouch(SeekBar seekBar) { + // TODO Auto-generated method stub + } + + @Override + public void onStartTrackingTouch(SeekBar seekBar) { + // TODO Auto-generated method stub + } + + @Override + public void onProgressChanged(SeekBar seekBar, int progress, + boolean fromUser) { + // TODO Auto-generated method stub + PRICEtextProgress = (TextView)findViewById(R.id.PRICEtextViewProgressID); + PRICEtextProgress.setText("Price:: Rs "+progress); + seekBar.setMax(100); + } + });*/ } - public static class MyPreferenceFragment extends PreferenceFragment - { + // public static class MyPreferenceFragment extends PreferenceFragment implements OnSharedPreferenceChangeListener + public static class MyPreferenceFragment extends PreferenceFragment { + // private SeekBarPreference _seekBarPref; @Override - public void onCreate(final Bundle savedInstanceState) - { + public void onCreate(final Bundle savedInstanceState) { super.onCreate(savedInstanceState); addPreferencesFromResource(R.xml.settings); - } + + //sEEKBAR + // _seekBarPref = (SeekBarPreference) this.findPreference("SEEKBAR_VALUE"); + //getPreferenceScreen().getSharedPreferences().registerOnSharedPreferenceChangeListener(this); + + // Set seekbar summary : + // int radius = PreferenceManager.getDefaultSharedPreferences(this.getActivity()).getInt("SEEKBAR_VALUE", 50); + // _seekBarPref.setSummary(this.getString(R.string.settings_summary).replace("$1", "" + radius)); + + }/* + @Override + public void onSharedPreferenceChanged(SharedPreferences sharedPreferences, String key) { + + // Set seekbar summary : + int radius = PreferenceManager.getDefaultSharedPreferences(this.getActivity()).getInt("SEEKBAR_VALUE", 50); + _seekBarPref.setSummary(this.getString(R.string.settings_summary).replace("$1", ""+radius)); + }*/ } } + + diff --git a/app/src/main/java/com/softwarefools/nik/spiritlevel/LevelActivity.java b/app/src/main/java/com/softwarefools/nik/spiritlevel/LevelActivity.java index 3f3c890..3b4dd8f 100644 --- a/app/src/main/java/com/softwarefools/nik/spiritlevel/LevelActivity.java +++ b/app/src/main/java/com/softwarefools/nik/spiritlevel/LevelActivity.java @@ -97,6 +97,7 @@ public class LevelActivity extends Activity implements MySensorListener{ setContentView(levelView); + System.out.println("LevelActivity.onCreate()"); mySettings = PreferenceManager.getDefaultSharedPreferences(this); SharedPreferences.Editor editor = mySettings.edit(); @@ -118,6 +119,7 @@ public class LevelActivity extends Activity implements MySensorListener{ public void onInit(int status) { if (status == TextToSpeech.SUCCESS){ myTTS.setLanguage(getResources().getConfiguration().locale); + funkSpeech(myTTS,false); }else if (status == TextToSpeech.ERROR) { Toast.makeText(getBaseContext(), getApplicationContext().getString(R.string.action_lang_NA), Toast.LENGTH_LONG).show(); } @@ -182,7 +184,7 @@ public class LevelActivity extends Activity implements MySensorListener{ @Override public void onResume() { super.onResume(); - + System.out.println("LevelActivity.onResume()"); myTTS.shutdown(); myTTS = new TextToSpeech(this, new TextToSpeech.OnInitListener() { @Override @@ -207,6 +209,9 @@ public class LevelActivity extends Activity implements MySensorListener{ myTTS.setLanguage(getResources().getConfiguration().locale); + + funkSpeech(myTTS,false); + }else if (status == TextToSpeech.ERROR) { SharedPreferences.Editor editor = mySettings.edit(); editor.putBoolean("applicationTalking", false); @@ -231,6 +236,7 @@ public class LevelActivity extends Activity implements MySensorListener{ @Override public void onStop() { super.onStop(); + System.out.println("LevelActivity.onStop()"); // myTTS.stop(); //Check device supported Accelerometer senssor or not if (MySensorManager.isListening()) { @@ -246,7 +252,7 @@ public class LevelActivity extends Activity implements MySensorListener{ @Override public void onDestroy() { super.onDestroy(); - Log.i("Sensor", "Service distroy"); + System.out.println("LevelActivity.onDestroy()"); //myTTS.shutdown(); //Check device supported Accelerometer senssor or not if (MySensorManager.isListening()) { @@ -283,8 +289,10 @@ public class LevelActivity extends Activity implements MySensorListener{ } if (Build.VERSION.SDK_INT < 11) { startActivity(new Intent(this,AppPreferencesClassic.class)); + System.out.println("Starting Oldschool Settings"); } else { startActivity(new Intent(this, AppPreferences.class)); + System.out.println("Starting Settings"); } return true; case R.id.action_record: @@ -293,12 +301,14 @@ public class LevelActivity extends Activity implements MySensorListener{ SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this); //Toast.makeText(getBaseContext(), "Setting on Recording:"+prefs.getBoolean("applicationRecording",true), Toast.LENGTH_SHORT).show(); if (!prefs.getBoolean("applicationRecording",true)) { + System.out.println("Start Recording"); //Boolean a= prefs.getBoolean("applicationRecording",false); beLoud(this.getString(R.string.action_record_text)); SharedPreferences.Editor editor = prefs.edit(); editor.putBoolean("applicationRecording",true); editor.commit(); } else { + System.out.println("Stop Recording"); beLoud(this.getString(R.string.action_record_text_off)); SharedPreferences.Editor editor = prefs.edit(); editor.putBoolean("applicationRecording",false); @@ -326,7 +336,7 @@ public class LevelActivity extends Activity implements MySensorListener{ case R.id.action_changelang: //t1.speak(this.getString(R.string.change_text), TextToSpeech.QUEUE_FLUSH, null); - + System.out.println("Change Language"); String[] sf=getResources().getStringArray(R.array.langValues); String comp=getResources().getConfiguration().locale.getLanguage(); String neus; @@ -334,8 +344,9 @@ public class LevelActivity extends Activity implements MySensorListener{ int neur = r.nextInt(sf.length); neus = sf[neur]; }while(comp.contains(neus)); - + funkSpeech(myTTS,true); setLocale(neus); + //beLoud(this.getString(R.string.change_text)); return true; @@ -460,7 +471,7 @@ public class LevelActivity extends Activity implements MySensorListener{ return orientation; } public void setLocale(String lang) { - + System.out.println("Changing Language to "+lang); SharedPreferences.Editor editor = mySettings.edit(); editor.putString("applicationLanguage", lang); editor.commit(); @@ -493,6 +504,23 @@ public class LevelActivity extends Activity implements MySensorListener{ finish(); } + public void funkSpeech(TextToSpeech sp, boolean randomize) { + double pitch; + double rate; + if(randomize) { + int neup = r.nextInt(20); + int neur = r.nextInt(20); + pitch = (float) neup / 10.0; + rate = (float) neur / 10.0; + }else { + SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this); + pitch = (double) prefs.getInt("applicationPitch", 10) / 10; + rate = (double) prefs.getInt("applicationRate", 10) / 10; + } + sp.setPitch((float)pitch); + sp.setSpeechRate((float)rate); + System.out.println("Pitch: "+pitch+" Rate: "+rate); + } public void beLoud(String whatsay,String whatwrite){ SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this); /*t1.shutdown(); @@ -501,11 +529,11 @@ public class LevelActivity extends Activity implements MySensorListener{ if(prefs.getBoolean("applicationTalking",true))t1.speak(whatsay, TextToSpeech.QUEUE_FLUSH, null); }*/ - + System.out.println("Systemoutput"); if(prefs.getBoolean("applicationTalking",true))myTTS.speak(whatsay, TextToSpeech.QUEUE_FLUSH, null); if (prefs.getBoolean("applicationWriting", true))Toast.makeText(getBaseContext(), whatwrite, Toast.LENGTH_LONG).show(); while (myTTS.isSpeaking()){ - //system.Out.Println("Do something or nothing while speaking..") + } } public void beLoud(String what){ @@ -518,6 +546,7 @@ public class LevelActivity extends Activity implements MySensorListener{ // if(prefs.getBoolean("applicationTalking",true))t1.speak(what, TextToSpeech.QUEUE_FLUSH, null); //} + System.out.println("Systemoutput"); if(prefs.getBoolean("applicationTalking",true))myTTS.speak(what, TextToSpeech.QUEUE_FLUSH, null); if (prefs.getBoolean("applicationWriting", true))Toast.makeText(getBaseContext(), what, Toast.LENGTH_SHORT).show(); while (myTTS.isSpeaking()){ @@ -550,7 +579,7 @@ public class LevelActivity extends Activity implements MySensorListener{ //t1.speak(this.getString(R.string.goodby), TextToSpeech.QUEUE_FLUSH, null); //} myTTS.speak(this.getString(R.string.goodby), TextToSpeech.QUEUE_FLUSH, null); - + System.out.println("Shutting Down"); while (myTTS.isSpeaking()){ //system.Out.Println("Do something or nothing while speaking..") } diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 3a9b6c2..b3c7ed5 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -23,6 +23,7 @@ Records Sensor Output when set System Settings Data Acquisition Setting + Language and Messages Launch Settings Reset System Resets the System @@ -40,5 +41,12 @@ Show Acceleration vector on the Coordinates Gravity Show gravitational acceleration on Coords + Pitch + Set Voice Pitch + Rate + Set the Rate of Speech + + Dialog Slider shit + Units diff --git a/app/src/main/res/xml/preference.xml b/app/src/main/res/xml/preference.xml index 1375291..d676d0b 100644 --- a/app/src/main/res/xml/preference.xml +++ b/app/src/main/res/xml/preference.xml @@ -7,4 +7,6 @@ android:defaultValue="false" android:summary="@string/setting_recording_sum" android:key="applicationRecording" /> - \ No newline at end of file + + + diff --git a/app/src/main/res/xml/settings.xml b/app/src/main/res/xml/settings.xml index 066fcf3..d595685 100644 --- a/app/src/main/res/xml/settings.xml +++ b/app/src/main/res/xml/settings.xml @@ -10,12 +10,7 @@ - + + + + + + + + +