当前位置: 首页 > news >正文

微软语音使用小计

简介

使用微软语音可以实现语音转文字和文字转语音。测试了下,使用还是挺方便的。

使用微软语音有两种方式。一种是使用命令行的形式,另一种是调用SDK的方式。

适合使用语音 CLI 的情况:

  • 想在极少设置且无需编写代码的情况下试验语音服务功能。
  • 对使用语音服务的生产应用程序的要求相对简单。

适合使用语音 SDK 的情况:

  • 需要在特定语言或平台(如 C#、Python 或 C++)中集成语音服务功能。
  • 你有可能需要高级服务请求的复杂需求。
  • 你要开发自定义行为,包括响应流。

语音CLI

语音 CLI 是一种命令行工具,用于在不编写任何代码的情况下使用语音服务。 语音 CLI 需要的设置很少。

核心功能

        语音识别:将音频文件中的或直接将麦克风语音转换为文本,或转录录制的对话。

        语音合成:将文本文件中输入的文本或直接来自于命令行的输入文本转换为语音。 使用语音合成标记语言 (SSML) 配置自定义语音输出特征。

        语音翻译:将源语言的音频翻译为目标语言的文本或音频。

        在 Azure 计算资源上运行:使用 spx webjob 发送语音 CLI 命令以在 Azure 远程计算资源上运行。

使用说明
下载安装

第一步下载安装: Microsoft Visual C++ Redistributable for Visual Studio 2019

第二步下载安装: .NET 6

第三步下载安装语音插件:

命令行安装

dotnet tool install --global Microsoft.CognitiveServices.Speech.CLI

命令行更新

dotnet tool update --global Microsoft.CognitiveServices.Speech.CLI

配置账户

假定你已经申请了账户,如果没有可以到Microsoft Azure 门户 | Microsoft Azure注册试用账户

//这里使用cmd控制台配置账户到当前路径

spx config @key --set SPEECH-KEY
spx config @region --set SPEECH-REGION

//查看配置信息

spx config @key
spx config @region

//删除配置信息

spx config @key --clear
spx config @region --clear

使用

//查看帮助

spx

//查看指定主题的帮助信息

spx help find --topics "examples"

语音转文本

//识别麦克风输入的音频,运行该命令后,SPX 开始在当前活动的输入设备上侦听音频。 当你选择 Enter 时,SPX 将停止侦听。 然后,语音音频将被识别并转换为控制台输出中的文本

spx recognize --microphone

//将指定音频文件转为文本输出

spx recognize --file /path/to/file.wav

文本转语音

//以下命令会将文本作为输入,然后将合成的语音输出到当前活动的输出设备(例如计算机扬声器)

spx synthesize --text "Testing synthesis using the Speech CLI" --speakers

//你还可将合成的输出保存到文件中。 在此示例中,我们可以在运行命令的目录中创建一个名为 my-sample 的文件

spx synthesize --text "Enjoy using the Speech CLI." --audio output my-sample.wav

//获取语音列表

spx synthesize --voices

//使用指定语音输出

spx synthesize --text "Bienvenue chez moi." --voice fr-FR-AlainNeural --speakers

语音到文本的转换

//借助语音 CLI,你还可以执行语音到文本的转换。 运行以下命令,可从默认的麦克风捕获音频,并以文本形式输出转换。 记住,你需要通过 translate 命令提供 source 和 target 语言

spx translate --microphone --source en-US --target ru-RU

将语音翻译成多种语言时,请用分号 (;)分隔语言代码

spx translate --microphone --source en-US --target 'ru-RU;fr-FR;es-ES'

如果要保存转换的输出,请使用 --output 标志。 在本例中,还可以从文件中进行读取

spx translate --file /some/file/path/input.wav --source en-US --target ru-RU --output file /some/file/path/russian_translation.txt

官方说明文档:如何基于文本合成语音 - 语音服务 - Azure AI services | Microsoft Learn

相关文章:

  • C#编程-.NET Framework使用工具类简化对象之间的属性复制和操作
  • markdown 文件渲染工具推荐 obsidian publish
  • PMP 学习笔记(增量更新中)
  • OpenCV:入门(五)
  • 浅谈后端整合Springboot框架后操作基础配置
  • 比特米盒2代刷入ARMBIAN
  • VC++位移操作>>和<<以及逻辑驱动器插拔产生的掩码dbv.dbcv_unitmask进行分析的相关代码
  • Linux--09---RPM 、YUM
  • MariaDB 给指定列值自动加密(持久数据加触发器)
  • Python筑基之旅-MySQL数据库(三)
  • C++进阶:C++11(列表初始化、右值引用与移动构造移动赋值、可变参数模版...Args、lambda表达式、function包装器)
  • 重学java 42.多线程 等待唤醒机制案例分析
  • nacos-opera(k8s)安装问题解决
  • input输入多行文本,保存为.dot文件和对应的.txt文件
  • 智能合约语言(eDSL)—— 并行化方案 2
  • [ JavaScript ] 数据结构与算法 —— 链表
  • 【编码】-360实习笔试编程题(二)-2016.03.29
  • Apache Pulsar 2.1 重磅发布
  • C++类的相互关联
  • Dubbo 整合 Pinpoint 做分布式服务请求跟踪
  • express如何解决request entity too large问题
  • Idea+maven+scala构建包并在spark on yarn 运行
  • JAVA 学习IO流
  • Java反射-动态类加载和重新加载
  • js算法-归并排序(merge_sort)
  • js写一个简单的选项卡
  • Leetcode 27 Remove Element
  • quasar-framework cnodejs社区
  • spring学习第二天
  • 简单数学运算程序(不定期更新)
  • 聊聊flink的BlobWriter
  • 浏览器缓存机制分析
  • 微信小程序填坑清单
  • 怎样选择前端框架
  • 字符串匹配基础上
  • Nginx惊现漏洞 百万网站面临“拖库”风险
  • ​MPV,汽车产品里一个特殊品类的进化过程
  • ​软考-高级-系统架构设计师教程(清华第2版)【第12章 信息系统架构设计理论与实践(P420~465)-思维导图】​
  • ###C语言程序设计-----C语言学习(3)#
  • #QT(串口助手-界面)
  • #知识分享#笔记#学习方法
  • (2024)docker-compose实战 (8)部署LAMP项目(最终版)
  • (70min)字节暑假实习二面(已挂)
  • (cos^2 X)的定积分,求积分 ∫sin^2(x) dx
  • (八)五种元启发算法(DBO、LO、SWO、COA、LSO、KOA、GRO)求解无人机路径规划MATLAB
  • (含react-draggable库以及相关BUG如何解决)固定在左上方某盒子内(如按钮)添加可拖动功能,使用react hook语法实现
  • (欧拉)openEuler系统添加网卡文件配置流程、(欧拉)openEuler系统手动配置ipv6地址流程、(欧拉)openEuler系统网络管理说明
  • (篇九)MySQL常用内置函数
  • (转)shell中括号的特殊用法 linux if多条件判断
  • (转)Sublime Text3配置Lua运行环境
  • (转)负载均衡,回话保持,cookie
  • .MyFile@waifu.club.wis.mkp勒索病毒数据怎么处理|数据解密恢复
  • .NET Framework 的 bug?try-catch-when 中如果 when 语句抛出异常,程序将彻底崩溃
  • .Net IE10 _doPostBack 未定义
  • .NET简谈互操作(五:基础知识之Dynamic平台调用)