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#记事本语音实现 的相关文章

随机推荐

  • 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