欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

C#實現(xiàn)語音播報功能的示例詳解

 更新時間:2024年02月01日 10:17:18   作者:wangyue4  
這篇文章主要為大家詳細(xì)介紹了如何使用C#實現(xiàn)語音播報功能,文中的示例代碼講解詳細(xì),具有一定的借鑒價值,有需要的小伙伴可以參考一下

在C#中進(jìn)行語音播報通常需要使用.NET Framework中的某個語音庫或服務(wù)。一個常見的選擇是使用System.Speech.Synthesis命名空間中的SpeechSynthesizer類,該類提供了文本到語音的轉(zhuǎn)換功能。

以下是一個簡單的示例,演示如何在C#中使用SpeechSynthesizer進(jìn)行語音播報:

using System;
using System.Speech.Synthesis;
 
class Program
{
    static void Main()
    {
        // 創(chuàng)建SpeechSynthesizer實例
        using (SpeechSynthesizer synth = new SpeechSynthesizer())
        {
            // 設(shè)置語音合成引擎的聲音
            synth.SelectVoiceByHints(VoiceGender.Female, VoiceAge.Adult);
 
            // 播報文本
            string textToSpeak = "Hello, this is a test. I am speaking in C#.";
            synth.Speak(textToSpeak);
 
            Console.WriteLine("Speech completed.");
        }
    }
}

請確保在你的項目中引用了System.Speech程序集。你可以在Visual Studio中通過右鍵單擊項目 -> 添加 -> 引用 -> 程序集 -> 框架 -> System.Speech 來添加引用。

注意:System.Speech.Synthesis在.NET Core中不是默認(rèn)支持的庫。如果你的項目是基于.NET Core,請考慮使用其他第三方語音合成庫,例如Microsoft.CognitiveServices.Speech SDK或其他可用的庫。

使用 Cognitive Services Speech SDK 進(jìn)行語音播報:

安裝 Microsoft.CognitiveServices.Speech NuGet 包: 在你的項目中安裝 Microsoft.CognitiveServices.Speech NuGet 包。你可以在 Visual Studio 中通過右鍵單擊項目 -> 添加 -> NuGet 包管理器 -> 管理 NuGet 包來完成。

使用 Speech SDK 進(jìn)行語音播報: 在代碼中,你可以使用如下方式:

using System;
using Microsoft.CognitiveServices.Speech;
using System.Threading.Tasks;
 
class Program
{
    static async Task Main()
    {
        // 替換為你的 Cognitive Services Speech API 密鑰和區(qū)域
        var apiKey = "YourSpeechApiKey";
        var region = "YourSpeechApiRegion";
 
        var config = SpeechConfig.FromSubscription(apiKey, region);
        using var synthesizer = new SpeechSynthesizer(config);
 
        // 播報文本
        var textToSpeak = "Hello, this is a test. I am speaking in .NET Core.";
        var result = await synthesizer.SpeakTextAsync(textToSpeak);
 
        if (result.Reason == ResultReason.SynthesizingAudioCompleted)
        {
            Console.WriteLine("Speech completed.");
        }
        else
        {
            Console.WriteLine($"Speech synthesis failed: {result.Reason}");
        }
    }
}

確保替換 YourSpeechApiKey 和 YourSpeechApiRegion 為你的 Cognitive Services Speech API 的實際密鑰和區(qū)域。

這個示例使用了異步操作,因此 Main 方法聲明為 async Task。請注意,使用云服務(wù)需要網(wǎng)絡(luò)連接,并且可能會涉及使用費用,具體取決于你的使用情況。

知識補充

除了上文的方法,小編還為大家整理了其他C#實現(xiàn)語音播報的方法,希望對大家有所幫助

方法一

1、首先要安裝語音包Microsoft Speech SDK 5.1

2、引用 Interop.SpeechLib.dll

3、然后以下代碼即可

SpeechVoiceSpeakFlags flag = SpeechVoiceSpeakFlags.SVSFlagsAsync;
SpVoice voice = new SpVoice();
voice.Rate = 1;//語速
voice.Volume = 100;//音量
voice.Voice = voice.GetVoices(string.Empty, string.Empty).Item(0);//Item(0)中文、Item(3)英文
voice.Speak("語音播報", flag);

方法二

 List<string> ls_speack = new List<string>();
 
 
   public void Speaking()
    {
        Task task = new Task(() =>
        {
            while (true)
            {
                Thread.Sleep(100);
                if (ls_speack.Count == 0)
                {
                    continue;
                }
                SpeechSynthesizer speech = new SpeechSynthesizer();
                speech.Volume = 100; //音量
                CultureInfo keyboardCulture = System.Windows.Forms.InputLanguage.CurrentInputLanguage.Culture;
                InstalledVoice neededVoice = speech.GetInstalledVoices(keyboardCulture).FirstOrDefault();
                if (neededVoice == null)
                {
                    //say = "未知的操作";
                }
                else
                {
                    speech.SelectVoice(neededVoice.VoiceInfo.Name);
                }
                for (int k = 0; k < ls_speack.Count; k++)
                {
                    Thread.Sleep(100);
                    speech.Speak(ls_speack[k]);
                }
                ls_speack = new List<string>();
            }
 
        });
        task.Start();
    }
 
 
    public static void Speaking(string saying)
    {
        string say = saying;
        Task task = new Task(() =>
        {
            SpeechSynthesizer speech = new SpeechSynthesizer();
            speech.Volume = 100; //音量
            CultureInfo keyboardCulture = System.Windows.Forms.InputLanguage.CurrentInputLanguage.Culture;
            InstalledVoice neededVoice = speech.GetInstalledVoices(keyboardCulture).FirstOrDefault();
            if (neededVoice == null)
            {
                say = "未知的操作";
            }
            else
            {
                speech.SelectVoice(neededVoice.VoiceInfo.Name);
            }
 
            speech.Speak(say);
        });
        task.Start();
    }

到此這篇關(guān)于C#實現(xiàn)語音播報功能的示例詳解的文章就介紹到這了,更多相關(guān)C#語音播報內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • C#中計數(shù)排序算法的原理及實現(xiàn)

    C#中計數(shù)排序算法的原理及實現(xiàn)

    計數(shù)排序是一種線性時間復(fù)雜度的排序方法,主要通過統(tǒng)計元素出現(xiàn)的次數(shù)實現(xiàn)排序,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2024-10-10
  • C#中比較兩個List是否相等的常見方法

    C#中比較兩個List是否相等的常見方法

    在?C#?里,比較兩個?List?是否相等,需要考慮多個方面,例如列表中的元素順序、元素本身是否相等,下面介紹幾種常見的比較方法,需要的朋友可以參考下
    2025-04-04
  • C#用戶控件之溫度計設(shè)計

    C#用戶控件之溫度計設(shè)計

    這篇文章主要為大家詳細(xì)介紹了C#用戶控件之溫度計的設(shè)計方法,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-03-03
  • 使用C#校驗畫布簽名圖片是否為空白

    使用C#校驗畫布簽名圖片是否為空白

    這篇文章主要為大家詳細(xì)介紹了如何使用C#校驗畫布簽名圖片是否為空白,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2024-11-11
  • unity avprovideo插件的使用詳解

    unity avprovideo插件的使用詳解

    這篇文章主要介紹了unity avprovideo插件的使用詳解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-04-04
  • C#泛型委托的用法實例分析

    C#泛型委托的用法實例分析

    這篇文章主要介紹了C#泛型委托的用法,以實例形式較為詳細(xì)的分析了C#委托的功能與相關(guān)使用技巧,需要的朋友可以參考下
    2015-05-05
  • Unity自定義編輯器界面(Inspector界面)

    Unity自定義編輯器界面(Inspector界面)

    這篇文章主要為大家詳細(xì)介紹了Unity自定義編輯器界面,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-09-09
  • c#實現(xiàn)輸出本月的月歷

    c#實現(xiàn)輸出本月的月歷

    本篇文章是對使用c#輸出本月月歷的實現(xiàn)的代碼進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下
    2013-06-06
  • C# FileStream實現(xiàn)大文件復(fù)制

    C# FileStream實現(xiàn)大文件復(fù)制

    這篇文章主要為大家詳細(xì)介紹了C# FileStream實現(xiàn)大文件復(fù)制,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-05-05
  • C#將指定目錄所有文件名轉(zhuǎn)換成小寫的方法

    C#將指定目錄所有文件名轉(zhuǎn)換成小寫的方法

    這篇文章主要介紹了C#將指定目錄所有文件名轉(zhuǎn)換成小寫的方法,涉及C#中目錄的遍歷及filename.ToLowerInvariant方法的使用技巧,非常具有實用價值,需要的朋友可以參考下
    2015-04-04

最新評論