Skip to content
/ pinyin Public
forked from overtrue/pinyin

基于词库的中文转拼音优质解决方案

License

Notifications You must be signed in to change notification settings

mruse/pinyin

 
 

Repository files navigation

Pinyin

Build Status Latest Stable Version Total Downloads Latest Unstable Version License Scrutinizer Code Quality

基于CC-CEDICT词典的中文转拼音工具, 更准确的汉字转拼音解决方案。

use \Overtrue\Pinyin\Pinyin; //请注意1.x系列的命名空间不同

echo Pinyin::pinyin('带着希望去旅行,比到达终点更美好');
// dài zhe xī wàng qù lǔ xíng bǐ dào dá zhōng diǎn gèng měi hǎo

//多音字
// 了
Pinyin::pinyin('了然'); // liǎo rán
Pinyin::pinyin('来了'); // lái le

// 还
Pinyin::pinyin('还有'); // hái yǒu
Pinyin::pinyin('交还'); // jiāo huán

// 什
Pinyin::pinyin('什么'); // shén me
Pinyin::pinyin('什锦'); // shí jǐn

// 便
Pinyin::pinyin('便当'); // biàn dāng
Pinyin::pinyin('便宜'); // pián yí

// 剥
Pinyin::pinyin('剥皮'); // bāo pí
Pinyin::pinyin('剥皮器'); // bō pí qì

// 不
Pinyin::pinyin('赔不是'); // péi bú shi
Pinyin::pinyin('跑了和尚,跑不了庙'); // pǎo le hé shàng , pǎo bù liǎo miào

// 降
Pinyin::pinyin('降温'); // jiàng wēn
Pinyin::pinyin('投降'); // tóu xiáng

// 都
Pinyin::pinyin('首都'); // shǒu dū
Pinyin::pinyin('都什么年代了'); // dōu shén me nián dài le

// 乐
Pinyin::pinyin('快乐'); // kuài lè
Pinyin::pinyin('音乐'); // yīn yuè

// 长
Pinyin::pinyin('成长'); // chéng zhǎng
Pinyin::pinyin('长江'); // cháng jiāng

// 难
Pinyin::pinyin('难民'); // nàn mín
Pinyin::pinyin('难过'); // nán guò
...

安装

  1. 使用 Composer 安装:

    composer require overtrue/pinyin:2.*
    

    或者在你的项目composer.json加入:

    {
        "require": {
            "overtrue/pinyin": "2.*"
        }
    }
  2. 直接下载文件 src/Pinyin/Pinyin.php 引入到项目中。

使用

<?php
use \Overtrue\Pinyin\Pinyin;

//获取拼音
echo Pinyin::pinyin('带着希望去旅行,比到达终点更美好');
// dài zhe xī wàng qù lǔ xíng bǐ dào dá zhōng diǎn gèng měi hǎo

//获取首字母
echo Pinyin::letter('带着希望去旅行,比到达终点更美好');
// D Z X W Q L X B D D Z D G M H

设置

选项 描述
delimiter 分隔符,默认为一个空格 ' '
traditional 繁体
accent 是否输出音调
letter 只输出首字母,或者直接使用Pinyin::letter($string)
only_chinese 只保留$string中中文部分

全局设置: Pinyin::set('delimiter', '-');

临时设置: Pinyin::pinyin($word, $settings) 在调用的方法后传参

example:

Pinyin::set('delimiter', '-');//全局
echo Pinyin::pinyin('带着希望去旅行,比到达终点更美好');

// dài-zhe-xī-wàng-qù-lǔ-xíng-bǐ-dào-dá-zhōng-diǎn-gèng-měi-hǎo
$setting = [
	    'delimiter' => '-',
	    'accent'    => false,
	   ];

echo Pinyin::pinyin('带着希望去旅行,比到达终点更美好', $setting);//这里的setting只是临时修改,并非全局设置

// dai-zhe-xi-wang-qu-lu-xing-bi-dao-da-zhong-dian-geng-mei-hao
Pinyin::set('accent', false);
echo Pinyin::pinyin('带着希望去旅行,比到达终点更美好');

// dai zhe xi wang qu lu xing bi dao da zhong dian geng mei hao

在Laravel中使用

composer require overtrue/pinyin:2.*

在laravel配置文件中app.phpproviders里加入:

'Overtrue\Pinyin\PinyinServiceProvider',

然后看起来可能是这样:

	'providers' =>
		//...
		'Illuminate\Validation\ValidationServiceProvider',
		'Illuminate\View\ViewServiceProvider',
		'Overtrue\Pinyin\PinyinServiceProvider',
	],

然后你可以添加配置文件:config/pinyin.php(注意:此项为可选,如果不需要设置则不用创建此文件):

<?php

return [
	'delimiter' => '-',
	'accent' => false,
	//...
];

以上的设置会是全局的设置,如需临时设置请在方法里传参,例如:

Pinyin::letter('您好世界', ['delimiter' => '-']); //N-H-S-J

使用

与上面的使用方法一样:

use \Overtrue\Pinyin\Pinyin;

//...

$pinyin = Pinyin::pinyin("带着希望去旅行,比到达终点更美好");

说明

  • 1.x的命名空间是\Overtrue,2.x的命名空间是\Overtrue\Pinyin(之前的写法不规范 🙈)

TODO

  • 添加获取首字母;
  • 支持繁体;
  • 添加补充词典;
  • 添加音频表,根据音频提高未匹配词典时多音字准确度;
  • 添加Laravel的serviec provider.

Contribution

欢迎提意见及完善补充词库 src/Pinyin/data/additional.php! 💋

参考

License

MIT

About

基于词库的中文转拼音优质解决方案

Resources

License

Stars

Watchers

Forks

Packages

No packages published