reimplement pinyin and song search