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();
    }