中文转拼音
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]}");