亚洲乱色熟女一区二区三区丝袜,天堂√中文最新版在线,亚洲精品乱码久久久久久蜜桃图片,香蕉久久久久久av成人,欧美丰满熟妇bbb久久久

LOGO OA教程 ERP教程 模切知識交流 PMS教程 CRM教程 開發(fā)文檔 其他文檔  
 
網(wǎng)站管理員

C# 如何實(shí)現(xiàn)文本語音自動播報(bào)

admin
2024年6月28日 11:20 本文熱度 2017

前言

在項(xiàng)目中,偶爾會使用語音播報(bào)一些信息,提醒異?;蛳乱徊降牟僮鳌H缭趻呙枘硞€(gè)商品后,使用語音提示將其放在一號位等。在 C# 中如何實(shí)現(xiàn)將文本轉(zhuǎn)為語音并播報(bào),通過本文來了解其中的一種實(shí)現(xiàn)方式。

實(shí)現(xiàn)

.NET Framework 提供了 System.Speech 庫,通過它實(shí)現(xiàn)使用 Windows 系統(tǒng)的文字轉(zhuǎn)語音的播報(bào)功能。較為常見實(shí)現(xiàn)方式是使用 SpeechSynthesizer 類,也可以使用第三方語音合成庫。當(dāng)然對于.NET 5 以上是支持SpeechSynthesizer 類的,需要考慮使用其他第三方語音合成庫。
使用此法實(shí)現(xiàn)很簡單,在項(xiàng)目中添加 System.Speech 引用,然后可以使用 SpeechSynthesizer 實(shí)現(xiàn)文本的語音播報(bào)。

示例代碼一:簡單應(yīng)用

using System.Globalization;

using System.Linq;

using System.Speech.Synthesis;

using System.Threading.Tasks;

namespace Fountain.WinConsole.TextToSpeech

{

    /// <summary>

    /// 文本轉(zhuǎn)語音

    /// </summary>

    public class TextToSpeech

    {

        /// <summary>

        /// 播報(bào)

        /// </summary>

        /// <param name="rate">設(shè)置朗讀頻率 [范圍  -10 至 10] </param>

        /// <param name="volume">設(shè)置朗讀音量 [范圍 0 至 100] </param>

        /// <param name="speektext">播報(bào)文本</param>

        public static void Speaking(int rate, int volume, string speektext)

        {

            Task task = new Task(() =>

            {

                SpeechSynthesizer speechSynthesizer = new SpeechSynthesizer();

                speechSynthesizer.Volume = volume; 

                speechSynthesizer.Rate = rate;

                InstalledVoice installedVoice = speechSynthesizer.GetInstalledVoices(CultureInfo.CurrentCulture).FirstOrDefault();

                if (installedVoice != null)

                {

                    speechSynthesizer.SelectVoice(installedVoice.VoiceInfo.Name);

                    speechSynthesizer.Speak(speektext);

                }

            });

            task.Start();

        }

    }

}


using System;

namespace Fountain.WinConsole.TextToSpeech

{

    internal class Program

    {

        static void Main(string[] args)

        {

            TextToSpeech.Speaking(4,100,"歡迎關(guān)注dotNet開發(fā)技術(shù)分享");

            Console.ReadKey();

        }

    }

}

示例代碼二:文本轉(zhuǎn)音頻文件


using System.Globalization;

using System.Linq;

using System.Speech.Recognition;

using System.Speech.Synthesis;

using System.Threading.Tasks;

namespace Fountain.WinConsole.TextToSpeech

{

    /// <summary>

    /// 文本轉(zhuǎn)語音

    /// </summary>

    public class TextToSpeech

    {

        /// <summary>

        /// 文本轉(zhuǎn)語音文件

        /// </summary>

        /// <param name="rate">設(shè)置朗讀頻率 [范圍  -10 至 10] </param>

        /// <param name="volume">設(shè)置朗讀音量 [范圍 0 至 100] </param>

        /// <param name="speektext">播報(bào)文本</param>

        public static void SpeakingToFile(int rate, int volume, string speektext)

        {

            try

            {

                SpeechSynthesizer speechSynthesizer = new SpeechSynthesizer();

                speechSynthesizer.Volume = volume;

                speechSynthesizer.Rate = rate;

                InstalledVoice installedVoice = speechSynthesizer.GetInstalledVoices(CultureInfo.CurrentCulture).FirstOrDefault();

                if (installedVoice != null)

                {

                    speechSynthesizer.SetOutputToWaveFile(@"C:\1.wav");

                    speechSynthesizer.Speak(speektext);

                    speechSynthesizer.SetOutputToDefaultAudioDevice();

                }

            }

            catch

            {

            }

        }

    }

}


using System;

namespace Fountain.WinConsole.TextToSpeech

{

    internal class Program

    {

        static void Main(string[] args)

        {

            TextToSpeech.SpeakingToFile(4, 100, "歡迎關(guān)注dotNet開發(fā)技術(shù)分享");

            Console.ReadKey();

        }

    }

}

問題

使用 System.Speech 需要操作系統(tǒng)的支持,對于一些閹割版Windows 7或 10 是沒有這項(xiàng)功能的,這會使功能失效??梢酝ㄟ^重裝完整的系統(tǒng)或者修復(fù)其語音播報(bào)的功能。

小結(jié)

以上只是使用 .NET 提供的庫來實(shí)現(xiàn)文本轉(zhuǎn)語言播報(bào)的內(nèi)容,當(dāng)然現(xiàn)在有很多第三方語音庫,如Microsoft.CognitiveServices.Speech、訊飛、百度語音等。本文的內(nèi)容希望能為感興趣的伙伴提供參考,如有不到之處,請多多包涵。


該文章在 2024/6/28 11:20:34 編輯過
關(guān)鍵字查詢
相關(guān)文章
正在查詢...
點(diǎn)晴ERP是一款針對中小制造業(yè)的專業(yè)生產(chǎn)管理軟件系統(tǒng),系統(tǒng)成熟度和易用性得到了國內(nèi)大量中小企業(yè)的青睞。
點(diǎn)晴PMS碼頭管理系統(tǒng)主要針對港口碼頭集裝箱與散貨日常運(yùn)作、調(diào)度、堆場、車隊(duì)、財(cái)務(wù)費(fèi)用、相關(guān)報(bào)表等業(yè)務(wù)管理,結(jié)合碼頭的業(yè)務(wù)特點(diǎn),圍繞調(diào)度、堆場作業(yè)而開發(fā)的。集技術(shù)的先進(jìn)性、管理的有效性于一體,是物流碼頭及其他港口類企業(yè)的高效ERP管理信息系統(tǒng)。
點(diǎn)晴WMS倉儲管理系統(tǒng)提供了貨物產(chǎn)品管理,銷售管理,采購管理,倉儲管理,倉庫管理,保質(zhì)期管理,貨位管理,庫位管理,生產(chǎn)管理,WMS管理系統(tǒng),標(biāo)簽打印,條形碼,二維碼管理,批號管理軟件。
點(diǎn)晴免費(fèi)OA是一款軟件和通用服務(wù)都免費(fèi),不限功能、不限時(shí)間、不限用戶的免費(fèi)OA協(xié)同辦公管理系統(tǒng)。
Copyright 2010-2025 ClickSun All Rights Reserved