void OnLineSpeakStarted(SpeakerLine line)
    {
        if (string.IsNullOrEmpty(line.description) || !line.showLine)
        {
            return;
        }

        SubtitleUI.Singleton.PushLine(line.description, line.clip);
    }
    public void Speak(string key)
    {
        if (string.IsNullOrEmpty(key))
        {
            return;
        }
        StopSpeaking();
        SpeakerLine l = lineCache[key];

        if (l == null)
        {
            return;
        }
        currentLine   = key;
        m_source.clip = l.clip;
        m_source.Play();
        OnLineSpeakStarted(l);
    }