中文操作

中文转拼音

Nuget 引用 Microsoft.PinYinConverter

Console.WriteLine("========== 示例:获取汉字的拼音 ==========");
Console.Write("输入一段话:");
var txt = Console.ReadLine();
var sb = new StringBuilder();
foreach (char t in txt)
{
    if (ChineseChar.IsValidChar(t))
    {
        if (t != txt.First())
            sb.Append(" ");

        var cCh = new ChineseChar(t);
        sb.Append(cCh.Pinyins.FirstOrDefault().Trim('1', '2', '3', '4', '5').ToLower());
    }
    else
    {
        sb.Append(t);
    }
}
Console.WriteLine("拼音是:" + sb.ToString());

ChineseChar类的其他用法

//1、静态方法:
//    ->GetCharCount(Inter16)        检索具有指定笔画数的字符个数。
//    ->GetChars(string)                返回具有相同的指定拼音的字符串列表
//    ->GetChars(Inter16)            返回具有指定笔画的所有汉字。           
//    ->GetHomophoneCount(string)    检索具有指定拼音的字符数。 
//    ->GetStrokeNumber(Char)        检索指定字符的笔画数。 
//    ->IsHomophone(Char, Char)        识别给出的两个字符是否是同音字。
//    ->IsValidChar(Char)            识别给出的字符串是否是一个有效的汉字字符。  
//    ->IsValidPinyin(String)        识别给出的拼音是否是一个有效的拼音字符串。 
//    ->IsValidStrokeNumber(Int16)    识别给出的笔画数是否是一个有效的笔画数。
//2、实例方法:
//    ->ChineseCharNew(Char)            ChineseChar类的构造函数。 
//    ->CompareStrokeNumber(Char)    将给出的字符和实例字符的笔画数进行比较。  
//    ->HasSound(String)                识别字符是否有指定的读音。 
//    -> IsHomophone(Char)            识别给出的字符是否是实例字符的同音字。
//3、实例属性:
//    ->ChineseCharacter                获取这个汉字字符。  
//    ->IsPolyphone                    获取这个字符是否是多音字。  
//    ->PinyinCount                    获取这个字符的拼音个数。 
//    ->StrokeNumber                    获取这个字符的笔画数

简繁转换

Nuget 引用 ChineseConverter

Console.WriteLine("========== 示例:汉字简繁转换 ==========");
Console.Write("采用简体输入一段话:");
txt = Console.ReadLine();
txt = ChineseConverter.Convert(txt, ChineseConversionDirection.SimplifiedToTraditional);
Console.WriteLine("繁体是:" + txt);
txt = ChineseConverter.Convert(txt, ChineseConversionDirection.TraditionalToSimplified);
Console.WriteLine("转换回来简体是:" + txt);

语音播放

引用 DotNetSpeech.dll

Console.WriteLine("========== 示例:汉字转语音 ==========");
Console.Write("输入一段话:");
txt = Console.ReadLine();
var voice = new SpVoice();
voice.Speak(txt, SpeechVoiceSpeakFlags.SVSFPurgeBeforeSpeak);

语音识别

知识点:目前大多数还是采用讯飞语音库


按笔画排序

string[] arr = { "蓉", "3", "1", "2", "孙", "c", "A", "b", "二愣子" };
// 笔画数 LCID:0x00020804
Thread.CurrentThread.CurrentCulture = new CultureInfo(0x20804);
Array.Sort(arr);
Console.WriteLine("按笔画排序结果:");
for (int i = 0; i < arr.Length; i++)
    Console.WriteLine($"[{i}]:	{arr[i]}");

按拼音排序

string[] arr = { "蓉", "3", "1", "2", "孙", "c", "A", "b", "二愣子" };
// 发音 LCID:0x00000804
Thread.CurrentThread.CurrentCulture = new CultureInfo(0x804);
Array.Sort(arr);
Console.WriteLine("按拼音排序结果:");
for (int i = 0; i < arr.Length; i++)
    Console.WriteLine($"[{i}]:	{arr[i]}");
原文地址:https://www.cnblogs.com/yokeqi/p/11895649.html