C# 使用Microsoft Speech朗读文本

本文介绍了如何使用C#结合Microsoft Speech API实现文本朗读功能,特别是在外语朗读方面。作者在与外国友人交流时,借助该技术提升听力理解。文章详细阐述了从环境配置到编写MSSpeechTools.cs包装类,再到测试和最终集成到BackupSupport应用的过程。
摘要由CSDN通过智能技术生成
问题描述

最近经常和外国友人网上聊天,可惜我外语很蹩脚,只能通过翻译软件和他们交流。但是我外语听说读写中的听力很强,英语和日语基本能听懂。在这种情况下我希望有一种便捷的方式来直接朗读我选中的外文文本。

解决方案

我最先考虑的是Google翻译的API,但是碍于资料太少只好作罢。之后我找到Microsoft Speech,相较于其他一些方案配置简单而且资料丰富,也不用科学上网,采用!

我的目标是这样,选中文本后使用BackupSupport的辅助菜单调用一个程式按指定语言朗读。
这里写图片描述
为了应对一些焦点转移问题,当没有选中文本时,直接朗读剪切板中的内容。

动工前首先需要安装MicrosoftSpeechPlatformSDK和MSSpeech TTS来配置开发环境和运行环境,这方面直接Microsoft官网搜一下就好了,多说无益。

配置完环境后先写一个MSSpeech的包装类,直接放代码

MSSpeechTools.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using SpeechLib;
using ZTools;

namespace MSSpeechTest {
    public class MSSpeechTools {
        /// <summary>
        /// 获取安装的所有的Voice的Id列表
        /// </summary>
        /// <returns></returns>
        public static List<string> GetInstalledVoiceIdList() {
            List<string> resultList = new List<string>();
            try {
                SpVoice voice = new SpVoice();
                ISpeechObjectTokens ss = voice.GetVoices(string.Empty, string.Empty);
                if (ss != null && ss.Count > 0) {
                    for (int i = 0; i < ss.Count; i++) {
                        resultList.Add(ss.Item(i).Id);
                    }
                }
            } catch (Exception) {
            }
            return resultList;
        }

        /// <summary>
        /// 根据指定Voice Tag选择Voice朗读文本
        /// 会简单进行Voice名的匹配
        /// </summary>
        /// 
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值