Files
bililive-touhou-tts/pinyin2kana_data.py
T
chun_qiu 9b277fe2e0 feat: Bilibili Live Danmaku -> Yukkuri TTS Reader
- Python main entry with CLI (--room-id, --voice, --speed)
- blivedm integration for real-time danmaku receiving
- Chinese-to-Japanese katakana conversion (pypinyin + mapping table)
- Node.js persistent bridge for aquestalk.js TTS synthesis
- Audio playback via sounddevice
- Message queue for sequential TTS playback
2026-08-08 11:26:11 +08:00

104 lines
8.0 KiB
Python

# Pinyin to Katakana mapping derived from pinyin-to-kana
# Source: https://cdn.jsdelivr.net/npm/pinyin-to-kana@1.0.0/mapping.tsv
PINYIN2KANA: dict[str, str] = {
"a": "アー", "ai": "アイ", "an": "アン", "ang": "アン", "ao": "アオ",
"ba": "バー", "bai": "バイ", "ban": "バン", "bang": "バン", "bao": "バオ",
"bei": "ベイ", "ben": "ベン", "beng": "ボン", "bi": "ビー", "bian": "ビエン",
"biao": "ビアオ", "bie": "ビエ", "bin": "ビン", "bing": "ビン", "bo": "ボー",
"bu": "ブー",
"ca": "ツァー", "cai": "ツァイ", "can": "ツァン", "cang": "ツァン", "cao": "ツァオ",
"ce": "ツォー", "cen": "ツェン", "ceng": "ツォン",
"cha": "チャー", "chai": "チャイ", "chan": "チャン", "chang": "チャン", "chao": "チャオ",
"che": "チョー", "chen": "チェン", "cheng": "チョン", "chi": "チー", "chong": "チョン",
"chou": "チョウ", "chu": "チュー", "chua": "チュワ", "chuai": "チュワイ", "chuan": "チュワン",
"chuang": "チュアン", "chui": "チュイ", "chun": "チュン", "chuo": "チュオ",
"ci": "ツー", "cong": "ツォン", "cou": "ツォウ", "cu": "ツー", "cuan": "ツワン",
"cui": "ツイ", "cun": "ツン", "cuo": "ツオ",
"da": "ダー", "dai": "ダイ", "dan": "ダン", "dang": "ダン", "dao": "ダオ",
"de": "ドー", "dei": "デイ", "den": "デン", "deng": "ドン",
"di": "ディー", "dian": "ディエン", "diao": "ディアオ", "die": "ディエ",
"ding": "ディン", "diu": "ディウ", "dong": "ドン", "dou": "ドウ",
"du": "ドゥー", "duan": "ドワン", "dui": "ドゥイ", "dun": "ドゥン", "duo": "ドゥオ",
"e": "オー", "ei": "エイ", "en": "エン", "eng": "オン", "er": "アル",
"fa": "ファー", "fan": "ファン", "fang": "ファン", "fei": "フェイ", "fen": "フェン",
"feng": "フォン", "fo": "フォー", "fou": "フォウ", "fu": "フー",
"ga": "ガー", "gai": "ガイ", "gan": "ガン", "gang": "ガン", "gao": "ガオ",
"ge": "ゴー", "gei": "ゲイ", "gen": "ゲン", "geng": "ゴン",
"gong": "ゴン", "gou": "ゴウ", "gu": "グー", "gua": "グワ", "guai": "グワイ",
"guan": "グワン", "guang": "グアン", "gui": "グイ", "gun": "グン", "guo": "グオ",
"ha": "ハー", "hai": "ハイ", "han": "ハン", "hang": "ハン", "hao": "ハオ",
"he": "ホー", "hei": "ヘイ", "hen": "ヘン", "heng": "ホン",
"hong": "ホン", "hou": "ホウ", "hu": "フー", "hua": "ホワ", "huai": "ホワイ",
"huan": "ホワン", "huang": "ホアン", "hui": "フイ", "hun": "フン", "huo": "フオ",
"ji": "ジー", "jia": "ジア", "jian": "ジエン", "jiang": "ジアン", "jiao": "ジアオ",
"jie": "ジエ", "jin": "ジン", "jing": "ジン", "jiong": "ジオン", "jiu": "ジウ",
"ju": "ジュー", "juan": "ジュエン", "jue": "ジュエ", "jun": "ジュン",
"ka": "カー", "kai": "カイ", "kan": "カン", "kang": "カン", "kao": "カオ",
"ke": "コー", "kei": "ケイ", "ken": "ケン", "keng": "コン",
"kong": "コン", "kou": "コウ", "ku": "クー", "kua": "クワ", "kuai": "クワイ",
"kuan": "クワン", "kuang": "クアン", "kui": "クイ", "kun": "クン", "kuo": "クオ",
"la": "ラー", "lai": "ライ", "lan": "ラン", "lang": "ラン", "lao": "ラオ",
"le": "ロー", "lei": "レイ", "leng": "ロン",
"li": "リー", "lia": "リア", "lian": "リエン", "liang": "リアン", "liao": "リアオ",
"lie": "リエ", "lin": "リン", "ling": "リン", "liu": "リウ",
"lo": "ロー", "long": "ロン", "lou": "ロウ",
"lu": "ルー", "lü": "リュー", "luan": "ルワン", "lüe": "リュエ", "lun": "ルン", "luo": "ルオ",
"lv": "リュー", "lve": "リュエ",
"ma": "マー", "mai": "マイ", "man": "マン", "mang": "マン", "mao": "マオ",
"me": "マ", "mei": "メイ", "men": "メン", "meng": "モン",
"mi": "ミー", "mian": "ミエン", "miao": "ミアオ", "mie": "ミエ",
"min": "ミン", "ming": "ミン", "miu": "ミウ",
"mo": "モー", "mou": "モウ", "mu": "ムー",
"na": "ナー", "nai": "ナイ", "nan": "ナン", "nang": "ナン", "nao": "ナオ",
"ne": "ノー", "nei": "ネイ", "nen": "ネン", "neng": "ノン",
"ni": "ニー", "nian": "ニエン", "niang": "ニアン", "niao": "ニアオ", "nie": "ニエ",
"nin": "ニン", "ning": "ニン", "niu": "ニウ",
"nong": "ノン", "nou": "ノウ",
"nu": "ヌー", "nü": "ニュー", "nuan": "ヌワン", "nüe": "ニュエ", "nuo": "ヌオ",
"nv": "ニュー", "nve": "ニュエ",
"o": "オー", "ou": "オウ",
"pa": "パー", "pai": "パイ", "pan": "パン", "pang": "パン", "pao": "パオ",
"pei": "ペイ", "pen": "ペン", "peng": "ポン",
"pi": "ピー", "pian": "ピエン", "piao": "ピアオ", "pie": "ピエ",
"pin": "ピン", "ping": "ピン", "po": "ポー", "pou": "ポウ", "pu": "プー",
"qi": "チー", "qia": "チア", "qian": "チエン", "qiang": "チアン", "qiao": "チアオ",
"qie": "チエ", "qin": "チン", "qing": "チン", "qiong": "チオン", "qiu": "チウ",
"qu": "チュー", "quan": "チュエン", "que": "チュエ", "qun": "チュン",
"ran": "ラン", "rang": "ラン", "rao": "ラオ", "re": "ロー", "ren": "レン",
"reng": "ロン", "ri": "リー",
"rong": "ロン", "rou": "ロウ", "ru": "ルー", "ruan": "ルワン",
"rui": "ルイ", "run": "ルン", "ruo": "ルオ",
"sa": "サー", "sai": "サイ", "san": "サン", "sang": "サン", "sao": "サオ",
"se": "ソー", "sen": "セン", "seng": "ソン",
"sha": "シャー", "shai": "シャイ", "shan": "シャン", "shang": "シャン", "shao": "シャオ",
"she": "ショー", "shei": "シェイ", "shen": "シェン", "sheng": "ション",
"shi": "シー", "shou": "ショウ", "shu": "シュー", "shua": "シュワ", "shuai": "シュワイ",
"shuan": "シュワン", "shuang": "シュアン", "shui": "シュイ", "shun": "シュン", "shuo": "シュオ",
"si": "スー", "song": "ソン", "sou": "ソウ", "su": "スー", "suan": "スワン",
"sui": "スイ", "sun": "スン", "suo": "スオ",
"ta": "ター", "tai": "タイ", "tan": "タン", "tang": "タン", "tao": "タオ",
"te": "トー", "teng": "トン",
"ti": "ティー", "tian": "ティエン", "tiao": "ティアオ", "tie": "ティエ",
"ting": "ティン", "tong": "トン", "tou": "トウ",
"tu": "トゥー", "tuan": "トワン", "tui": "トゥイ", "tun": "トゥン", "tuo": "トゥオ",
"wa": "ワー", "wai": "ワイ", "wan": "ワン", "wang": "ワン",
"wei": "ウェイ", "wen": "ウェン", "weng": "ウォン", "wo": "ウオ", "wu": "ウー",
"xi": "シー", "xia": "シア", "xian": "シエン", "xiang": "シアン", "xiao": "シアオ",
"xie": "シエ", "xin": "シン", "xing": "シン", "xiong": "シオン", "xiu": "シウ",
"xu": "シュー", "xuan": "シュエン", "xue": "シュエ", "xun": "シュン",
"ya": "ヤー", "yan": "イエン", "yang": "ヤン", "yao": "ヤオ",
"ye": "イエ", "yi": "イー", "yin": "イン", "ying": "イン",
"yo": "ヨー", "yong": "ヨン", "you": "ヨウ",
"yu": "ユー", "yuan": "ユエン", "yue": "ユエ", "yun": "ユン",
"za": "ザー", "zai": "ザイ", "zan": "ザン", "zang": "ザン", "zao": "ザオ",
"ze": "ゾー", "zei": "ゼイ", "zen": "ゼン", "zeng": "ゾン",
"zha": "ジャー", "zhai": "ジャイ", "zhan": "ジャン", "zhang": "ジャン", "zhao": "ジャオ",
"zhe": "ジョー", "zhei": "ジェイ", "zhen": "ジェン", "zheng": "ジョン",
"zhi": "ジー", "zhong": "ジョン", "zhou": "ジョウ",
"zhu": "ジュー", "zhua": "ジュワ", "zhuai": "ジュワイ", "zhuan": "ジュワン",
"zhuang": "ジュアン", "zhui": "ジュイ", "zhun": "ジュン", "zhuo": "ジュオ",
"zi": "ズー", "zong": "ゾン", "zou": "ゾウ",
"zu": "ズー", "zuan": "ズワン", "zui": "ズイ", "zun": "ズン", "zuo": "ズオ",
}