Skip to content

customPinyin v3.4.0+

pinyin-pro 内部导出了 customPinyin 方法,支持用户自定义设置词句拼音,当中文中匹配用户自己定义的词句拼音时,优先使用用户自定义的拼音。

示例

不使用自定义拼音

涉及到多音字时,部分复杂拼音或者人名等,可能识别不准确,例如你有个人名叫 张会(zhāng kuài)

js
import { pinyin } from 'pinyin-pro';

pinyin('他叫张会'); // 'tā jiào zhāng huì'
import { pinyin } from 'pinyin-pro';

pinyin('他叫张会'); // 'tā jiào zhāng huì'

使用自定义拼音

使用 customPinyin 方法,可以让你自己补充这部分识别不准确的拼音。

js
import { pinyin, customPinyin } from 'pinyin-pro';

customPinyin({
  张会: 'zhāng kuài',
});

pinyin('他叫张会'); // 'tā jiào zhāng kuài'
import { pinyin, customPinyin } from 'pinyin-pro';

customPinyin({
  张会: 'zhāng kuài',
});

pinyin('他叫张会'); // 'tā jiào zhāng kuài'

对 multiple 和 polyphonic 生效 v3.19.0+

通过在 customPinyin 的第二个参数中追加 multiplepolyphonic,可以使其对 multiplepolyphonic 生效。

multiplepolyphonic 的值为 add 时,字的拼音会在原基础上追加;为 replace 时,会直接覆盖掉原基础。

js
// 追加的示例
customPinyin({
  张会: 'zhāng huài',
}, {
  multiple: 'add',
  polyphonic: 'add',
});

pinyin('张', { multiple: true }); // 'zhāng' (原先就有张,无需额外追加)
pinyin('会', { multiple: true }); // 'huì kuài huài' (将 huài 追加进去)

polyphonic('张会'); // ["zhāng", "huì kuài huài"]
// 追加的示例
customPinyin({
  张会: 'zhāng huài',
}, {
  multiple: 'add',
  polyphonic: 'add',
});

pinyin('张', { multiple: true }); // 'zhāng' (原先就有张,无需额外追加)
pinyin('会', { multiple: true }); // 'huì kuài huài' (将 huài 追加进去)

polyphonic('张会'); // ["zhāng", "huì kuài huài"]
js
// 替换的示例
customPinyin({
  张会: 'zhāng huài',
}, {
  multiple: 'replace',
  polyphonic: 'replace',
});

pinyin('张', { multiple: true }); // 'zhāng' (替换为 zhāng)
pinyin('会', { multiple: true }); // 'huài' (替换为 huài)

polyphonic('张会'); // ["zhāng", "huài"]
// 替换的示例
customPinyin({
  张会: 'zhāng huài',
}, {
  multiple: 'replace',
  polyphonic: 'replace',
});

pinyin('张', { multiple: true }); // 'zhāng' (替换为 zhāng)
pinyin('会', { multiple: true }); // 'huài' (替换为 huài)

polyphonic('张会'); // ["zhāng", "huài"]

清除原自定义的数据 v3.19.0+

默认情况下,多次调用 customPinyin 补充的数据会累积叠加,可以调用 clearCustomDict 对原数据进行清除。

js
import { clearCustomDict } from 'pinyin-pro';

// 清除 pinyin api 自定义的数据
clearCustomDict('pinyin');
// 清除 pinyin api multiple 模式自定义的数据
clearCustomDict('multiple');
// 清除 polyphonic api 自定义的数据
clearCustomDict('polyphonic');
// 全部清除
clearCustomDict(['pinyin', 'multiple', 'polyphonic']);
import { clearCustomDict } from 'pinyin-pro';

// 清除 pinyin api 自定义的数据
clearCustomDict('pinyin');
// 清除 pinyin api multiple 模式自定义的数据
clearCustomDict('multiple');
// 清除 polyphonic api 自定义的数据
clearCustomDict('polyphonic');
// 全部清除
clearCustomDict(['pinyin', 'multiple', 'polyphonic']);

语法及参数

语法

ts
import { customPinyin, clearCustomDict } from 'pinyin-pro';

interface PinyinMap {
  [key: string]: string;
}

type CustomHandleType = 'add' | 'replace';

type CustomDictType = 'pinyin' | 'multiple' | 'polyphonic';

interface CustomPinyinOptions {
  multiple?: CustomHandleType;
  polyphonic?: CustomHandleType;
}

function customPinyin(map: PinyinMap, options?: CustomPinyinOptions);

function clearCustomDict(dict: CustomDictType | CustomDictType[]);
import { customPinyin, clearCustomDict } from 'pinyin-pro';

interface PinyinMap {
  [key: string]: string;
}

type CustomHandleType = 'add' | 'replace';

type CustomDictType = 'pinyin' | 'multiple' | 'polyphonic';

interface CustomPinyinOptions {
  multiple?: CustomHandleType;
  polyphonic?: CustomHandleType;
}

function customPinyin(map: PinyinMap, options?: CustomPinyinOptions);

function clearCustomDict(dict: CustomDictType | CustomDictType[]);

参数

  • map (必传):object 类型,自定义的拼音映射,key 为汉字字符串,value 为拼音。
  • options (可选):object 类型,设置是否对 multiple 和 polyphonic 生效以及生效方式。