pinyin-pro vs pinyin
Chinese Pinyin Libraries Comparison
1 Year
pinyin-propinyin
What's Chinese Pinyin Libraries?

Both 'pinyin' and 'pinyin-pro' are JavaScript libraries designed to convert Chinese characters into Pinyin, the romanization of Chinese characters based on their pronunciation. They serve similar purposes but differ in features, performance, and intended use cases. 'pinyin' is a lightweight library that provides basic Pinyin conversion, while 'pinyin-pro' offers advanced features such as tone marking and better handling of special cases, making it suitable for more complex applications.

Package Weekly Downloads Trend
Github Stars Ranking
Stat Detail
Package
Downloads
Stars
Size
Issues
Publish
License
pinyin-pro33,5884,118927 kB54 months agoMIT
pinyin9,5387,60648.4 MB238 months agoMIT
Feature Comparison: pinyin-pro vs pinyin

Basic Conversion

  • pinyin-pro:

    The 'pinyin-pro' library also performs basic conversion but with enhanced accuracy and support for more complex characters, ensuring that even less common characters are converted correctly.

  • pinyin:

    The 'pinyin' library provides straightforward conversion of Chinese characters to their Pinyin equivalents. It handles standard characters effectively, making it a good choice for basic applications.

Tone Representation

  • pinyin-pro:

    The 'pinyin-pro' library includes options for tone representation, allowing users to see the correct tonal markings alongside the Pinyin text, which is essential for accurate pronunciation.

  • pinyin:

    The 'pinyin' library does not support tone markings in its output, which may be a limitation for users needing precise pronunciation guidance.

Performance

  • pinyin-pro:

    While 'pinyin-pro' is slightly heavier due to its additional features, it is still optimized for performance and can handle larger datasets effectively, though it may have a slight overhead compared to 'pinyin'.

  • pinyin:

    Being lightweight, 'pinyin' is optimized for performance, making it suitable for applications where speed is crucial and the dataset is not overly complex.

Special Cases Handling

  • pinyin-pro:

    The 'pinyin-pro' library excels in handling special cases and exceptions, providing more reliable conversions for complex phrases and names that may not follow standard rules.

  • pinyin:

    The 'pinyin' library has limited capabilities in handling special cases or exceptions in Pinyin conversion, which may lead to inaccuracies in certain contexts.

Customization Options

  • pinyin-pro:

    The 'pinyin-pro' library offers various customization options, allowing developers to tailor the output to their specific needs, such as choosing different formats for tone representation.

  • pinyin:

    Customization options in 'pinyin' are minimal, focusing primarily on straightforward conversion without extensive configuration.

How to Choose: pinyin-pro vs pinyin
  • pinyin-pro:

    Choose 'pinyin-pro' if you require more advanced features such as tone representation, improved accuracy in conversion, and support for special cases. It is better suited for applications that demand higher fidelity in Pinyin conversion.

  • pinyin:

    Choose 'pinyin' if you need a simple and lightweight solution for converting Chinese characters to Pinyin without additional features. It is ideal for projects where basic functionality is sufficient and performance is a priority.

README for pinyin-pro

logo

NPM version GITHUB star build-passing NPM Downloads Coverage Status DeepScan grade MIT-license npm bundle size GITHUB-language

📖 介绍

pinyin-pro 是一个专业的 js 汉字拼音转换库,功能丰富、准确率高、性能优异。

中文文档 | English Docs | 在线运行

🎨 特色功能

  • 支持拼音/声母/韵母/首字母/音调/全部信息
  • 支持人名姓氏模式
  • 支持文本和拼音匹配
  • 支持自定义拼音
  • 支持获取带拼音汉字的 HTML 字符串
  • 支持获取汉字的所有拼音
  • 支持拼音输入转换
  • 极致的性能和极高的拼音识别准确率

🔨 安装

npm 安装

npm install pinyin-pro

浏览器引入

<script src="https://unpkg.com/pinyin-pro"></script>

💡 使用示例

全部功能的使用说明文档请查看在线文档

  • 获取拼音,更多功能请查看pinyin API

    import { pinyin } from "pinyin-pro";
    
    // 获取字符串格式拼音
    pinyin("汉语拼音"); // 'hàn yǔ pīn yīn'
    
    // 获取数组格式拼音
    pinyin("汉语拼音", { type: "array" }); // ["hàn", "yǔ", "pīn", "yīn"]
    
    // 获取不带音调格式拼音
    pinyin("汉语拼音", { toneType: "none" }); // "han yu pin yin"
    
    // 获取不带音调数组格式拼音
    pinyin("汉语拼音", { toneType: "none", type: "array" }); // ["han", "yu", "pin", "yin"]
    
    // 音调以数字形式显示
    pinyin("汉语拼音", { toneType: "num" }); // "han4 yu3 pin1 yin1"
    
    // 自动识别多音字
    pinyin("睡着了"); // "shuì zháo le"
    
  • 文本和拼音匹配,更多匹配规则请查看match API

    import { match } from "pinyin-pro";
    
    // 支持首字母匹配
    match("中文拼音", "zwp"); // [0, 1, 2]
    
    // 支持全拼匹配
    match("中文拼音", "zhongwenpin"); // [0, 1, 2]
    
    // 支持混合匹配
    match("中文拼音", "zhongwp"); // [0, 1, 2]
    
  • 拼音格式转换,更多功能请查看convert API

    import { convert } from "pinyin-pro";
    
    // 数组转符号
    convert("pin1 yin1"); // 'pīn yīn'
    
    // 符号转数字
    convert("pīn yīn", { format: "symbolToNum" }); // 'pin1 yin1'
    
    // 消除符号
    convert("pīn yīn", { format: "toneNone" }); // 'pin yin'
    
  • 获取带汉字拼音的 HTML 字符串,更多配置请查看html API

    import { html } from "pinyin-pro";
    
    // 带拼音汉字的 HTML 字符串
    html("汉语拼音");
    /*
    <span class="py-result-item">
    <ruby>
        <span class="py-chinese-item">汉</span>
        <rp>(</rp>
        <rt class="py-pinyin-item">hàn</rt>
        <rp>)</rp>
    </ruby>
    </span>
    <span class="py-result-item">
    <ruby>
        <span class="py-chinese-item">语</span>
        <rp>(</rp>
        <rt class="py-pinyin-item">yǔ</rt>
        <rp>)</rp>
    </ruby>
    </span>
    */
    

    上述结果浏览器中预览效果如下: ( hàn ) ( )

🏆 竞品对比

以下是 pinyin-propinyin@napi-rs/pinyin 包对于汉字转换的速度及准确率对比,可以看到 pinyin-pro 在各方面都全面领先。

对比项pinyin@napi-rs/pinyinpinyin-pro
准确率😕 Node 版: 94.097%😕 94.097%🤩 99.846%
😕 Web 版: 91.170%
性能5k字转换耗时🐢 749.111ms🚲 200.877ms🚀 5.958ms
1w字转换耗时🐢 795.904ms🚲 206.5ms🚀 15.260ms
100w字转换耗时⛔ 内存溢出转换失败🚀 638.888ms🚀 820.131ms
兼容性Web 环境✔️ 支持❌ 不支持✔️ 支持
Node 环境✔️ 支持✔️ 支持✔️ 支持

📠 反馈

使用遇到问题或者需要功能支持欢迎提 issue。

技术交流欢迎加 pinyin-pro 用户群 或者微信: