Skip to main content

波斯语(波斯语)的简单字素到音素转换器

项目描述

简单的波斯语(波斯语)字素到音素转换器

PyPI 版本

pip install PersianG2p

它使用这个神经网络将波斯文本(带有阿拉伯符号)转换为音素文本。

波斯语的特点

  • 阿拉伯符号
  • 字符有不同的形式取决于在单词中的位置
  • 元音a , e , o通常不写但发音;例如:
    • سس 发音为sos但写为ss
    • شش 发音为šeš但写成šš
    • من 发音为man但写为mn
    • سلام 发音为salām但写为 slām
    • شما发音为šomā但写为šmā
    • ممنون 发音为mamnun但写为 mmnun
  • 相同的符号有不同的发音:在单词 مو 中,符号 و 发音为u,但在单词 میوه 中,这个符号在元音之后并发音为v;词 تو 代词to或tu取决于意思;符号 ه (hā-ye docešm) 在 نه 中发音为( e ),在آنها中发音为h
  • 元音没有重叠
  • 动词在句末
  • 没有性
  • 没有案例
  • 形容词和定义附加在名词的末尾

这个怎么运作

有1867对像(波斯语单词,一个发音)的字典;use_large = True您还可以使用in 构造函数加载超过 48 000 个单词的字典。其中一些词(英文):水,那里,感觉,使用,人,扔,他,可以,高速公路,曾经,大厅,保证,生产,句子,帐户,上帝,自我,他们知道,美元,头脑,小说, 地震, 组织, 武器, 个人, 烈士, 必要性, 意见, 法语, 法律, 伦敦, 剥夺, 人, 研究, 来源, 水果, 他们采取, 系统, 光, 是, 和, 腿, 桥, 什么,做,做。

首先,在 --- tokenized之后,您的文本由hazm规范化。

  1. 如果令牌不是阿拉伯字母的符号,那么它什么也不做。
  2. 如果 token 是字典中的单词,那么它会从字典中选择发音。
  3. 否则发音将由神经网络预测。

如果 token 是字典中的一个单词,那么它的发音是像“this”这样的单词(符号之间的空格以及单词的结尾和开头)。如果这个词是继续,那么它就是预测的词。您可以通过设置禁用此选项secret = True。

“整洁”的说法

波斯符号 声音(整洁=假) 声音(整洁=真)
Ë 一个 一个
Ë 小号 š
带 Z ž
带 C C
ء، ع ? `

与Epitran的比较

代码

波斯语 外转录转化 波斯语G2p转换 预期的
سلام slɒm 萨拉姆 萨拉姆
作文 嗯嗯 马农 马农
胡布 xb xab xāb
胡歌 sɒhl 萨赫勒 萨赫勒
√ jx 亚克斯 亚克斯
游戏 lɒɣr 拉尔 拉尔
پسته 某事 害虫 害虫
推荐 微信 莫莱斯 莫莱斯
سالها sɒl hɒ 萨莱哈 萨尔哈
游戏 lzt 拉兹特 莱扎特
دژ dʒ 多兹 德兹
璎珞 brf 呕吐物 呕吐物
خدا حافظ xdɒ hɒfz xodāhāfez 索达哈菲兹
دمپایی dmپɒjj 达巴依 达巴依
关注 nʃstn 内沙斯坦 内沙斯坦
近义词 mtɒʔsfɒnh motsafe`āne 莫塔塞凡

安装

pip install PersianG2p

用法

from PersianG2p import Persian_g2p_converter

PersianG2Pconverter = Persian_g2p_converter()
# or 
## PersianG2Pconverter = Persian_g2p_converter(use_large = True)

PersianG2Pconverter.transliterate('ما الان درحال بازی بودیم', tidy = False)
# ' m A   a l A n  darhAl  b A z i   b u d i m '

PersianG2Pconverter.transliterate('ما الان درحال بازی بودیم')
# ' m ā   a l ā n  darhāl  b ā z i   b u d i m '

Persian_g2p_converter().transliterate( "زان یار دلنوازم شکریست با شکایت", secret = True)
# 'zān yār delnavāzam šokrist bā šekāyat'

PersianG2Pconverter.transliterate('نه تنها یک کلمه')
# ' n o h   t a n h ā   y e k  kalame'

#object() and object.transliterate() are equal if they have same arguments
PersianG2Pconverter('نه تنها یک کلمه', secret = True)
# 'noh tanhA yek kalame'

电报机器人@PersianG2Pbot

这个电报机器人使用 PersianG2P 包。写信给他检查结果。

你能做的更好吗

  • 拟合更好的模型(使用另一个超参数或更大的字典)

  • 将许多新词添加到字典中。如果你愿意,我会为此任务编写 Python/C# 脚本,甚至创建 Telegram 机器人

项目详情


下载文件

下载适用于您平台的文件。如果您不确定要选择哪个,请了解有关安装包的更多信息。

源分布

PersianG2p-0.3.2.tar.gz (924.3 kB 查看哈希)

已上传 source

内置分布

PersianG2p-0.3.2-py3-none-any.whl (928.1 kB 查看哈希)

已上传 py3