C#记事本语音实现

2023-10-31

语音播报

在Form窗体中实现语音播报

以下为实现类

using System;
using System.Collections.Generic;
using System.IO;
using System.Media;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Microsoft.DirectX;
using Microsoft.DirectX.DirectSound;
using System.Runtime.InteropServices;
namespace NetProgramTextEdit
{
    public class TtsUtil
    {
        private const string TTS_TMP_PATH = "voice_tmp.mp3";
        // 设置APPID/AK/SK
        private string APP_ID = "你的ID";
        private string API_KEY = "你的KEY";
        private string SECRET_KEY = "你的密钥";
        private Baidu.Aip.Speech.Tts client;
        public TtsUtil()
        {
            client = new Baidu.Aip.Speech.Tts(API_KEY, SECRET_KEY);
            client.Timeout = 60000;  // 修改超时时间
        }
        public static uint SND_ASYNC = 0x0001;
        public static uint SND_FILENAME = 0x00020000;
        [DllImport("winmm.dll")]
        public static extern uint mciSendString(string lpstrCommand, string lpstrReturnString, uint uReturnLength, uint hWndCallback);
        public void TtsPlay(string text)
        {
            // 可选参数
            var option = new Dictionary<string, object>(){
                {"spd", 5}, // 语速
                {"vol", 7}, // 音量
                {"per", 4}  // 发音人,4:情感度丫丫童声
             };
            var result = client.Synthesis(text, option);
            if (result.ErrorCode == 0)  // 或 result.Success
            {
                File.WriteAllBytes(TTS_TMP_PATH, result.Data);
                try
                {
                    mciSendString(@"close temp_music", " ", 0, 0);
                    mciSendString(@"open " + TTS_TMP_PATH + " alias temp_music", " ", 0, 0);
                    mciSendString(@"play temp_music", " ", 0, 0);
                }
                catch
                { }
                finally
                {
                    mciSendString("close media", "", 0, 0);
                }
                //Audio audio = new Audio(TTS_TMP_PATH);
                //audio.Play();
            }
        }
    }
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

C#记事本语音实现 的相关文章

  • 语言混合:模型和视图

    考虑开发一个应用程序 其中模型将使用 C 使用 Boost 编写 视图将使用 Objective C 使用 Cocoa Touch 编写 哪里有一些示例展示了如何集成 C 和 Objective C 来开发 iPhone 应用程序 直接从源
  • 实体框架中的重复键异常?

    我试图捕获当我将具有给定用户名的现有用户插入数据库时 引发的异常 正如标题所说 我正在使用 EF 当我尝试将用户插入数据库时 引发的唯一异常是 UpdateException 如何提取此异常以识别其是否是重复异常或其他异常 catch Up
  • 从 .Net 将简单数据插入 Excel 文件的最简单方法

    我有一个 Excel 文件 大约有 10 列和 1 20 行 我需要插入 1 20 行包含各种数据元素 我想知道是否有一种方法可以将一些标签放入 Excel 文件中 以便可以找到并替换它们 将列标记为 名称 的东西 这样我就可以在代码中说
  • C++ - 模板专业化和部分专业化

    我一直在互联网和 stackoverflow 上寻找具体的答案 但我似乎找不到 我必须创建一个通用类 然后实现特定的功能 我的具体说明是 您需要使用模板表达式参数以及模板类专业化和部分专业化 我有一个模板类 template
  • 此插件导致 Outlook 启动缓慢

    我正在使用 C NET 4 5 开发 Outlook Addin 项目 但部署后 有时 Outlook 会禁用我的插件 并显示此消息 这个插件导致 Outlook 启动缓慢 我不知道我的插件出了什么问题 这只有很少的代码 并且ThisAdd
  • 将语句插入 SQL Server 数据库

    最近几天我试图找到这个错误 但没有成功 我正在尝试在数据库中插入一个新行 一切都很顺利 没有错误 也没有程序崩溃 My INSERT声明如下 INSERT INTO Polozaj Znesek Uporabnik Cas Kupec Po
  • C++ 模板参数类型推断

    我有一个这样的C 模板 template
  • 未定义异常变量时通过引用捕获

    捕获异常时 标准指导是按值抛出 按引用捕获 据我了解 这有两个原因 如果由于内存不足异常而引发异常 我们将不会调用可能终止程序的复制构造函数 如果异常是继承层次结构的一部分 我们可能会对异常进行对象切片 如果我们有一个场景 我们没有在 ca
  • 首先EntityFramework数据库 - 类型映射 - 将binary(8)从SQL映射到C#中的int

    在 SQL 内部 我有一个主键为二进制 8 的表 当我使用该表添加到我的模型中时Update Model from Database我可以看到该列有 type Binary 在 C 中 我将该列设为byte 我可以将该列映射到 int 吗
  • 使用 Microsoft Graph 创建用户

    如何使用 Microsoft graph 创建用户 因为我在保存过程中遇到了权限失败的问题 我确实有几个问题 在图中调用创建用户 API 将在哪里创建用户 是在 Azure AD 还是其他地方 我尝试通过传递 json 和必需的标头来调用创
  • C++ 析构函数:何时释放内存?

    如果我删除一个导致其析构函数被调用的对象 那么内存是在析构函数完成函数中的任何操作之前还是之后被释放 仅当最小派生类子对象被销毁后才会释放内存 所以如果你有 class Base class Derived public Base publ
  • IClaimsTransformation 未触发

    我尝试过实施一个IClaimsTransformation我在 ASP NET CORE 3 1 Web 应用程序中找到的类 public class ClaimsTransformer IClaimsTransformation publ
  • 从 ef core 的子集合中删除一些项目

    我有一个父表和子表 其中父表与子表具有一对多关系 我想删除一些子项 并且希望父项的子集合反映该更改 如果我使用删除选定的子项RemoveRange 那么子集合不会更新 如果我使用Remove从子集合中删除子集合然后 显然 它不如使用效率高R
  • IBM Watson 对话服务错误:无法从“方法组”转换为“conversation.onMessage”

    我正在尝试运行 IBM Watson会话服务团结和下面是代码片段 https github com watson developer cloud unity sdk conversation private Conversation m C
  • IEnumerable.比带中断的 for 循环更快吗?

    我们的代码打开表单时遇到了一些缓慢的情况 这可能是由于for循环与break这需要很长时间才能执行 我把它切换到IEnumerable Any 并看到表格很快打开 我现在试图弄清楚是否单独进行此更改会提高性能 或者是否正在访问Product
  • .NET 的 HttpWebResponse 是否会自动解压缩 GZiped 和 Deflated 响应?

    我正在尝试执行一个接受压缩响应的请求 var request HttpWebRequest HttpWebRequest Create requestUri request Headers Add HttpRequestHeader Acc
  • 向每个收件人发送一封包含不同内容的电子邮件(使用抄送字段)

    在你因为这个问题 毫无意义 和 不可能 而驳回之前 请听我说完 问题 我们在使用我们的系统发送的每封电子邮件中实施跟踪像素 即具有唯一 URL 的可下载 GIF 文件 这有助于我们跟踪电子邮件的打开情况 问题是 当我们抄送一些收件人时 跟踪
  • 为什么从绑定返回的对象会忽略额外的参数?

    假设我有一个带有两个参数的函数 void f int x int y 我想绑定其中之一 我可以用std bind如下 auto partiallyBoundF std bind f 10 1 partiallyBoundF仅需要一个参数 但
  • Visual Studio 2015默认附加库

    当我在 VS 2015 中创建一个空项目时 它会自动将这些库放入 附加依赖项 中 kernel32 lib user32 lib gdi32 lib winspool lib comdlg32 lib advapi32 lib shell3
  • 如何获取通过网络驱动器访问的文件的 UNC 路径?

    我正在 VC 中开发一个应用程序 其中网络驱动器用于访问文件 驱动器由用户手动分配 然后在应用程序中选择驱动器 这会导致驱动器并不总是映射到相同的服务器 我该如何获取此类文件的 UNC 路径 这主要是为了识别目的 这是我用来将普通路径转换为

随机推荐

  • winidows下安装pytorch报PackageNotFoundError:cudatoolkit错误的解决方法

    今天给新电脑装pytorch的时候查到MX450驱动的CUDA版本是11 1 于是兴冲冲跑去pytorch官网找到安装命令准备安装 pytorch官网告诉我命令是这个 conda install pytorch torchvision to
  • 在AIX系统下搭建一个全新的weblogic服务器

    weblogic服务器作为付费服务器 在各个行业中的使用还是相当广泛的 尤其在金融行业 使用的很多都是weblogic服务器 毕竟 有钱任性 那么在工作的时候肯定会有小伙伴遇到过要自己搭建weblogic服务器的情况 这里整理下本人搭建we
  • Echarts—词云库(echarts-wordcloud)配置详解和使用(可自定义形状)

    词云库的详解 前言 安装 基本配置详解 具体使用步骤 Vue为例 自定义展示形状 前言 我们经常会看到一些网站或者页面有一堆五颜六色的词汇的聚在一块 有大有小的散落着 看着挺好看的 也许项目中也会涉及到显示一些关键词之类的需求 这个时候也可
  • springboot整合eureka

    服务端 1 maven依赖 注意springboot和springcloud的版本对应
  • 三层交换机配置静态路由

    一 建立拓扑图 二 配置主机IP地址 网关 主机号 IP地址 网关 PC 0 192 168 10 101 192 168 10 1 PC 1 192 168 20 101 192 168 20 1 PC 2 192 168 30 101
  • c语言实现的最简单log debug

    我们在些简单的c原因程序时 如果打印log 用专用的log不划算 这个时候可以采用下面简单的log Name debug h Purpose general debug system Copyright C 2014 wowotech Su
  • 指标体系、原子指标和衍生指标

    指标 是一个可以量化目标事物多少的数值 有时候也称为度量 如 DNU 留存率等都是指标 原子指标和衍生指标 按照个人的理解 不加任何修饰词的指标就是原子指标 也叫度量 一般存在于olap表中 例如订单量 用户量的等等 而在原子指标上进行加减
  • 运放电流检测采样电路电压采样电路

    输入输出电压检测 输入输出电压通过运放LMC6482采用差分电路将输出电压按比例缩小至ADC能够采样的范围 再使用ADC采样 软件解算出输出电压 输入电压采样是通过MCU内部运放按比例缩小在送到ADC进行采样的 具体电路如图3 5 1所示
  • R数据处理包plyr:超越apply函数族的向量化运算

    R有着强大而又丰富的数据处理能力 除了一些常用的基础数据处理函数之外 R还为我们提供了大量以实现不同的数据处理功能的扩展包 关注小编公众号的朋友应该还记得之前曾写过一篇关于R向量化运算的 apply函数族的文章 对于日常数据处理工作而言 可
  • flask模块mock接口(二)

    目录 一 获取请求传入数据 二 服务端回话保持 1 通过cookie实现回话保持 2 通过session实现回话保持 一 获取请求传入数据 1 模块 from flask import request 2 方法 method 获取客户端提交
  • NG Model

    组件传值双向绑定 output绑定事件 由组件绑定事件EventEmitter向父组件传输信息 属性名 属性后缀Change 是约定的固定写法 child component html h1 status in child childSta
  • LESS命令简单介绍以及使用

    LESS命令简单介绍以及使用 http www cnblogs com molao doing articles 6541455 html b 缓冲区大小 设置缓冲区的大小 e 当文件显示结束后 自动离开 f 强迫打开特殊文件 例如外围设备
  • 微积分的前世今生

    参考链接 你也能懂的微积分 微积分 顾名思义 简单来说可以分为微分和积分 下面先说说积分 简单来说 积分是用来求面积的 毕竟积分的 积 和面积的 积 是同一个字 而 分 可以理解为方法 所以积分就是用来求面积的 参看百度百科的定义 也是这个
  • (三)Python3 NLTK(Natural Language Toolkit)安装和下载的常见问题

    NLTK Python自然语言工具包 用于诸如标记化 词形还原 词干化 解析 POS标注等任务 该库具有几乎所有NLP任务的工具 1 安装nltk pip install nltk 不要像一开始我一样傻傻的以为pip完就结束啦 2 进入py
  • Spring Security升级到5.7.x

    Spring Security升级到5 7 x 问题描述 WebSecurityConfigurerAdapter类是Spring Security中经常使用到的一个类 用于快速配置WebSecurity 在升级到5 7版本后这个类被废弃掉
  • Java 中如何避免循环引用,解决相互依赖的问题

    Java 中如何避免循环引用 解决相互依赖的问题 返回数据存在 r e f ref ref data 的问题 FastJSON
  • Vue+TS+Element-plus项目

    目录 后台管理系统实现 1 项目搭建 1 创建项目 2 启动项目 3 搭建第三方库element plus 1 安装 2 完整引入 3 按需导入 2 登录页面 1 下载插件 2 配置路由 3 样式配置 4 设置背景图片 5 表单展示 6 使
  • 【Ubuntu搭建MQTT Broker及面板+发布消息、订阅主题】

    Ubuntu搭建MQTT Broker及面板 发布消息 订阅主题 配置curl数据源 curl s https assets emqx com scripts install emqx deb sh sudo bash 开始安装 sudo
  • Pytorch学习——入门实例(六)torch.optmi使用更加复杂的优化器(RMSprop)实现网络的反向传播

    Pytorch optim 使用更加复杂的优化器 AdaGrad RMSProp Adam 在pytorch中 optim包提供了常用的优化函数 接下来的例子 使用RMSProp来优化网络 import torch import math
  • C#记事本语音实现

    语音播报 在Form窗体中实现语音播报 以下为实现类 using System using System Collections Generic using System IO using System Media using System