简介
使用微软语音可以实现语音转文字和文字转语音。测试了下,使用还是挺方便的。
使用微软语音有两种方式。一种是使用命令行的形式,另一种是调用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
//将指定音频文件转为文本输出, source 指定使用的语言
spx recognize --file /path/to/file.wav --source zh-CN
包含两个你好的语音识别结果如下:
文本转语音
//以下命令会将文本作为输入,然后将合成的语音输出到当前活动的输出设备(例如计算机扬声器)
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
官方说明文档:如何基于文本合成语音 - 语音服务 - Azure AI services | Microsoft Learn