All Projects → Ailln → Cn2an

Ailln / Cn2an

Licence: mit
📦 快速转化「中文数字」和「阿拉伯数字」~ (最新特性:分数,日期、温度等转化)

Programming Languages

python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to Cn2an

Edgedict
Working online speech recognition based on RNN Transducer. ( Trained model release available in release )
Stars: ✭ 205 (-17.67%)
Mutual labels:  speech-recognition, asr
Chinese text normalization
Chinese text normalization for speech processing
Stars: ✭ 242 (-2.81%)
Mutual labels:  speech-recognition, asr
Pytorch Asr
ASR with PyTorch
Stars: ✭ 124 (-50.2%)
Mutual labels:  speech-recognition, asr
Deepspeechrecognition
A Chinese Deep Speech Recognition System 包括基于深度学习的声学模型和基于深度学习的语言模型
Stars: ✭ 1,421 (+470.68%)
Mutual labels:  speech-recognition, asr
Asr Evaluation
Python module for evaluating ASR hypotheses (e.g. word error rate, word recognition rate).
Stars: ✭ 190 (-23.69%)
Mutual labels:  speech-recognition, asr
Transformers
🤗 Transformers: State-of-the-art Machine Learning for Pytorch, TensorFlow, and JAX.
Stars: ✭ 55,742 (+22286.35%)
Mutual labels:  nlp-library, speech-recognition
Speech To Text Russian
Проект для распознавания речи на русском языке на основе pykaldi.
Stars: ✭ 151 (-39.36%)
Mutual labels:  speech-recognition, asr
Vosk Api
Offline speech recognition API for Android, iOS, Raspberry Pi and servers with Python, Java, C# and Node
Stars: ✭ 1,357 (+444.98%)
Mutual labels:  speech-recognition, asr
End2end Asr Pytorch
End-to-End Automatic Speech Recognition on PyTorch
Stars: ✭ 175 (-29.72%)
Mutual labels:  speech-recognition, asr
Pytorch Kaldi
pytorch-kaldi is a project for developing state-of-the-art DNN/RNN hybrid speech recognition systems. The DNN part is managed by pytorch, while feature extraction, label computation, and decoding are performed with the kaldi toolkit.
Stars: ✭ 2,097 (+742.17%)
Mutual labels:  speech-recognition, asr
E2e Asr
PyTorch Implementations for End-to-End Automatic Speech Recognition
Stars: ✭ 106 (-57.43%)
Mutual labels:  speech-recognition, asr
Lingvo
Lingvo
Stars: ✭ 2,361 (+848.19%)
Mutual labels:  speech-recognition, asr
Bigcidian
Pronunciation lexicon covering both English and Chinese languages for Automatic Speech Recognition.
Stars: ✭ 99 (-60.24%)
Mutual labels:  speech-recognition, asr
Rnn Transducer
MXNet implementation of RNN Transducer (Graves 2012): Sequence Transduction with Recurrent Neural Networks
Stars: ✭ 114 (-54.22%)
Mutual labels:  speech-recognition, asr
Delta
DELTA is a deep learning based natural language and speech processing platform.
Stars: ✭ 1,479 (+493.98%)
Mutual labels:  speech-recognition, asr
Asr audio data links
A list of publically available audio data that anyone can download for ASR or other speech activities
Stars: ✭ 128 (-48.59%)
Mutual labels:  speech-recognition, asr
Ktspeechcrawler
Automatically constructing corpus for automatic speech recognition from YouTube videos
Stars: ✭ 92 (-63.05%)
Mutual labels:  speech-recognition, asr
Mongolian Speech Recognition
Mongolian speech recognition with PyTorch
Stars: ✭ 97 (-61.04%)
Mutual labels:  speech-recognition, asr
Py Kaldi Asr
Some simple wrappers around kaldi-asr intended to make using kaldi's (online) decoders as convenient as possible.
Stars: ✭ 156 (-37.35%)
Mutual labels:  speech-recognition, asr
Kospeech
Open-Source Toolkit for End-to-End Korean Automatic Speech Recognition.
Stars: ✭ 190 (-23.69%)
Mutual labels:  speech-recognition, asr

cn2an: Chinese Numerals To Arabic Numerals

Pypi MIT License stars build API

📦 cn2an 是一个快速转化 中文数字阿拉伯数字 的工具包!

🔗点击访问 DEMO

🎈 v0.5.9 update: fix "拾壹" => "壹拾壹"

🎈 en2an: 「英文数字」和「阿拉伯数字」互转正在收集需求中! 详情

🎈 Cn2An.jl: Julia 语言版本已经上线,正在丰富基础功能。详情

1 功能

1.1 中文数字 => 阿拉伯数字

  • 支持 中文数字 => 阿拉伯数字
  • 支持 大写中文数字 => 阿拉伯数字
  • 支持 中文数字和阿拉伯数字 => 阿拉伯数字

1.2 阿拉伯数字 => 中文数字

  • 支持 阿拉伯数字 => 中文数字
  • 支持 阿拉伯数字 => 大写中文数字
  • 支持 阿拉伯数字 => 大写人民币

1.3 句子转化

  • 支持 中文数字 => 阿拉伯数字

    • 支持 日期
    • 支持 分数
    • 支持 百分比
    • 支持 摄氏度
  • 支持 阿拉伯数字 => 中文数字

    • 支持 日期
    • 支持 分数
    • 支持 百分比
    • 支持 摄氏度

1.4 其他

  • 支持 小数
  • 支持 负数
  • 支持 HTTP API

2 安装

⚠️ 注意:

  1. 本地安装仅支持 Python 的 3.6 以上版本;
  2. 其他语言用户可以考虑使用 HTTP API
  3. 尽可能使用 cn2an 的最新版本。

2.1 使用 pip 安装

pip install cn2an -U

2.2 从代码库安装

git clone https://github.com/Ailln/cn2an.git
cd cn2an && python setup.py install

2.3 常见问题

2.3.1 关于 PyYAML

问题:安装 PyYAML 时出现错误,ERROR: Cannot uninstall 'PyYAML'. It is a distutils installed project and thus we cannot accurately determine which files belong to it which would lead to only a partial uninstall.

解决方法:先手动更新 PyYAML 到最新版本,再安装 cn2an。

pip install PyYAML -U --ignore-installed

3 使用

# 在文件首部引入包
import cn2an

# 查看当前版本号
print(cn2an.__version__)
# 0.5.9

3.1 中文数字 => 阿拉伯数字

最大支持到 10**16,即 千万亿,最小支持到 10**-16

import cn2an

# 在 strict 模式(默认)下,只有严格符合数字拼写的才可以进行转化
output = cn2an.cn2an("一百二十三")
# 或者
output = cn2an.cn2an("一百二十三", "strict")
# output:
# 123

# 在 normal 模式下,可以将 一二三 进行转化
output = cn2an.cn2an("一二三", "normal")
# output:
# 123

# 在 smart 模式下,可以将混合拼写的 1百23 进行转化
output = cn2an.cn2an("1百23", "smart")
# output:
# 123

# 以上三种模式均支持负数
output = cn2an.cn2an("负一百二十三", "strict")
# output:
# -123

# 以上三种模式均支持小数
output = cn2an.cn2an("一点二三", "strict")
# output:
# 1.23

3.2 阿拉伯数字 => 中文数字

最大支持到10**16,即千万亿,最小支持到 10**-16

import cn2an

# 在 low 模式(默认)下,数字转化为小写的中文数字
output = cn2an.an2cn("123")
# 或者
output = cn2an.an2cn("123", "low")
# output:
# 一百二十三

# 在 up 模式下,数字转化为大写的中文数字
output = cn2an.an2cn("123", "up")
# output:
# 壹佰贰拾叁

# 在 rmb 模式下,数字转化为人民币专用的描述
output = cn2an.an2cn("123", "rmb")
# output:
# 壹佰贰拾叁元整

# 以上三种模式均支持负数
output = cn2an.an2cn("-123", "low")
# output:
# 负一百二十三

# 以上三种模式均支持小数
output = cn2an.an2cn("1.23", "low")
# output:
# 一点二三

3.3 句子转化

⚠️:试验性功能,可能会造成不符合期望的转化。

import cn2an

# 在 cn2an 方法(默认)下,可以将句子中的中文数字转成阿拉伯数字
output = cn2an.transform("小王捡了一百块钱")
# 或者
output = cn2an.transform("小王捡了一百块钱", "cn2an")
# output:
# 小王捡了100块钱

# 在 an2cn 方法下,可以将句子中的中文数字转成阿拉伯数字
output = cn2an.transform("小王捡了100块钱", "an2cn")
# output:
# 小王捡了一百块钱


## 支持日期
output = cn2an.transform("小王的生日是二零零一年三月四日", "cn2an")
# output:
# 小王的生日是2001年3月4日

output = cn2an.transform("小王的生日是2001年3月4日", "an2cn")
# output:
# 小王的生日是二零零一年三月四日

## 支持分数
output = cn2an.transform("抛出去的硬币为正面的概率是二分之一", "cn2an")
# output:
# 抛出去的硬币为正面的概率是1/2

output = cn2an.transform("抛出去的硬币为正面的概率是1/2", "an2cn")
# output:
# 抛出去的硬币为正面的概率是二分之一

## 支持百分比
## 支持摄氏度

3.4 HTTP API

主要为其他语言(Java、Javascript、Go等)用户提供方便,当然 Python 用户也可以使用,点击查看详细用法

4 版本支持

  • 理论上支持 WindowsMacOSUbuntu 下的所有 Python 3.6+ 的版本。
  • 实际上仅在 ubuntu-latestwindows-latestmacOS-latestPython 3.6, 3.7, 3.8 上做过完整测试。
  • 欢迎提交其他版本使用情况到 Issues 中,期待你的反馈。
  • 如果你有 Python 2 的使用需求,可 Fork 代码自行修改。当然也欢迎提 PR,贡献自己代码给其他人。

5 问题反馈

  1. 先搜索 Issues 中有没有人已经问过类似的问题;
  2. 如果没有找到解答,请新开一个 issue:
    1. 首先,在「issue 标题」中填写你遇到的问题的简介;
    2. 然后,在「issue 详情」中填写你遇到的问题的详情;
    3. 最后,不要忘记注明你使用的操作系统(比如 Windows 10)和 Python 版本(比如 Python 3.6.3)。
  3. 还可以参考 Issue Template

6 开发相关

6.1 开发进度

本项目是用看板管理开发进度,请点击 v0.5 查看开发进度和计划事项。

6.2 代码测试

本地测试使用 Anaconda 的虚拟环境,测试方法如下:

# 执行测试
bash scripts/local_test.sh

线上测试使用 GitHub Actions

6.3 性能测试

  • 测试版本:v0.5.1

  • 测试设备:2.3 GHz 双核Intel Core i5 MacBook Pro

  • 测试代码:performance.py

  • 测试方法:

    pip install -r requirements_test.txt
    
    python -m cn2an.performance
    
  • 测试结果:

    序号 功能 执行次数 执行时间(万次平均) 性能(次/秒)
    1 an2cn 10000 0.15 67k
    2 cn2an 10000 0.35 29k

测试时,我使用的是最大长度的测试数据!因此,大多数情况下该库的性能会更好~

7 许可证

8 交流

欢迎添加微信号:Ailln_,备注「cn2an」,我邀请你进入交流群。

9 致谢

  • Thunder Bouble: 提出很多有效的反馈,包括一些 bug 和新功能;
  • Damon Yu: 增加对全角数字和全角符号的支持。

10 参考

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].