Example #1
0
    /// <summary>
    /// テキストからAudioClipを作成
    /// </summary>
    /// <param name="text"></param>
    /// <returns></returns>
    private AudioClip CreateAudio(string text)
    {
        // 長いテキストを分割
        var wavs = new List <WAV>();
        var sb   = new StringBuilder();

        foreach (var cha in text)
        {
            sb.Append(cha);
            if ((cha != '.' && cha != '。' && cha != '\n') || sb.Length <= SEPARATE_THRESHOLD)
            {
                continue;
            }
            wavs.Add(new WAV(generateAudio.GenerateBinary(sb.ToString())));
            sb.Clear();
        }

        if (sb.Length > 1)
        {
            wavs.Add(new WAV(generateAudio.GenerateBinary(sb.ToString())));
        }

        // 分割された文の合成
        var result = WAV.Combine(wavs.ToArray());

        return(result.CreateAudioClip("Audio"));
    }