Skip to main content

中华音码(SinoPhone)- 中文拼音语音模糊哈希编码算法

Project description

SinoPhone (中华音码)

PyPI version Python License: MIT

SinoPhone(中华音码)是一个用于将中文拼音转换为语音模糊哈希编码的Python库。主要用于处理中文语音识别中的同音字和方言混淆问题。

特性

  • 🎯 语音模糊匹配:支持常见的方言混淆,如 l/n 不分、f/h 不分等
  • 🚀 高效编码:将拼音音节转换为简短的哈希编码
  • 🔧 易于使用:简单的API,支持中文文本和拼音文本输入
  • 📦 轻量级:只依赖 pypinyin 库
  • 🌏 中文友好:专为中文语音处理设计

安装

pip install sinophone-zh

快速开始

基本用法

from sinophone import chinese_to_sinophone, sinophone

# 中文文本转SinoPhone编码
result = chinese_to_sinophone("中国")
print(result)  # 输出: "ZG UG"

# 拼音转SinoPhone编码
result = sinophone("zhong guo")
print(result)  # 输出: "ZG UG"

# 不使用空格连接
result = chinese_to_sinophone("中国", join_with_space=False)
print(result)  # 输出: "ZGUG"

语音模糊匹配示例

SinoPhone 能够处理常见的方言混淆:

# l/n 不分
print(chinese_to_sinophone("南"))  # "NN"
print(chinese_to_sinophone("兰"))  # "NN" (相同编码)

# f/h 不分
print(chinese_to_sinophone("发"))  # "HI"
print(chinese_to_sinophone("花"))  # "HI" (相同编码)

# o/e 混淆
print(sinophone("bo"))  # "BE"
print(sinophone("be"))  # "BE" (相同编码)

API 文档

chinese_to_sinophone(chinese_text, join_with_space=True)

将中文文本转换为 SinoPhone 编码。

参数:

  • chinese_text (str): 中文字符串
  • join_with_space (bool, 可选): 是否用空格连接音节编码,默认为 True

返回:

  • str: SinoPhone 编码字符串

sinophone(pinyin_text)

将拼音文本转换为 SinoPhone 编码。

参数:

  • pinyin_text (str): 拼音字符串,音节之间用空格分隔

返回:

  • str: SinoPhone 编码字符串

编码规则

声母映射

  • 标准声母:b→B, p→P, m→M, f→H, d→D, t→T, n→N, l→N 等
  • 混淆规则:l/n → N, f/h → H
  • 零声母:y/w/yu → _

韵母映射

  • 标准韵母:a/ia/ua→A, o/uo→E, e→E, ai/uai→I 等
  • 混淆规则:o/e → E
  • 鼻音韵母:an/en系列→N, ang/eng系列→G

特殊音节

  • zhei → ZE("这"的口语变体)
  • shei → SV("谁"的变体)
  • ng → _E("嗯")
  • m → _U("呣")

应用场景

  • 🎤 语音识别:处理同音字混淆
  • 🔍 模糊搜索:中文文本的语音相似度匹配
  • 📝 输入法:拼音输入的容错处理
  • 🗣️ 方言处理:标准普通话与方言的映射
  • 🤖 NLP应用:中文文本的语音特征提取

开发

安装开发依赖

pip install -e .[dev]

运行测试

pytest

代码格式化

black .

贡献

欢迎提交 Issue 和 Pull Request!

许可证

MIT License - 详见 LICENSE 文件。

更新日志

v0.0.1

  • 初始版本发布
  • 支持中文文本和拼音文本转SinoPhone编码
  • 实现语音模糊匹配规则
  • 支持特殊音节处理

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

sinophone_zh-0.0.1.tar.gz (23.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

sinophone_zh-0.0.1-py3-none-any.whl (7.1 kB view details)

Uploaded Python 3

File details

Details for the file sinophone_zh-0.0.1.tar.gz.

File metadata

  • Download URL: sinophone_zh-0.0.1.tar.gz
  • Upload date:
  • Size: 23.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.10.18

File hashes

Hashes for sinophone_zh-0.0.1.tar.gz
Algorithm Hash digest
SHA256 bb446abeead3e2be13a6d106fda007e8a005a7bf4aa6def695c2c829dbbe4c6a
MD5 90cc5a2cf40b468e86bd1a301ed544cc
BLAKE2b-256 2932cb34108805b1a082d0524a084c1be089262aa8cb019f6549fca7755dcfb9

See more details on using hashes here.

File details

Details for the file sinophone_zh-0.0.1-py3-none-any.whl.

File metadata

  • Download URL: sinophone_zh-0.0.1-py3-none-any.whl
  • Upload date:
  • Size: 7.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.10.18

File hashes

Hashes for sinophone_zh-0.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 ed24560779b485490242897c03ae79f406f2f64df8ddc129ba985fcb8fda2fba
MD5 6a268cc51d055774cbe5804aea09b02b
BLAKE2b-256 590e5ed895f0c03ac12c1093ab41671e5c6daf878a0916b050efc26d3d9ddbf0

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page