要在C#中使用SpeechSynthesizer類支持多語言,您需要執行以下步驟:
首先,確保已安裝SAPI5(Speech Application Programming Interface 5)的計算機上安裝了所需的語言包。對于.NET Framework應用程序,您需要引用特定的程序集。這些程序集通常位于以下路徑之一:
對于.NET Core或.NET 5/6/7應用程序,您需要從Microsoft的Speech SDK GitHub存儲庫下載并安裝適用于所選平臺的 Speech SDK。
在您的C#項目中,引用System.Speech
命名空間。對于.NET Framework項目,請添加對System.Speech
的引用。對于.NET Core或.NET 5/6/7項目,在.csproj
文件中添加以下代碼:
<PackageReference Include="System.Speech" Version="10.0.1" />
創建一個SpeechSynthesizer
對象,并使用SetVoiceByLanguage
方法設置要使用的語音。例如,要使用英語(美國)語音,請執行以下操作:
using System;
using System.Speech.Synthesis;
class Program
{
static void Main()
{
SpeechSynthesizer synthesizer = new SpeechSynthesizer();
synthesizer.SetVoiceByLanguage("en-US");
synthesizer.Speak("Hello, this is a message in English.");
}
}
若要更改語音語言,只需將SetVoiceByLanguage
方法的參數更改為所需的語言代碼。例如,要使用法語(法國)語音,請使用"fr-FR"
作為參數。有關可用語言代碼的完整列表,請參閱此處。
若要根據用戶選擇的語言動態更改語音,您可以獲取用戶的首選語言,然后使用相應的語言代碼調用SetVoiceByLanguage
方法。例如:
using System;
using System.Globalization;
using System.Speech.Synthesis;
class Program
{
static void Main()
{
SpeechSynthesizer synthesizer = new SpeechSynthesizer();
Console.WriteLine("Enter your preferred language code (e.g., 'en-US' for English):");
string languageCode = Console.ReadLine();
synthesizer.SetVoiceByLanguage(languageCode);
synthesizer.Speak("Hello, this is a message in the selected language.");
}
}
通過遵循這些步驟,您的C#應用程序現在應該能夠使用多種語言進行語音合成。