private void convertAndSaveDialog(AVASEvent speechObject) { string fileName = speechObject.gameObject.name; var pathEnglish = EditorUtility.SaveFilePanel( "Save english speech as WAV", Application.dataPath, fileName + "-AVASEvent-English.wav", "wav"); SpFileStream SpFileStreamEnglish = new SpFileStream(); SpFileStreamEnglish.Open(pathEnglish, speechFileMode, false); voice.AudioOutputStream = SpFileStreamEnglish; voice.Voice = tokens.Item(EnglishLanguageIndex); voice.Speak(speechObject.AVASEnglishText, SpeechVoiceSpeakFlags.SVSFlagsAsync); voice.WaitUntilDone(Timeout.Infinite);//Using System.Threading; SpFileStreamEnglish.Close(); AudioClip speechEnglishAudio = (AudioClip)Resources.Load(pathEnglish); speechObject.AVASEnglishAudio = speechEnglishAudio; ShowNotification(new GUIContent("Conversion of English Text is done!"), 2); var pathGerman = EditorUtility.SaveFilePanel( "Save english speech as WAV", Application.dataPath, fileName + "-AVASEvent-German.wav", "wav"); SpFileStream SpFileStreamGerman = new SpFileStream(); SpFileStreamGerman.Open(pathGerman, speechFileMode, false); voice.AudioOutputStream = SpFileStreamGerman; voice.Voice = tokens.Item(GermanLanguageIndex); voice.Speak(speechObject.AVASGermanText, SpeechVoiceSpeakFlags.SVSFlagsAsync); voice.WaitUntilDone(Timeout.Infinite);//Using System.Threading; SpFileStreamGerman.Close(); AudioClip speechGermanAudio = (AudioClip)Resources.Load(pathGerman); speechObject.AVASGermanAudio = speechGermanAudio; ShowNotification(new GUIContent("Conversion of German Text is done!"), 2); }
private void OnGUI() { initialize(); GUIStyle header = new GUIStyle(); header.fontStyle = FontStyle.Bold; EditorGUILayout.BeginHorizontal(); EditorGUILayout.LabelField("Convert Using Direct Input", header); EditorGUILayout.EndHorizontal(); EditorGUILayout.BeginVertical(); EditorGUILayout.LabelField("Text to be converted"); speechText = EditorGUILayout.TextArea(speechText, GUILayout.MinHeight(50)); EditorGUILayout.EndVertical(); EditorGUILayout.BeginHorizontal(); if (GUILayout.Button("Convert Direct")) { convertAndSaveDialog(speechText); } EditorGUILayout.EndHorizontal(); EditorGUILayout.BeginVertical(); EditorGUILayout.LabelField("", GUI.skin.horizontalSlider); EditorGUILayout.BeginHorizontal(); EditorGUILayout.LabelField("Convert Using Event Gates", header); EditorGUILayout.EndHorizontal(); EditorGUILayout.BeginVertical(); EditorGUILayout.LabelField("EventGate Object"); EditorGUILayout.HelpBox("Select a game object with EventGate attached to it", MessageType.Info); source = (EventGate)EditorGUILayout.ObjectField(source, typeof(EventGate), true); EditorGUILayout.EndVertical(); EditorGUILayout.BeginHorizontal(); if (source != null) { if (GUILayout.Button("Convert From EventGate Object")) { convertAndSaveDialog(source); } } EditorGUILayout.EndHorizontal(); EditorGUILayout.BeginVertical(); EditorGUILayout.LabelField("EventHandler Object"); EditorGUILayout.HelpBox("Select a game object with EventHandler attached to it", MessageType.Info); feedBackSource = (EventHandler)EditorGUILayout.ObjectField(feedBackSource, typeof(EventHandler), true); EditorGUILayout.EndVertical(); EditorGUILayout.BeginHorizontal(); if (feedBackSource != null) { if (GUILayout.Button("Convert From EventHandler Object")) { convertAndSaveDialog(feedBackSource); } } EditorGUILayout.EndHorizontal(); EditorGUILayout.BeginVertical(); EditorGUILayout.LabelField("AVASEvent Object"); EditorGUILayout.HelpBox("Select a game object with AVASEvent attached to it", MessageType.Info); avasEventSource = (AVASEvent)EditorGUILayout.ObjectField(avasEventSource, typeof(AVASEvent), true); EditorGUILayout.EndVertical(); EditorGUILayout.BeginHorizontal(); if (avasEventSource != null) { if (GUILayout.Button("Convert From AVASEvent Object")) { convertAndSaveDialog(avasEventSource); } } EditorGUILayout.EndHorizontal(); }