public void test() { var prefixmap = new PrefixMap("./fixture/utau_voice_db/prefix.map"); var actual = prefixmap.getMappedLyric("は", 61); Assert.AreEqual(@"A\は↑", actual); Assert.AreEqual("あ", prefixmap.getMappedLyric("あ", 60)); }
/// <summary> /// 指定した歌詞に合致する、エイリアスを考慮した原音設定を取得します /// </summary> /// <param name="lyric"></param> /// <returns></returns> public OtoArgs attachFileNameFromLyric(string lyric, int note_number) { Func <string, OtoArgs> get_oto_arg = (l) => { var result = root_.attachFileNameFromLyric(l); if (!result.isEmpty()) { return(result); } foreach (var oto in sub_) { var args = oto.attachFileNameFromLyric(l); if (!args.isEmpty()) { return(args); } } return(new OtoArgs()); }; // first, try finding mapped lyric. if (prefixmap_ != null) { var mapped_lyric = prefixmap_.getMappedLyric(lyric, note_number); var args = get_oto_arg(mapped_lyric); if (!args.isEmpty()) { return(args); } } return(get_oto_arg(lyric)); }