NVDA、争渡读屏语音开放API接口
什么是读屏软件?
读屏软件是一种专为视力障碍人士设计的,能够辅助视障人士操作计算机的工具,它可以将屏幕上显示的内容用语音朗读出来,这样视障人士就可以正常使用电脑了。
知名的屏幕阅读软件国内有争渡读屏、阳光读屏等,其中争渡读屏在国内最受欢迎,有免费的公益版。
国外有完全免费开源的NVDA,Windows 系统内置的讲述人(narrator)等。
目前争渡读屏和NVDA开放了语音接口,也就是说,开发者可以主动调用争渡或NVDA的语音接口朗读文本。
软件可以调用屏幕阅读器朗读信息,不仅仅是屏幕阅读器被动获取要朗读的内容。
本文主要采用C#演示争渡读屏和NVDA语音接口调用示例。
一、争渡读屏()
下载地址:http://zdsr.com/
争渡读屏语音接口可以让应用程序发送文本给争渡读屏进行朗读。
采用Win32DLL调用方式。
应用程序把接口dll放入自己应用目录下调用即可使用。
DLL可以在争渡读屏安装目录"C:\Program Files (x86)\zdsr\zdsr"获得。
32位接口:ZDSRAPI.dll;
64位接口:ZDSRAPI_x64.dll;
1.初始化语音接口
int WINAPI InitTTS(int channelType, WCHAR* channelName)
参数:
[in] int channelType: 0 读屏通道 1 独立通道,传入0;
[in] WCHAR* channelName 独立通道名称, channelType 0时传入NULL忽略
返回值:
0:成功
1:版本不匹配
2.朗读文本
int WINAPI Speak(WCHAR* text, BOOL bInterrupt)
参数:
[in] WCHAR* text: 要朗读的文本,Unicode
[in] BOOL bInterrupt: TRUE:清空排队,立刻打断朗读, FALSE:等待空闲时朗读
返回值:
0: 成功
1: 版本不匹配
2: ZDSR没有运行
3.获取朗读状态
int WINAPI GetSpeakState()
返回值:
1: 版本不匹配
2: ZDSR没有运行
3: 正在朗读
4: 没有朗读
4.停止朗读
void WINAPI StopSpeak()
返回值: void
C#平台调用声明如下(请将DLL放在应用程序同目录下的API文件夹内):
[DllImport(@"api\zdsrapi.dll", CharSet = CharSet.Unicode, EntryPoint = "InitTTS")] extern public static int ZD_InitTTS(int channelType, string channelName);
[DllImport(@"api\zdsrapi.dll", CharSet = CharSet.Unicode, EntryPoint = "Speak")] extern public static int ZD_Speak(string text, bool interrupt = true);
[DllImport(@"api\zdsrapi.dll", EntryPoint = "GetSpeakState")] extern public static int ZD_GetSpeakState();
[DllImport(@"api\zdsrapi.dll", EntryPoint = "StopSpeak")] extern public static void ZD_StopSpeak();
二、NVDA
NVDA屏幕阅读器下载:https://nvaccess.org/
语音SDK下载(内涵C#、Python、C/C++调用示例): https://share.weiyun.com/hzalIHPU
此 API 允许应用程序向 NVDA 通信,以便执行诸如朗读文本或输出盲文等功能。
API 以 dll(动态链接库)的形式提供。此 dll 中的功能可以从支持查找和调用 dll 中任何符号的任何编程语言(如 Python 中的 ctys)或链接到 dll 中的任意编程语言中调用,用于 C、C++和C#等语言。
C#调用示例(请将DLL放在应用程序同目录下的API文件夹内并改名为"NVDASpeech.dll"):
[DllImport(@"api\NvdaSpeech.dll", CharSet = CharSet.Unicode)] public static extern int nvdaController_brailleMessage(string message); // 调用NVDA输出盲文
[DllImport(@"api\NvdaSpeech.dll")] public static extern int nvdaController_cancelSpeech(); // 停止 NVDA 朗读
[DllImport(@"api\NvdaSpeech.dll", CharSet = CharSet.Unicode)] public static extern int nvdaController_speakText(string text); // 调用 NVDA 朗读文本
[DllImport(@"api\NvdaSpeech.dll")] public static extern int nvdaController_testIfRunning(); // 检查 NVDA 是否运行(返回 0 表示NVDA处于运行中)
NVDA、争渡读屏语音开放API接口的更多相关文章
- 开放API接口
[开放API]——知乎.博客园等开放API接口(更新ing) Cnodejs.org: https://cnodejs.org/api/ 和风天气: http://docs.heweather.c ...
- 开放API接口安全处理!
目录 概念 加密 MD5 Token 开放api参数 重复提交,恶意调用 日志 验证码 开放API接口安全处理! 参考文献: 公钥,私钥和数字签名这样最好理解 (转载) 概念 存在问题: 数据窃取 数 ...
- 开放API接口安全处理
一.开放API接口定义 顾名思义,开放出来给其他人调用的API接口就是开放API接口.例如,短信接口.邮件接口. 二.开放API的弱点 数据窃取 用户的密码等信息被不轨之人窃取,登录账号发布敏感信息, ...
- 开放api接口签名验证
不要急,源代码分享在最底部,先问大家一个问题,你在写开放的API接口时是如何保证数据的安全性的?先来看看有哪些安全性问题在开放的api接口中,我们通过http Post或者Get方式请求服务器的时候, ...
- 【转】开放api接口签名验证
不要急,源代码分享在最底部,先问大家一个问题,你在写开放的API接口时是如何保证数据的安全性的?先来看看有哪些安全性问题在开放的api接口中,我们通过http Post或者Get方式请求服务器的时候, ...
- 新浪网易淘宝等IP地区信息查询开放API接口调用方法
通过IP地址获取对应的地区信息通常有两种方法:1)自己写程序,解析IP对应的地区信息,需要数据库.2)根据第三方提供的API查询获取地区信息. 第一种方法,参见文本<通过纯真IP数据库获取IP地 ...
- 准备开发开放API接口
准备开发APP开放接口,允许JQUERY直接调用http://blog.csdn.net/wuxiangege/article/details/52238968 SIGN的设计与实现http://bl ...
- 远程开户系统开放API接口
如今随着智能识别技术的成熟和商用,金融领域也开始逐渐试水"远程开户".从OCR身份证识别到人脸识别,到如今市场上即将出现完整的远程开户系统,除了需要成熟的技术做支撑外,还需要对市场 ...
- springcloud提供开放api接口签名验证
一.MD5参数签名的方式 我们对api查询产品接口进行优化: 1.给app分配对应的key.secret 2.Sign签名,调用API 时需要对请求参数进行签名验证,签名方式如下: a. 按照请求参数 ...
随机推荐
- Flowable实战(五)表单和流程变量
一.流程变量 流程实例按步骤执行时,需要保存并使用一些数据,在Flowable中,这些数据称为变量(variable). 流程实例可以持有变量,称作流程变量(process variables ...
- Keil MDK STM32系列(四) 基于抽象外设库HAL的STM32F401开发
Keil MDK STM32系列 Keil MDK STM32系列(一) 基于标准外设库SPL的STM32F103开发 Keil MDK STM32系列(二) 基于标准外设库SPL的STM32F401 ...
- 【Java】泛型
文章目录 泛型 为什么要有泛型 在集合中使用泛型 如何自定义泛型结构 自定义泛型类.接口 泛型方法 泛型在继承方面的体现 通配符的使用 有限制条件的通配符的使用 泛型 为什么要有泛型 集合容器类在设计 ...
- 【刷题-LeetCode】204. Count Primes
Count Primes Count the number of prime numbers less than a non-negative number, *n*. Example: Input: ...
- 从零开始, 开发一个 Web Office 套件 (1): 富文本编辑器
这是一个系列博客, 最终目的是要做一个基于HTML Canvas 的, 类似于微软 Office 的 Web Office 套件, 包括: 文档, 表格, 幻灯片... 等等. 富文本编辑器 万里长征 ...
- 阿里巴巴如何进行测试提效 | 阿里巴巴DevOps实践指南
编者按:本文源自阿里云云效团队出品的<阿里巴巴DevOps实践指南>,扫描上方二维码或前往:https://developer.aliyun.com/topic/devops,下载完整版电 ...
- IDEA中导入Maven工程(module)
导入其它Maven工程时可能会出现依赖代码变红等等可以重新导入 右键pom.xml文件 --->Maven---->Reimport ,idea强制刷新内容,一般能解决依赖没有识别的问题 ...
- postgresql安装(windows)
官网: https://www.postgresql.org/ 下载页面:https://www.enterprisedb.com/downloads/postgres-postgresql-down ...
- MySql下载与安装(部署)
一:MySQL介绍 1.MySQL简介 MySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,目前属于 Oracle 旗下公司.MySQL 最流行的关系型数据库管理系统,在 WEB ...
- MySQL开发篇,存储引擎的选择真的很重要吗?
前言 谁说MySQL查询千万级别的数据很拉跨?我今天就要好好的和你拉拉家常,畅谈到深夜,一起过除夕!这篇文章也是年前的最后一篇,希望能带给大家些许收获,不知不觉查找文档和参考实体书籍就写了这么多,自己 ...