服务器之家:专注于VPS、云服务器配置技术及软件下载分享
分类导航

PHP教程|ASP.NET教程|Java教程|ASP教程|编程技术|正则表达式|C/C++|IOS|C#|Swift|Android|VB|R语言|JavaScript|易语言|vb.net|

服务器之家 - 编程语言 - C# - C#实现文本转语音功能

C#实现文本转语音功能

2023-02-24 14:55qq_32915337 C#

这篇文章主要为大家详细介绍了C#实现文本转语音功能,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

由于最近的工作需要用到文本转语音的功能,在网上找到的资料有些不完整,特此记录下整个完整功能。

这种方式的优点在于不会被浏览器限制,在js的文本转语音功能中,谷歌高版本的浏览器会阻止通过模拟点击的自动播放,而ie不会阻止.

 

一.确认研发环境

操作系统:win10或win7(我自己用的是win10 据说有些阉割版的win7会报错)

IDE:VS2012 (可高于此版本)

.NET framework 4.0(可高于此版本)

 

二.系统自带语音识别功能

1.C:\Windows文件夹下有Speech

2.控制面板有语音识别

C#实现文本转语音功能

 

三.DLL引用

1.选中要使用该功能的程序右键选择"添加引用"

2.选中"程序集"--"框架"下的System.Speech

C#实现文本转语音功能

 

四.代码

需要注意的是:

1.页面需要设置为异步

C#实现文本转语音功能

2.通过委托代理的方式调用,防止页面无响应

3.页面代码如下:

aspx:

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="yy.aspx.cs" Inherits="yy" Async="true" %>
 
<!DOCTYPE html>
 
<html xmlns="http://www.w3.org/1999/xhtml">
<head id="Head1" runat="server">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
    <title>文字转语音测试</title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
    <asp:Button ID="Button1" runat="server" Text="Button" OnClick="Button1_Click" />
    </div>
        
    </form>
</body>
</html>

aspx.cs:

using System;
using System.Collections.Generic;
using System.Globalization;
using System.Linq;
using System.Speech.Synthesis;
using System.Threading.Tasks;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
 
public partial class yy : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
 
    }
    /// <summary>
    /// 文字转语音
    /// </summary>
    /// <param name="content">语音内容</param>
    delegate void MyDelegate(string content);
    string content = "有新的订单,请及时处理";
    SpeechSynthesizer synthesizer = new SpeechSynthesizer(); //点击开始按钮 
 
    //开始朗读
    private void speakParagh(string text)
    {
        synthesizer.Speak(text);
    }
 
    //朗读结束后释放资源 
    private void Completed(IAsyncResult result)
    {
        synthesizer.SpeakAsyncCancelAll();
    }
 
    protected void Button1_Click(object sender, EventArgs e)
    {
        try
        {
            MyDelegate myDelegate = new MyDelegate(speakParagh); //异步调用委托 
            myDelegate.BeginInvoke(content, new AsyncCallback(Completed), null); //在启动异步线程后,主线程可以继续工作而不需要等待
        }
        catch (Exception ex)
        {
            Console.WriteLine("报错:" + ex.Message);
        }
    }
 
 
 
}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持服务器之家。

原文链接:https://blog.csdn.net/qq_32915337/article/details/123404503

延伸 · 阅读

精彩推荐
  • C#C#实现简易灰度图和酷炫HeatMap热力图winform(附DEMO)

    C#实现简易灰度图和酷炫HeatMap热力图winform(附DEMO)

    本文主要介绍了C#实现简易灰度图和酷炫HeatMap热力图winform(附DEMO),文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一...

    小康师兄9252022-12-12
  • C#c# WPF中的TreeView使用详解

    c# WPF中的TreeView使用详解

    这篇文章主要介绍了c# WPF中的TreeView使用详解,帮助大家更好的理解和学习使用c#技术,感兴趣的朋友可以了解下...

    Yhzwei7812022-11-08
  • C#C#无损压缩图片

    C#无损压缩图片

    本文主要介绍了C#无损压缩图片的相关知识。具有很好的参考价值。下面跟着小编一起来看下吧...

    漫天行3682021-12-31
  • C#如何掌握C#的核心技术

    如何掌握C#的核心技术

    C#是由伟大的程序员之神Anders Hejlsberg为体现.NET技术的优势而创造出来的一种优秀语言。说起Anders Hejlsberg虽然可能有的读者不太熟悉,但说起他创造的几种...

    DotNET技术圈3832021-07-28
  • C#C#中SQL参数传入空值报错解决方案

    C#中SQL参数传入空值报错解决方案

    这篇文章主要介绍了C#中SQL参数传入空值报错解决方案,需要的朋友可以参考下...

    邪心魔佛一页书11802022-01-07
  • C#浅谈static a[n*m]={0};中static的作用

    浅谈static a[n*m]={0};中static的作用

    下面小编就为大家带来一篇浅谈static a[n*m]={0};中static的作用。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧...

    C#教程网4302021-12-29
  • C#C#使用InstallerProjects打包桌面应用程序的完整步骤

    C#使用InstallerProjects打包桌面应用程序的完整步骤

    这篇文章主要给大家介绍了关于C#使用InstallerProjects打包桌面应用程序的完整步骤,文中通过示例代码介绍的非常详细,对大家学习或者使用C#具有一定的参...

    kiba5186822022-07-28
  • C#c# 实现发送邮件到指定邮箱

    c# 实现发送邮件到指定邮箱

    这篇文章主要介绍了c# 如何实现发送邮件到指定邮箱,帮助大家更好的理解和学习使用c#,感兴趣的朋友可以了解下...

    熊泽-学习中的苦与乐11922022-11-07