Exemple #1
0
        /// <summary>
        /// 合成语音
        /// </summary>
        /// <param name="text">合成文本</param>
        /// <param name="handler">合成完毕后的处理者</param>
        /// <param name="timeout">超时时长</param>
        /// <param name="speaker">发音人</param>
        /// <param name="volume">音量</param>
        /// <param name="speed">音速</param>
        /// <param name="pitch">音调</param>
        public static void SynthesisByTOKEN(string text, HTFAction <AudioClip> handler, int timeout = 60000, Speaker speaker = Speaker.Woman_DuYaYa, int volume = 15, int speed = 5, int pitch = 5)
        {
            if (string.IsNullOrEmpty(text) || text == "" || Encoding.Default.GetByteCount(text) >= 1024)
            {
                GlobalTools.LogError("合成语音失败:文本为空或长度超出了1024字节的限制!");
                return;
            }

            if (!Coroutiner)
            {
                GameObject obj = new GameObject("Coroutiner");
                Coroutiner = obj.AddComponent <SpeechCoroutiner>();
                Object.DontDestroyOnLoad(obj);
            }

            Coroutiner.StartCoroutine(SynthesisByTOKENCoroutine(text, handler, timeout, speaker, volume, speed, pitch));
        }
Exemple #2
0
        /// <summary>
        /// 合成语音,并保存语音文件
        /// </summary>
        /// <param name="text">合成文本</param>
        /// <param name="rule">合成规则</param>
        /// <param name="savePath">语音文件保存路径</param>
        /// <param name="timeout">超时时长</param>
        /// <param name="audioType">音频文件格式</param>
        /// <param name="speaker">发音人</param>
        /// <param name="volume">音量</param>
        /// <param name="speed">音速</param>
        /// <param name="pitch">音调</param>
        public static void SynthesisByKEY(string text, SynthesisRule rule, string savePath, SynthesisType audioType = SynthesisType.MP3, int timeout = 60000, Speaker speaker = Speaker.Woman_DuYaYa, int volume = 15, int speed = 5, int pitch = 5)
        {
            if (string.IsNullOrEmpty(text) || text == "" || Encoding.Default.GetByteCount(text) >= 1024)
            {
                GlobalTools.LogError("合成语音失败:文本为空或长度超出了1024字节的限制!");
                return;
            }

            if (!Coroutiner)
            {
                GameObject obj = new GameObject("Coroutiner");
                Coroutiner = obj.AddComponent <SpeechCoroutiner>();
                Object.DontDestroyOnLoad(obj);
            }

            text = rule.Apply(text);
            Coroutiner.StartCoroutine(SynthesisByKEYCoroutine(text, savePath, audioType, timeout, speaker, volume, speed, pitch));
        }