Azure AI 语音中有哪些新增功能?
Azure AI 语音会持续更新。 为了让大家随时了解最新的开发成果,本文介绍了新版本和新功能。
最新亮点
- Azure AI 语音工具包扩展现已可供 Visual Studio Code 用户使用。 它包含一系列语音快速入门和场景示例,只需单击即可轻松构建和运行。 有关详细信息,请参阅 Visual Studio Code 市场中的 Azure AI 语音工具包。
发行说明
选择服务或资源
2024 年 11 月版本
适用于 Visual Studio Code 的 Azure AI 语音工具包扩展
Azure AI 语音工具包扩展现已可供 Visual Studio Code 用户使用。 它包含一系列语音快速入门和场景示例,只需单击即可轻松构建和运行。 有关详细信息,请参阅 Visual Studio Code 市场中的 Azure AI 语音工具包。
语音 SDK 1.41.1:2024 年 10 月版本
新增功能
- 添加了对 Amazon Linux 2023 和 Azure Linux 3.0 的支持。
- 添加了公共属性 ID SpeechServiceConnection_ProxyHostBypass,用于指定未使用代理的主机。
- 添加了用于控制新短语分段策略的属性。
缺陷修复
- 修复了不完全支持 2024 年 8 月之后生成的关键字识别高级模型的问题。
- https://github.com/Azure-Samples/cognitive-services-speech-sdk/issues/2564
- https://github.com/Azure-Samples/cognitive-services-speech-sdk/issues/2571
- https://github.com/Azure-Samples/cognitive-services-speech-sdk/issues/2590
- 请注意,在 iOS 上使用 Swift 时,项目必须使用 MicrosoftCognitiveServicesSpeech-EmbeddedXCFramework-1.41.1.zip(下载网址 https://aka.ms/csspeech/iosbinaryembedded)或 MicrosoftCognitiveServicesSpeechEmbedded-iOS Pod(包含高级模型支持)。
- 修复了 C# 中与字符串使用情况相关的内存泄漏。
- 修复了 Objective-C 和 Swift 中无法从 SPXConversationTranscriptionResult 获取 SPXAutoDetectSourceLanguageResult 的问题。
- 修复了将 Microsoft Audio Stack 用于识别时偶尔出现的崩溃问题。
- 修复了 Python 中的类型提示。 https://github.com/Azure-Samples/cognitive-services-speech-sdk/issues/2539
- 修复了在使用自定义终结点时无法提取 TTS 语音列表的问题。
- 修复了使用短名称指定语音时,每次朗读请求都会重新初始化嵌入式 TTS 的问题。
- 修复了 RecognizeOnce 音频最大持续时间的 API 参考文档。
- 修复了在 JavaScript 中处理任意采样率时出现的错误
- 感谢 rseanhall 对此做出的贡献。
- 修复了在 JavaScript 中计算音频偏移量时出现的错误
- 感谢 motamed 对此做出的贡献。
重大更改
- Windows ARM 32 位上的关键字识别支持已删除,因为此平台所需的 ONNX 运行时不可用。
语音 SDK 1.4.0:2024 年 8 月版
注意
语音 SDK 版本 1.39.0 是一个内部版本,没有丢失。
新功能
- 在语音识别中增加了对
G.722
压缩音频流式处理的支持。 - 在语音合成中的输入文本流式处理中增加了对音调、速率和音量设置的支持。
- 通过在语音合成中引入
PersonalVoiceSynthesisRequest
增加了对个人语音输入文本流式处理的支持。 此 API 为预览版,在未来版本中可能会发生变化。 - 增加了在使用
ConversationTranscriber
时对中间结果进行分割聚类的支持。 - 由于 CentOS 7 终止服务且 RHEL 7 维护支持 2 结束,删除了 CentOS/RHEL 7 支持。
- 使用嵌入式语音模型现在需要模型许可证而不是模型密钥。 如果你是现有的嵌入式语音客户并想要升级,请联系 Azure 上的支持人员,了解有关模型更新的详细信息。
Bug 修复
- 使用 _DISABLE_CONSTEXPR_MUTEX_CONSTRUCTOR 标志为 Windows 生成语音 SDK 二进制文件,来表明已缓解 Visual C++ 运行时问题:升级到 VS 2022 版本 17.10.0 后 std::mutex::lock 发生访问冲突 - 开发者社区 (visualstudio.com)。 如果使用语音 SDK 的 Windows C++ 应用程序的代码使用 std::mutex,则这些应用程序可能需要应用相同的生成配置标志(请参阅链接问题中的详细信息)。
- 已修复 OpenSSL 3.x 检测在 Linux arm64 上不起作用的问题 (https://github.com/Azure-Samples/cognitive-services-speech-sdk/issues/2420)。
- 已修复部署 UWP 应用时,MAS NuGet 包中的库和模型不会复制到部署位置的问题。
- 已修复 Android 包中的内容提供程序冲突 (https://github.com/Azure-Samples/cognitive-services-speech-sdk/issues/2463)。
- 已修复后处理选项不适用于中间语音识别结果的问题。
- 已修复有关特定于分发的运行时标识符的 .NET 8 警告 (https://github.com/Azure-Samples/cognitive-services-speech-sdk/issues/2244)。
示例
- 已将嵌入式语音示例更新为使用模型许可证而不是密钥。
语音 SDK 1.38.0:2024 年 6 月版本
新功能
- 升级了语音 SDK Linux 平台要求:
- 新的最低基线为 Ubuntu 20.04 LTS,或与
glibc
2.31 或更高版本兼容。 - 根据 Ubuntu 20.04 平台支持移除了适用于 Linux x86 的二进制文件。
- 请注意,RHEL/CentOS 7 仍然受支持,直到 6 月 30 日(CentOS 7 终止服务且 RHEL 7 维护支持 2 结束)。 适用于它们的二进制文件将在语音 SDK 1.39.0 版本中移除。
- 新的最低基线为 Ubuntu 20.04 LTS,或与
- 在 Linux 上添加了对 OpenSSL 3 的支持。
- 添加了支持使用语音合成器生成 g722-16khz-64kbps 音频输出格式的功能。
- 添加了支持使用语音合成器通过连接对象发送消息的功能。
- 在 Objective-C 和 Swift 中添加了 Start/StopKeywordRecognition API。
- 添加了用于选择自定义翻译模型类别的 API。
- 更新了与语音合成器配合使用时的 GStreamer 用法。
Bug 修复
- 修复了 Start/StopKeywordRecognition 期间出现的“Websocket 消息大小不能超过 65536 字节”错误。
- 修复了语音合成期间的 Python 分段错误。
示例
- 已将 C# 示例更新为默认使用 .NET 6.0。
语音 SDK 1.37.0:2024 年 4 月发布
新功能
- 在语音合成中添加对输入文本流式处理的支持。
- 将默认语音合成语音更改为 en-US-AvaMultilingualNeural。
- 更新 Android 版本以使用 OpenSSL 3.x。
缺陷修复
- 修复使用 MAS 时在 SpeechRecognizer 释放过程中偶尔出现 JVM 崩溃的问题。 (https://github.com/Azure-Samples/cognitive-services-speech-sdk/issues/2125)
- 改进对 Linux 上默认音频设备的检测。 (https://github.com/Azure-Samples/cognitive-services-speech-sdk/issues/2292)
示例
- 更新了新功能。
语音 SDK 1.36.0:2024 年 3 月版
新功能
- 使用 AutoDetectSourceLanguageConfig::FromOpenRange() 在 v2 终结点上添加对多语言翻译中语言标识的支持。
缺陷修复
修复了在 SynthesisStarted 事件期间调用 Stop 时未触发的 SynthesisCanceled 事件。
修复了嵌入式语音合成中的干扰问题。
修复了并行运行多个识别器时嵌入式语音识别中的崩溃问题。
修复了 v1/v2 终结点上的短语检测模式设置问题。
修复了 Microsoft Audio Stack 的各种问题。
示例
- 更新了新功能。
语音 SDK 1.35.0:2024 年 2 月版本
新功能
- 将默认文本语音转换语音从 en-US-JennyMultilingualNeural 更改为 en-US-AvaNeural。
- 使用详细的输出格式支持嵌入式语音翻译结果中的字词级详细信息。
缺陷修复
- 修复 Python 中的 AudioDataStream 位置 Getter API。
- 使用 v2 终结点修复语音翻译,而无需语言检测。
- 修复嵌入式文本转语音中的随机崩溃和重复单词边界事件。
- 返回 WebSocket 连接上内部服务器错误的正确取消错误代码。
- 修复将 MAS 与 C# 一起使用时加载 FPIEProcessor.dll 库失败的问题。
示例
- 嵌入式识别示例的次要格式设置更新。
语音 SDK 1.34.1:2024 年 1 月发布版
中断性变更
- 仅 bug 修复
新增功能
- 仅 bug 修复
Bug 修复
- 修复了 1.34.0 中引入的回归问题,即使用了错误的区域设置信息为多个中国区域的用户构造了服务终结点 URL。
语音 1.34.0:2023 年 11 月版本
中断性变更
SpeechRecognizer
已更新为默认情况下(即未显式指定 URL 时)使用新的终结点,对于大多数属性,该终结点不再支持查询字符串参数。 请使用相应的 API 函数,而不是直接使用 ServicePropertyChannel.UriQueryParameter 设置查询字符串参数。
新功能
- 与 .NET 8 兼容(针对 https://github.com/Azure-Samples/cognitive-services-speech-sdk/issues/2170 进行了修复,除了有关 centos7-x64 的警告之外)
- 支持嵌入式语音性能指标,这些指标可用于评估设备运行嵌入式语音的功能。
- 支持嵌入式多语言翻译中的源语言标识。
- 支持在预览版中发布的适用于 iOS 和 Swift/Objective-C 的嵌入式语音转文本、文本转语音和翻译。
- MicrosoftCognitiveServicesSpeechEmbedded-iOS Cocoapod 中提供了嵌入式支持。
Bug 修复
- 修复了 iOS SDK 二进制大小增长 2 倍的问题 #2113:Azure-Samples/cognitive-services-speech-sdk (github.com)
- 修复了无法从 Azure 语音转文本 API 获取单词级时间戳的问题 #2156:Azure-Samples/cognitive-services-speech-sdk (github.com)
- 修复了 DialogServiceConnector 销毁阶段以正确将事件断开连接。 此问题过去偶尔会导致崩溃。
- 修复了当使用 MAS 时在创建识别器过程中出现的异常。
- 适用于 Windows UWP x64 和 Arm64 的 Microsoft.CognitiveServices.Speech.Extension.MAS NuGet 包中的 FPIEProcessor.dll 依赖于原生 C++ 的 VC 运行时库。 通过对依赖项进行更新以更正 VC 运行时库(针对 UWP),此问题已得到纠正。
- 针对 [MAS] 修复了当使用 MAS 时反复调用 recognizeOnceAsync 会导致 SPXERR_ALREADY_INITIALIZED 的问题 #2124:Azure-Samples/cognitive-services-speech-sdk (github.com)
- 修复了使用短语列表时嵌入式语音识别崩溃的问题。
示例
- 用于语音转文本、文本转语音和翻译的嵌入式 iOS 示例。
语音 CLI 1.34.0:2023 年 11 月版本
新增功能
- 合成语音时支持字边界事件输出。
Bug 修复
- 将 JMESPath 依赖项更新到了最新版本,改进了字符串评估
语音 SDK 1.33.0:2023 年 10 月版本
中断性变更通知
- 在包配置文件中使用 MAS 的应用程序现在需要包含为 Microsoft Audio Stack (MAS) 添加的新 NuGet 包。
新增功能
- 添加了新的 NuGet 包 Microsoft.CognitiveServices.Speech.Extension.MAS.nupkg,该包改进了使用 Microsoft Audio Stack 时的回声取消性能
- 发音评估:添加了对韵律和内容评估的支持,可以从韵律、词汇、语法和主题等方面来评估口语。
Bug 修复
- 修复了关键字识别结果偏移,以便从一开始就正确匹配输入音频流。 此修补程序适用于独立关键字识别和关键字触发的语音识别。
- 修复了合成器 stopSpeaking 未立即返回的问题:SPXSpeechSynthesizer stopSpeaking() 方法在 iOS 17 上无法立即返回 - 问题 #2081
- 修复了 Swift 模块上的 Mac Catalyst 导入问题,在 Apple Silicon 上支持 Mac Catalyst。 问题 #1948
- JS:AudioWorkletNode 模块加载现在使用受信任的 URL,包含 CDN 浏览器回退。
- JS:打包的库文件现在面向 ES6 JS,移除了对 ES5 JS 的支持。
- JS:针对 v2 终结点的转换场景的中间事件已得到正确处理
- JS:TranslationRecognitionEventArgs 的语言属性现在已设置为 translation.hypothesis 事件。
- 语音合成:SynthesisCompleted 事件保证在发生所有元数据事件后发出,因此可用于指示事件结束。 如何检测何时完全收到视素? 问题 #2093 Azure-Samples/cognitive-services-speech-sdk
示例
- 添加了示例来演示使用 Python 的 MULAW 流式处理
- 修复了语音转文本 NAudio 示例
语音 CLI 1.33.0:2023 年 10 月版本
新增功能
- 合成语音时支持字边界事件输出。
Bug 修复
- 无
语音 SDK 1.32.1:2023 年 9 月版本
Bug 修复
- 包含 OpenSSL1.1.1v 的最新安全修补程序的 Android 包更新
- JS - 增加了 WebWorkerLoadType 属性,允许绕过超时辅助角色的数据 URL 加载
- JS - 修复 10 分钟后对话翻译断开连接的问题
- JS - 对话翻译身份验证令牌现在传播到翻译服务连接
示例
语音 SDK 1.31.0:2023 年 8 月版
新功能
语音 SDK 1.31.0 公共预览版支持实时话者分离。 此功能在以下 SDK 中可用:C#、C++、Java、JavaScript、Python 和 Objective-C/Swift。
通过音频播放同步语音合成文字边界和唇形活动
中断性变更
- 以前的“对话听录”方案重命名为“会议听录”。 例如,使用
MeetingTranscriber
而不是ConversationTranscriber
,使用CreateMeetingAsync
而不是CreateConversationAsync
。 尽管 SDK 对象和方法的名称已更改,但重命名操作不会更改功能本身。 使用会议听录对象来听录具有用户配置文件和语音签名的会议。 “对话翻译”对象和方法不受这些更改的影响。 你仍然可以将ConversationTranslator
对象及其方法用于会议翻译方案。
- 对于实时话者分离,引入了一个新的
ConversationTranscriber
对象。 新的“对话听录”对象模型和调用模式类似于对SpeechRecognizer
对象的连续识别。 主要区别在于,ConversationTranscriber
对象设计为用于要区分多个说话人的对话方案(话者分离)。 用户配置文件和语音签名不适用。
此表显示了用于实时话者分离和会议听录的旧对象和新对象名称。 方案名称在第一列中,旧对象名称在第二列中,新对象名称在第三列中。
方案名称 | 旧对象名称 | 新对象名称 |
---|---|---|
实时分割 | 不可用 | ConversationTranscriber |
会议听录 | ConversationTranscriber ConversationTranscriptionEventArgs ConversationTranscriptionCanceledEventArgs ConversationTranscriptionResult RemoteConversationTranscriptionResult RemoteConversationTranscriptionClient RemoteConversationTranscriptionResult Participant 1ParticipantChangedReason 1User 1 |
MeetingTranscriber MeetingTranscriptionEventArgs MeetingTranscriptionCanceledEventArgs MeetingTranscriptionResult RemoteMeetingTranscriptionResult RemoteMeetingTranscriptionClient RemoteMeetingTranscriptionResult Participant ParticipantChangedReason User Meeting 2 |
1 、Participant
、ParticipantChangedReason
和 User
对象同时适用于会议听录和会议翻译方案。
2Meeting
对象是新的,与 MeetingTranscriber
对象一起使用。
Bug 修复
- 修复了支持的最低 macOS 版本 https://github.com/Azure-Samples/cognitive-services-speech-sdk/issues/2017
- 修复了发音评估 bug:
- 解决了音素准确性分数问题,确保它们现在仅准确反映特定的发音错误音素。 https://github.com/Azure-Samples/cognitive-services-speech-sdk/issues/1917
- 解决了发音评估功能错误地将完全正确的发音识别为错误的问题,尤其是在单词可能有多个有效发音的情况下。 https://github.com/Azure-Samples/cognitive-services-speech-sdk/issues/1530
示例
CSharp
JavaScript
语音 SDK 1.30.0:2023 年 7 月版本
新功能
- C++、C#、Java - 在嵌入式语音识别的详细结果中增加了对
DisplayWords
的支持。 - Objective-C/Swift - 在 Objective-C/Swift 中增加了对
ConnectionMessageReceived
事件的支持。 - Objective-C/Swift - 改进了适用于 iOS 的关键字辨识模型。 此更改增加了某些包含 iOS 二进制文件(如 NuGet、XCFramework)的包的大小。 我们正在努力减小未来版本的大小。
Bug 修复
- 修复了客户报告的将语音识别器与 PhraseListGrammar 配合使用时内存泄漏的问题(GitHub 问题)。
- 修复了文本转语音开放连接 API 中的死锁。
更多备注
- Java - 某些内部使用的
public
Java API 方法已变更为包internal
、protected
或private
。 此更改应该不会影响开发人员,因为我们预计应用程序不会使用这些更改。 此处注明是为了提高透明度。
示例
- 有关如何在自己的应用程序中指定学习语言的新发音评估示例
语音 SDK 1.29.0:2023 年 6 月版本
新功能
- C++、C#、Java - 嵌入式语音翻译 API 预览版。 现在,无需云连接即可进行语音翻译!
- JavaScript - 语音翻译现已启用连续语言识别 (LID)。
- JavaScript - 用于将
LocaleName
属性添加到VoiceInfo
类的社区贡献。 感谢 GitHub 用户 shivsarthak 的拉取请求。 - C++、C#、Java - 添加了对从 16kHz 到 48kHz 采样率的嵌入式文本转语音输出重新采样的支持。
- 添加了对采用简单模式匹配的意向识别器中的
hi-IN
区域设置的支持。
Bug 修复
- 修复了在对象销毁期间由语音识别器中的争用条件导致的崩溃,如某些 Android 测试中所示
- 修复了采用简单模式匹配器的意向识别器中可能存在的死锁
示例
- 新的嵌入式语音翻译示例
语音 SDK 1.28.0:2023 年 5 月版本
重大更改
- JavaScript SDK:删除了联机证书状态协议 (OCSP)。 这使客户端能够更好地符合证书处理的浏览器和 Node 标准。 版本 1.28 和更高版本将不再包含我们的自定义 OCSP 模块。
新功能
- 当语句末尾出现沉默超时时,嵌入式语音识别现在会返回
NoMatchReason::EndSilenceTimeout
。 这与使用实时语音服务进行识别时的行为匹配。 - JavaScript SDK:使用
PropertyId
枚举值时设置SpeechTranslationConfig
的属性。
Bug 修复
- Windows 上的 C# - 修复 Windows 音频扩展中潜在的争用条件/死锁。 在既快速处理音频渲染器又使用合成器方法停止说话的场景中,基础事件不会通过停止重置,并且可能导致渲染器对象永远不会被处理,同时它可能持有全局锁以进行处理,从而冻结 dotnet GC 线程。
示例
- 添加了 MAUI 的嵌入式语音示例。
- 更新了 Android Java 的嵌入式语音示例,以包含文本转语音。
语音 SDK 1.27.0:2023 年 4 月发布
关于即将进行的更改的通知
- 我们计划在下一个 JavaScript SDK 版本中删除联机证书状态协议 (OCSP)。 这使客户端能够更好地符合证书处理的浏览器和 Node 标准。 版本 1.27 是包含我们的自定义 OCSP 模块的最后一个版本。
新功能
- JavaScript - 添加了对来自浏览器的麦克风输入的支持,以及说话人识别和验证。
- 嵌入式语音识别 - 更新了对
PropertyId::Speech_SegmentationSilenceTimeoutMs
设置的支持。
Bug 修复
- 常规 - 服务重新连接逻辑中的可靠性更新(除 JavaScript 之外的所有编程语言)。
- 常规 - 修复了 Windows 上的字符串转换泄漏内存(除 JavaScript 外的所有相关编程语言)。
- 嵌入式语音识别 - 修复了使用某些语法列表条目时法语语音识别的故障。
- 源代码文档 - 更正了与服务上的音频日志记录相关的 SDK 参考文档注释。
- 意向识别 - 修复了与列表实体相关的模式匹配程序优先级。
示例
- 正确处理 C# 对话听录 (CTS) 示例中的身份验证失败。
- 添加了 Python、JavaScript、Objective-C 和 Swift 的流式发音评估示例。
语音 SDK 1.26.0:2023 年 3 月发布
重大更改
- 以下包中的所有 iOS 目标都已禁用 Bitcode:带有 xcframework 的 Cocoapod、NuGet(用于 Xamarin 和 MAUI)和 Unity。 出现这一更改的原因是 Apple 从 Xcode 14 开始不再支持 Bitcode。 此更改还意味着,如果使用的是 Xcode 13 版本,或者已使用语音 SDK 在应用程序上显式启用了 Bitcode,则可能会遇到错误,指示“框架不得包含 Bitcode,必须重新生成”。 要解决此问题,请确保目标已禁用 Bitcode。
- 在此版本中,最低 iOS 部署目标已升级到 11.0,这意味着不再支持 armv7 HW。
新功能
- 嵌入式(设备上)语音识别现在支持 8 和 16 kHz 采样率输入音频 (每个采样 16 位,单声道 PCM)。
- 语音合成现在会在结果中报告连接、网络和服务延迟,以帮助优化端到端延迟。
- 使用简单模式匹配进行意向识别的新关键规则。 要匹配的字符字节较多的模式匹配将胜过字符字节数较少的模式匹配。 示例:模式“选择右上角的 {something}”将胜过“选择 {something}”
缺陷修复
- 语音合成:修复了表情符号在字边界事件中不正确这一 bug。
- 使用对话语言理解 (CLU) 进行意向识别:
- CLU 业务流程协调程序工作流中的意向现在正确显示。
- JSON 结果现在可通过属性 ID
LanguageUnderstandingServiceResponse_JsonResult
获得。
- 使用关键字激活进行语音识别:修复了关键字识别后缺少约 150 毫秒音频的问题。
- 修复了客户报告的语音 SDK NuGet iOS MAUI 发布版本问题(GitHub 问题)
示例
- 修复了客户报告的 Swift iOS 示例问题(GitHub 问题)
语音 SDK 1.25.0:2023 年 1 月发布版
重大更改
- 语言识别(预览版)API 已得到简化。 如果更新到语音 SDK 1.25 并看到生成中断,请访问语言识别页面以了解新属性
SpeechServiceConnection_LanguageIdMode
。 这个单一属性取代了之前的两个属性(SpeechServiceConnection_SingleLanguageIdPriority
和SpeechServiceConnection_ContinuousLanguageIdPriority
)。 在最近的模型改进之后,不再需要在低延迟和高准确度之间进行优先排序。 现在,你只需在进行连续语音识别或翻译时,选择是运行启动时语言识别还是连续语言识别即可。
新增功能
- C#/C++/Java:嵌入式语音 SDK 现已在封闭式公共预览版下发布。 当云连接断断续续或不可用时,你现在可以在设备上进行语音转文本和文本转语音操作。 在 Android、Linux、MacOS 和 Windows 平台上受支持
- C# MAUI:在语音 SDK NuGet 中添加了对 iOS 和 Mac Catalyst 目标的支持(客户问题)
- Unity:Android x86_64 体系结构已添加到 Unity 包(客户问题)
- Go:
- C#/C++:意向识别器现在支持 C++ 和 C# 中的对话语言理解模型,在 Microsoft 服务上进行编排
Bug 修复
- 修复尝试停止 KeywordRecognizer 时在其中出现的偶尔挂起的问题
- Python:
- 修复在设置
PronunciationAssessmentGranularity.FullText
时获取发音评估结果的问题(客户问题) - 修复获取语音合成声音时男性声音的性别属性未被检索的问题
- 修复在设置
- JavaScript
示例
添加了展示如何使用嵌入式语音的示例
为 MAUI 添加了语音转文本示例
请参阅语音 SDK 示例存储库。
语音 SDK 1.24.2:2022 年 11 月版本
新增功能
- 没有新功能,只有嵌入式引擎修补程序以支持新的模型文件。
Bug 修复
- 所有编程语言
- 修复了嵌入式语音识别模型加密的相关问题。
语音 SDK 1.24.1:2022 年 11 月版本
新增功能
- 发布了嵌入式语音预览版的程序包。 有关详细信息,请参阅https://aka.ms/embedded-speech。
Bug 修复
- 所有编程语言
- 修复了语音字体不受支持时的嵌入式 TTS 崩溃问题
- 修复了 stopSpeaking() 在 Linux 上无法停止播放的问题 (#1686)
- JavaScript SDK
- 修复了对话转录器在音频门控方面的退化。
- Java
- 临时将更新的 POM 和 Javadocs 文件发布到了 Maven Central,使文档管道能够更新联机参考文档。
- Python
- 修复了 Python speak_text(ssml) 返回 void 的退化问题。
语音 SDK 1.24.0:2022 年 10 月版本
新增功能
- 所有编程语言:已将 AMR-WB (16khz) 添加到支持的文本转语音音频输出格式列表
- Python:为支持的 Linux 发行版添加了 Linux Arm64 包。
- C#/C++/Java/Python:添加了相应支持,可以使用
AudioStreamWaveFormat
将 ALAW 和 MULAW 直接流式传输到语音服务(除了现有的 PCM 流)。 - C# MAUI:更新了 NuGet 包,以支持面向 .NET MAUI 开发人员的 Android 目标(客户问题)
- Mac:添加了适用于 Mac 的单独 XCframework,其中不包含任何 iOS 二进制文件。 此组件为只需要 Mac 二进制文件的开发人员提供了一个使用较小 XCframework 包的选项。
- Microsoft 音频堆栈 (MAS):
- 指定波束成形角度时,将会更好地抑制源自指定范围之外的声音。
- 对于 Linux ARM32 和 Linux Arm64,
libMicrosoft.CognitiveServices.Speech.extension.mas.so
的大小减少了大约 70%。
- 使用模式匹配进行意向识别:
- 添加了对语言
fr
、de
、es
、jp
的正字法支持 - 添加了对语言
es
的预生成整数支持。
- 添加了对语言
Bug 修复
- iOS:修复了压缩音频解码故障在 iOS 16 上导致的语音合成错误(客户问题)。
- JavaScript:
- 修复了在获取语音合成语音列表时身份验证令牌不起作用的问题(客户问题)。
- 使用数据 URL 加载工作器(客户问题)。
- 仅当浏览器支持 AudioWorklet 时才创建音频处理器 worklet(客户问题)。 这得益于 William Wong 的社区贡献。 感谢 William!
- 修复了 LUIS 响应
connectionMessage
为空时识别的回调(客户问题)。 - 正确设置语音分段超时。
- 使用模式匹配进行意向识别:
- 模型中的非 JSON 字符现在可正确加载。
- 修复了在连续识别期间调用
recognizeOnceAsync(text)
时操作挂起的问题。
语音 SDK 1.23.0:2022 年 7 月版本
新增功能
- C#、C++、Java:在模式匹配的意向识别中添加了对语言
zh-cn
和zh-hk
的支持。 - C#:添加了对
AnyCPU
.NET Framework 生成的支持
Bug 修复
- Android:通过将 OpenSSL 更新到 1.1.1q 修复了 OpenSSL 漏洞 CVE-2022-2068
- Python:修复使用 PushAudioInputStream 时的故障问题
- iOS:修复 iOS 上报告的“EXC_BAD_ACCESS: 尝试取消引用空指针”(GitHub 问题)
语音 SDK 1.22.0:2022 年 6 月版本
新功能
- Java:添加 IntentRecognitionResult API for getEntities()、applyLanguageModels()、和 recognizeOnceAsync(text) 以支持简单的模式匹配引擎。
- Unity:添加了对 Mac M1 (Apple Silicon) for Unity 包 (GitHub 问题)的支持
- C#:添加了对 x86_64 for Xamarin Android (GitHub 问题)的支持
- C#:.NET Framework 最低版本更新为 v4.6.2 for SDK C# 包,因为 v4.6.1 已停用(请参阅 Microsoft .NET Framework 组件生命周期策略)
- Linux:添加了对 Debian 11 和 Ubuntu 22.04 LTS 的支持。 UUbuntu 22.04 LTS 需要手动安装 libssl1.1,一种方法是从此处将其作为二进制包(例如 libssl1.1_1.1.1l-1ubuntu1.3_amd64.deb 或 x64 更高版本)进行安装,另一种方法是通过从源编译进行安装。
Bug 修复
- UWP:从 UWP 库中删除了 OpenSSL 依赖项,并替换为 WinRT websocket 和 HTTP API,以满足安全合规性和更小的二进制占用。
- Mac:修复了使用面向 macOS 平台的 Swift 项目时出现的“MicrosoftCognitiveServicesSpeech 模块找不到”问题
- Windows、Mac:修复了一个特定于平台的问题:通过属性配置为以实时速率流式传输的音频源有时会落后,最终超出容量
示例 (GitHub)
- C#:更新为使用 v4.6.2 的 .NET Framework 示例
- Unity:适用于 Android 和 UWP 的虚拟助手示例
- Unity:针对 Unity 2020 LTS 版本更新的 Unity 示例
语音 SDK 1.21.0:2022 年 4 月版本
新功能
- Java 和 JavaScript:添加了在使用 SpeechRecognizer 对象时对连续语言识别的支持
- JavaScript:添加了诊断 API,以启用控制台日志记录级别和(仅限节点)文件日志记录,从而帮助 Microsoft 排查客户报告的问题
- Python:添加了对“对话听录”的支持
- Go:添加了对“说话人识别”的支持
- C++ 和 C#:添加了对意向识别器中所需单词组的支持(简单模式匹配)。 例如:“(set|start|begin) a timer”,其中必须存在“set”、“start”或“begin”才能使意向可被识别。
- 所有编程语言、语音合成:在字边界事件中添加了持续时间属性。 添加了对标点边界和句子边界的支持
- Objective-C/Swift/Java:在发音评估结果对象上添加了单词级结果(类似于 C#)。 应用程序不再需要分析 JSON 结果字符串来获取单词级信息(GitHub 问题)
- iOS 平台:添加了对 ARMv7 体系结构的实验性支持
Bug 修复
- iOS 平台:修复了问题,以允许在使用 CocoaPod 时为目标“任何 iOS 设备”进行生成(GitHub 问题)
- Android 平台:OpenSSL 版本已更新为 1.1.1n,以修复安全漏洞 CVE-2022-0778
- JavaScript:修复了未使用文件大小更新 wav 头的问题(GitHub 问题)
- JavaScript:修复了在请求 ID 不同步时出现中断翻译情况的问题(GitHub 问题)
- JavaScript:修复了在没有流的情况下实例化 SpeakerAudioDestination 时出现的问题(GitHub 问题)
- C++:修复了 C++ 头,以便在为 C++17 或更高版本进行编译时去除警告
GitHub 示例
- 有关包含“语言识别”功能的“语音识别”的新 Java 示例
- 有关“对话听录”的新 Python 和 Java 示例
- 有关“说话人识别”的新 Go 示例
- 适用于 Windows 的新 C++ 和 C# 工具,用于枚举所有音频捕获和呈现设备,以便用户查找其设备 ID。 如果你计划从非默认设备捕获音频或将音频呈现到非默认设备,那么此 ID 是语音 SDK 所需的。
语音 SDK 1.20.0:2022 年 1 月发布
新增功能
- Objective-C、Swift 和 Python:添加了对 DialogServiceConnector 的支持,用于语音助理场景。
- Python:添加了对 Python 3.10 的支持。 根据 Python 的 3.6 的生命周期终止,删除了对 Python 3.6 的支持。
- Unity:Linux 上的 Unity 应用程序现在支持语音 SDK。
- C++、C#:现在 C# 支持使用模式匹配的 IntentRecognizer。 此外,C++ 和 C# 现在支持带有自定义实体、可选组和实体角色的场景。
- C++、C#:改进了使用新类 FileLogger、MemoryLogger 和 EventLogger 的诊断跟踪日志记录。 SDK 日志是 Microsoft 诊断客户报告的问题的重要工具。 这些新类使客户更容易将语音 SDK 日志集成到其自己的日志记录系统中。
- 所有编程语言:PronunciationAssessmentConfig 现在具有属性来设置所需的音素字母表(IPA 或 SAPI)和 N-Best 音素计数(根据 GitHub 问题 1284 避免创建配置 JSON)。 此外,现在还支持音节级别输出。
- Android、iOS 和 macOS(所有编程语言):不再需要 GStreamer 来支持有限带宽的网络。 SpeechSynthesizer 现在使用操作系统的音频解码功能来解码从文本到语音服务流式传输的压缩音频。
- 所有编程语言:SpeechSynthesizer 现在支持三种新的原始输出 Opus 格式(无需容器),这些格式广泛应用于实时传送视频流场景。
- JavaScript:向 SpeechSynthesizer 添加了 getVoicesAsync() API,以检索支持的合成语音列表(GitHub 问题 1350)
- JavaScript:将 getWaveFormat () API 添加到 AudioStreamFormat 以支持非 PCM 的 wave 格式(GitHub 问题 452)
- JavaScript:将卷 getter/setter 和 mute ()/unmute () API 添加到 SpeakerAudioDestination(GitHub 问题 463)
Bug 修复
- C++、C#、Java、JavaScript、Objective-C 和 Swift:修复了以下问题:停止使用 PushAudioInputStream 的语音识别器时出现 10 秒的延迟。 这适用于在调用 StopContinuousRecognition 后未推送新音频的情况(GitHub 问题 1318 和 331)
- Android 和 UWP 上的 Unity:针对 UWP、Android Arm64 和适用于 Android (WSA) Arm64 的 Windows 子系统修复了 Unity 元文件(GitHub 问题 1360)
- iOS:现已修复使用 CocoaPods 时对任何 iOS 设备上语音 SDK 应用程序的编译(GitHub 问题 1320)
- iOS:将 SpeechSynthesizer 配置为将音频直接输出到扬声器时,在极少数情况下播放会在开始时停止。 此问题已修复。
- JavaScript:如果没有找到音频工作集,使用脚本处理器回退麦克风输入(GitHub 问题 455)
- JavaScript:向代理添加协议,以缓解 Sentry 集成中发现的 bug(GitHub 问题 465)
GitHub 示例
- 显示如何获取详细识别结果的 C++、C#、Python 和 Java 示例。 详细信息包括替代识别结果、置信度分数、词法形式、规范化表单、掩码规范化表单,以及每个表单的单词级计时。
- 使用 AVFoundation 作为外部音频源添加 iOS 示例。
- 添加了 Java 示例,用于显示如何使用 WordBoundary 事件获取 SRT(SubRip 文本)格式。
- 用于发音评估的 Android 示例
- 显示新诊断日志记录类的使用情况的 C++ 和 C#。
Speech SDK 1.19.0:2021-Nov 版本
亮点
我们已经与 Azure DevOps 和 GitHub 一起取消了对 Ubuntu 16.04 的支持。 Ubuntu 16.04 已于 2021 年 4 月结束生命周期。 请将 Ubuntu 16.04 工作流迁移到 Ubuntu 18.04 或更高版本。
Linux 二进制文件中的 OpenSSL 链接已更改为动态。 Linux 二进制文件大小减少了约 50%。
增加了对基于 Mac M1 ARM 的芯片支持。
新增功能
C++/C#/Java:增加了新的 API 以通过 Microsoft 音频堆栈实现对语音输入的音频处理支持。 文档在此处。
C++:新增了用于意图识别的 API,有助于更高级的模式匹配。 这包括 List 和 Prebuilt Integer 实体,而且支持将意图和实体分组为模型(文档、更新和示例正在开发中,将于近期发布)。
Mac:与 GitHub 问题 1244 相关的 CocoaPod、Python、Java 和 NuGet 包支持基于 Arm64 (M1) 的芯片。
iOS/Mac:iOS 和 macOS 二进制文件现已打包到与 GitHub 问题 919 相关的 xcframework 中。
iOS/Mac:支持与 GitHub 问题 1171 相关的 Mac 催化剂。
Linux:针对 CentOS7 新增了 tar 包 关于语音 SDK。 Linux .tar 包现在包含
lib/centos7-x64
中 RHEL/CentOS 7 的特定库。 lib/x64 中的语音 SDK 库仍适用于所有其他受支持的 Linux x64 分发版(包括 RHEL/CentOS 8),不适用于 RHEL/CentOS 7。JavaScript:VoiceProfile 和 SpeakerRecognizer API 为异步/可等待。
Windows:新增了对通用 Windows 平台 (UWP) 上的播放的支持。
Bug 修复
Android:适用于 Android 包的 OpenSSL 安全更新(更新到版本 1.1.1l)。
Python:解决了在 Python 上选择扬声器设备失败的 bug。
核心:连接尝试失败时自动重新连接。
iOS:在使用 GStreamer 时,iOS 包会因稳定性和 bitcode 生成问题而禁用音频压缩。 可以通过 GitHub 问题 1209了解详细信息。
GitHub 示例
Mac/iOS:更新了示例和快速入门,改为使用 xcframework 包。
.NET:更新了示例,改为使用 .NET core 3.1 版本。
JavaScript:增加了语音助手的示例。
语音 SDK 1.18.0:2021 年 7 月发行版
请注意:在此处开始使用语音 SDK。
突出显示摘要
- Ubuntu 16.04 在 2021 年 4 月结束生命周期。 我们将在 2021 年 9 月与 Azure DevOps 和 GitHub 一起取消对 16.04 的支持。 请在此之前将 ubuntu-16.04 工作流迁移到 ubuntu-18.04 或更高版本。
新增功能
- C++/C#/Java:我们为
VoiceProfileClient
类添加了新 APIGetActivationPhrasesAsync()
,用于为独立识别场景接收说话人识别注册阶段中有效激活短语的列表。- 重要说明:说话人识别功能处于预览版阶段。 在说话人识别功能从预览版中移出到正式发布版中 90 天后,所有在预览版中创建的语音配置文件都将会终止。 届时,预览版语音配置文件将停止运行。
- Python:在现有的
SpeechRecognizer
和TranslationRecognizer
对象上添加了对连续语言标识 (LID) 的支持。 - Python:添加了名为
SourceLanguageRecognizer
的新 Python 对象,以执行一次性或连续的 LID(不进行识别或翻译)。 - JavaScript:为
VoiceProfileClient
类添加了getActivationPhrasesAsync
API,用于为独立识别场景接收说话人识别注册阶段中有效激活短语的列表。 - JavaScript
VoiceProfileClient
的enrollProfileAsync
API 现在为异步可等待。 有关示例用法,请参阅此独立标识代码。
改进
- Java:许多 Java 对象都添加了 AutoCloseable 支持 。 现在支持 try-with-resources 模型释放资源。 请参阅使用 try-with-resources 的这个示例。 若要了解此模式,另请参阅 try-with-resources 语句的 Oracle Java 文档教程。
- 许多平台和体系结构的磁盘占用量已显著降低。 例如,对于
Microsoft.CognitiveServices.Speech.core
二进制:x64 Linux 小了 475KB(减少了 8.0%);Arm64 Windows UWP 小了 464KB(减少了 11.5%);x86 Windows 小了 343KB(减少了 17.5%);x64 Windows 小了 451KB(减少了 19.4%)。
Bug 修复
- Java:修复了在合成文本包含代理项字符时出现的合成错误。 有关详细信息,请参阅此文。
- JavaScript:浏览器麦克风音频处理现在使用
AudioWorkletNode
而不是已弃用的ScriptProcessorNode
。 有关详细信息,请参阅此文。 - JavaScript:在长期运行的对话翻译场景中,正确保持对话处于活动状态。 有关详细信息,请参阅此文。
- JavaScript:修复了识别器在连续识别时重新连接到 mediastream 的问题。 有关详细信息,请参阅此文。
- JavaScript:修复了识别器在连续识别时重新连接到 pushStream 的问题。 有关详细信息,请参阅此文。
- JavaScript:更正了详细识别结果中的单词级别偏移计算。 有关详细信息,请参阅此文。
示例
语音 SDK 1.17.0:2021 年 5 月发行版
注意
单击此处,开始使用语音 SDK。
突出显示摘要
- 占用量更少 - 我们持续减少语音 SDK 及其组件的内存和磁盘占用量。
- 新的独立语言识别 API 使你能够识别正在使用的语言。
- 在 macOS 上使用 Unity 开发支持语音的混合现实和游戏应用程序。
- 现在,除了 Go 编程语言的语音识别功能,还可以使用文本转语音功能。
- 修复了多个 Bug,解决了我们尊贵的客户在 GitHub 提到的问题! 非常感谢! 敬请不时提供反馈!
新增功能
- C++/C#:通过
SourceLanguageRecognizer
API 实现新的独立开始时和连续语言检测。 如果只希望检测音频内容中使用的语言,此 API 可帮你做到这一点。 查看 C++ 和 C# 的详细信息。 - C++/C#:语音识别和翻译识别现在支持起始和连续语言识别,因此你可以通过编程的方式,在听录或翻译之前确定正在使用的语言。 有关语音识别,请参阅此处的文档;有关语音翻译,请参阅此处的文档。
- C#:为 macOS (x64) 添加了对 Unity 的支持。 这将解锁混合现实和游戏中的语音识别及语音合成用例!
- Go:我们在 Go 编程语言中添加了对语音合成文本转语音的支持,以便在更多用例中使用语音合成。 请参阅快速入门或参考文档。
- C++/C#/Java/Python/Objective-C/Go:语音合成器现在支持
connection
对象。 这有助于管理和监视与语音服务的连接,尤其有助于进行预连接以减少延迟。 参阅此处的文档。 - C++/C#/Java/Python/Objective-C/Go:我们现在在
SpeechSynthesisResult
中公开了延迟和欠载运行时间,以帮助你监视和诊断语音合成延迟问题。 请分别参阅 C++、C#、Java、Python、Objective-C 和 Go 的详细信息。 - C++/C#/Java/Python/Objective-C:未指定要使用的声音时,文本转语音现在默认使用神经网络声音。 默认情况下,这会为你提供更高保真输出,但也会增加默认价格。 可指定超过 70 种标准语音或超过 130 种神经语音中的任何一种来更改默认设置。
- C++/C#/Java/Python/Objective-C/Go:我们为合成语音信息添加了“性别”属性,以便更轻松地根据性别选择语音。 这解决了 GitHub 问题 #1055。
- C++、C#、Java、JavaScript:说话人识别现在支持
retrieveEnrollmentResultAsync
、getAuthorizationPhrasesAsync
和getAllProfilesAsync()
,以方便用户管理给定帐户的所有语音配置文件。 请分别参阅 C++、C#、Java、JavaScript 的文档。 这解决了 GitHub 问题 #338。 - JavaScript:我们添加了连接失败重试功能,使基于 JavaScript 的语音应用程序更加可靠。
改进
- Linux 和 Android 语音 SDK 二进制文件进行了更新,以使用最新版本的 OpenSSL (1.1.1k)
- 代码大小改进:
- 语言理解现在拆分为单独的“lu”库。
- Windows x64 核心二进制文件大小减少了 14.4%。
- Android Arm64 核心二进制文件大小减少了 13.7%。
- 其他组件的大小也有所减小。
Bug 修复
- 全部:修复了 GitHub 问题 #842,即 ServiceTimeout 问题。 现在,你可以使用语音 SDK 听录长的音频文件,而不会因为此错误而终止与服务的连接。 但是,我们仍建议你对长文件使用批量听录。
- C#:修复了 GitHub 问题 #947,即没有语音输入可能导致应用出错的问题。
- Java:修复了 GitHub 问题 #997,即在无网络连接或订阅密钥无效的情况下使用 DialogServiceConnector 时,Java 语音 SDK 1.16 会发生崩溃的问题。
- 修复了突然停止语音识别(例如,在控制台应用中使用 CTRL+C)时发生崩溃的问题。
- Java:添加了一项修复,支持在使用 Java 语音 SDK 时删除 Windows 上的临时文件。
- Java:修复了 GitHub 问题 #994,即调用
DialogServiceConnector.stopListeningAsync
可能导致错误的问题。 - Java:修复了虚拟助理快速入门中的一个客户问题。
- JavaScript:修复了 GitHub 问题 #366,即
ConversationTranslator
会抛出“this.cancelSpeech 不是函数”错误。 - JavaScript:修复了 GitHub 问题 #298,即“Get result as an in-memory stream”示例会大声播放声音的问题。
- JavaScript:修复了 GitHub 问题 #350,即调用
AudioConfig
可能会导致“ReferenceError: MediaStream 未定义”的问题。 - JavaScript:修复了 Node.js 中针对长时间运行会话的 UnhandledPromiseRejection 警告。
示例
语音 SDK 1.16.0:2021-March 版本
注意
Windows 版语音 SDK 依赖于 Visual Studio 2015、2017 和 2019 的共享 Microsoft Visual C++ Redistributable。 可从此处下载。
新增功能
- C++/C#/Java/Python:已迁移到最新版本的 GStreamer (1.18.3),支持在 Windows、Linux 和 Android 上转录任何媒体格式。 参阅此处的文档。
- C++/C#/Java/Objective-C/Python:为 SDK 新增了以下支持:解码压缩的 TTS/合成音频。 如果将输出音频格式设置为 PCM,并且系统上有 GStreamer,则 SDK 会自动从服务请求压缩的音频以节省带宽,然后在客户端对音频进行解码。 可以将
SpeechServiceConnection_SynthEnableCompressedAudioTransmission
设置为false
以禁用此功能。 有关 C++、C#、Java、Objective-C、Python 的详细信息。 - JavaScript:Node.js 用户现在可以使用
AudioConfig.fromWavFileInput
API。 这解决了 GitHub 问题 #252。 - C++/C#/Java/Objective-C/Python:添加了用于 TTS 的
GetVoicesAsync()
方法,用于返回所有可用的合成语音。 有关 C++、C#、Java、Objective-C 和 Python 的详细信息。 - C++/C#/Java/JavaScript/Objective-C/Python:为 TTS/语音合成添加了
VisemeReceived
事件,用于返回同步的视素动画。 参阅此处的文档。 - C++/C#/Java/JavaScript/Objective-C/Python:为 TTS 添加了
BookmarkReached
事件。 你可以在输入 SSML 中设置书签,并获取每个书签的音频偏移量。 参阅此处的文档。 - Java:添加了对说话人辨识 API 的支持。 有关详细信息,请参阅此文。
- C++/C#/Java/JavaScript/Objective-C/Python:通过 WebM 容器为 TTS 添加了两种新的输出音频格式(Webm16Khz16BitMonoOpus 和 Webm24Khz16BitMonoOpus)。 这些格式是用于通过 Opus 编解码器流式传输音频的更好格式。 有关 C++、C#、Java、JavaScript、Objective-C、Python 的详细信息。
- C++/C#/Java:添加了为说话人辨识方案检索语音配置文件的支持。 有关 C++、C# 和 Java 的详细信息。
- C++/C#/Java/Objective-C/Python:添加了对用于控制音频麦克风和扬声器的单独共享库的支持。 这样开发人员就可以在没有所需音频库依赖项的环境中使用 SDK。
- Objective-C/Swift:添加了对具有伞式标头的模块框架的支持。 这允许开发人员在 iOS/Mac Objective-C/Swift 应用中将语音 SDK 作为模块导入。 这解决了 GitHub 问题 #452。
- Python:添加了对 Python 3.9 的支持,根据 Python 的 3.5 生命周期终止删除了对 Python 3.5 的支持。
已知问题
- C++/C#/Java:
DialogServiceConnector
无法使用CustomCommandsConfig
来访问自定义命令应用程序,会发生连接错误。 可以通过使用config.SetServiceProperty("X-CommandsAppId", "your-application-id", ServicePropertyChannel.UriQueryParameter)
手动将应用程序 ID 添加到请求来解决此错误。 在下一版本中,将还原CustomCommandsConfig
的预期行为。
改进
- 为了降低语音 SDK 的内存使用量和磁盘占用量,Android 二进制文件现在缩小了 3% 到 5%,这是我们的多版本工作的一部分。
- 改进了此处的 C# 参考文档的准确度、可读性和“另请参阅”部分。
Bug 修复
- JavaScript:大 WAV 文件标头现在可以正确解析(将标头切片增加到了 512 字节)。 这解决了 GitHub 问题 #962。
- JavaScript:更正了麦克风流在停止识别前结束的麦克风计时问题,解决了语音识别在 Firefox 中不工作的问题。
- JavaScript:当浏览器在 turnOn 完成之前强制麦克风关闭时,我们现在可以正确地处理初始化承诺。
- JavaScript:我们已将 url 依赖项替换为 url-parse。 这解决了 GitHub 问题 #264。
- Android:修复了当
minifyEnabled
设置为 true 时回叫不起作用的问题。 - C++/C#/Java/Objective-C/Python:
TCP_NODELAY
会被正确设置为 TTS 的基础套接字 IO 以降低延迟。 - C++/C#/Java/Python/Objective-C/Go:修复了因识别器刚开始识别就被销毁而偶尔发生的崩溃。
- C++/C#/Java:修复了在解构扬声器识别器时偶尔发生的崩溃。
示例
- JavaScript:浏览器示例不再需要单独下载 JavaScript 库文件。
语音 SDK 1.15.0:2021 年 1 月发行版
注意
Windows 版语音 SDK 依赖于 Visual Studio 2015、2017 和 2019 的共享 Microsoft Visual C++ Redistributable。 可从此处下载。
突出显示摘要
- 更小的内存和磁盘占用量,使 SDK 更有效。
- 适用于自定义神经语音个人预览版的更高保真输出格式。
- 意向识别器现在可以获得比首要意向更详细的返回结果,使你能够对客户意向进行单独的评估。
- 语音助理和机器人现在更易于设置,你可以立即使其停止收听,并可以更好地控制其对错误的响应方式。
- 使压缩成为可选功能,从而改进了设备性能。
- 在 Windows ARM/Arm64 上使用语音 SDK。
- 改进了低级别调试。
- 发音评估功能的适用范围现在更广泛。
- 修复了多个 Bug,解决了我们尊贵的客户在 GitHub 提到的问题! 非常感谢! 敬请不时提供反馈!
改进
- 语音 SDK 现在更高效、更轻型。 我们已启动了一项跨多个发行版的工作,以减少语音 SDK 的内存用量和磁盘占用量。 作为第一步,我们在大多数平台上的共享库中明显减小了文件大小。 与 1.14 发行版相比:
- 64 位 UWP 兼容的 Windows 库大约减小了 30%。
- 32 位 Windows 库尚未在大小方面进行改进。
- Linux 库减小了 20-25%。
- Android 库减小了 3-5%。
新增功能
- 全部:可通过 TTS 语音合成 API 使用适用于自定义神经语音个人预览版的新 48 KHz 输出格式:Audio48Khz192KBitRateMonoMp3、audio-48khz-192kbitrate-mono-mp3、Audio48Khz96KBitRateMonoMp3、audio-48khz-96kbitrate-mono-mp3、Raw48Khz16BitMonoPcm、raw-48khz-16bit-mono-pcm、Riff48Khz16BitMonoPcm、riff-48khz-16bit-mono-pcm。
- 全部:自定义语音也更易于使用。 添加了通过
EndpointId
设置自定义语音的支持(C++、C#、Java、JavaScript、Objective-C、Python)。 在此项更改之前,自定义语音用户需要通过FromEndpoint
方法设置终结点 URL。 现在,客户可以像处理预生成语音一样使用FromSubscription
方法,然后通过设置EndpointId
来提供部署 ID。 这简化了自定义语音的设置。 - C++/C#/Java/Objective-C/Python:从
IntentRecognizer
获取比首要意向更多的信息。 它现在支持使用verbose=true
uri 参数通过LanguageUnderstandingModel FromEndpoint
方法来配置包含所有意向(而不仅仅是首要评分意向)的 JSON 结果。 这解决了 GitHub 问题 #880。 - C++/C#/Java:使语音助理或机器人立即停止收听。
DialogServiceConnector
(C++、C#、Java)现有一个与ListenOnceAsync()
配合使用的StopListeningAsync()
方法。 此方法会立即停止音频捕获并正常等待结果,因此非常适合用于按动“立即停止”按钮的场景。 - C++/C#/Java/JavaScript:使语音助理或机器人更好地对底层系统错误做出反应。
DialogServiceConnector
(C++、C#、Java、JavaScript)现有一个新的TurnStatusReceived
事件处理程序。 这些可选事件对应于机器人上的每个ITurnContext
解决方案,并且将在发生轮次执行失败(例如,由于 Direct Line Speech 与机器人之间发生未经处理的异常、超时或断网)时予以报告。 使用TurnStatusReceived
可以更轻松地对失败状况做出响应。 举例而言,如果机器人在后端数据库查询(例如查找产品)上花费的时间太长,TurnStatusReceived
将允许客户端适时地以“抱歉,我有点迷糊,请重试”或类似内容重新发出提示。 - C++/C# :在更多平台上使用语音 SDK。 语音 SDK NuGet 包现在支持 Windows ARM/ARM64 桌面本机二进制文件(UWP 已受支持),使语音 SDK 在更多类型的计算机上有更大的用途。
- Java:
DialogServiceConnector
现有一个setSpeechActivityTemplate()
方法,以前无意中从该语言中排除了此方法。 此方法相当于设置Conversation_Speech_Activity_Template
属性,并会请求由 Direct Line Speech 服务发起的所有未来 Bot Framework 活动将提供的内容合并到其 JSON 有效负载中。 - Java:改进了低级别调试。 类似于其他编程语言(C++、C#),
Connection
类现有一个MessageReceived
事件。 此事件提供对服务传入的数据的低级别访问,并且对诊断和调试非常有用。 - JavaScript:可以通过
BotFrameworkConfig
更轻松地设置语音助理和机器人。该类现有fromHost()
和fromEndpoint()
工厂方法,与手动设置属性相比,这些方法简化了自定义服务位置的使用。 我们还标准化了botId
的可选规范,以便在各个配置工厂中使用非默认机器人。 - JavaScript:通过为 websocket 压缩添加的字符串控制属性改进了设备性能。 出于性能原因,我们默认禁用了 websocket 压缩。 在低带宽应用场景下可以重新启用此功能。 此处提供了更多详细信息。 这解决了 GitHub 问题 #242。
- JavaScript:添加了发音评估支持,以便对语音发音进行评估。 请参阅此处的快速入门。
Bug 修复
- 全部(JavaScript 除外):修复了版本 1.14 中的回归,此问题导致识别器分配过多的内存。
- C++ :修复了
DialogServiceConnector
存在的垃圾回收问题,解决了 GitHub 问题 #794。 - C# :修复了线程关闭的问题,此问题导致对象在释放时阻塞大约一秒。
- C++/C#/Java:修复了一个异常,该异常会阻止应用程序在
DialogServiceConnector
上多次设置语音授权令牌或活动模板。 - C++/C#/Java:修复了由于在清理时出现争用状况而导致识别器崩溃的问题。
- JavaScript:
DialogServiceConnector
以前不遵循BotFrameworkConfig
的工厂中指定的可选botId
参数。 这样,就需要手动设置botId
查询字符串参数才能使用非默认机器人。 该 bug 已予纠正,现在会遵循并使用提供给BotFrameworkConfig
的工厂的botId
值,包括新添加的fromHost()
和fromEndpoint()
。 这也适用于CustomCommandsConfig
的applicationId
参数。 - JavaScript:修复了 GitHub 问题 #881,使识别器对象可供重复使用。
- JavaScript:修复了以下问题:SKD 在一个 TTS 会话中多次发送
speech.config
,从而浪费了带宽。 - JavaScript:简化了有关麦克风授权的错误处理,允许在用户尚未允许在其浏览器中使用麦克风输入的情况下,以气泡形式显示更具描述性的消息。
- JavaScript:修复了 GitHub 问题 #249:
ConversationTranslator
和ConversationTranscriber
中的类型错误导致 TypeScript 用户遇到编译错误。 - Objective-C:修复了在 Xcode 11.4 上针对 iOS 进行 GStreamer 生成时失败的问题;解决了 GitHub 问题 #911。
- Python:修复了 GitHub 问题 #870,删除了“DeprecationWarning: imp 模块已弃用,现已由 importlib 取代”。
示例
- 适用于 JavaScript 浏览器的“从文件识别”示例现在使用文件进行语音识别。 这解决了 GitHub 问题 #884。
语音 SDK 1.14.0:2020 年 10 月版本
注意
Windows 版语音 SDK 依赖于 Visual Studio 2015、2017 和 2019 的共享 Microsoft Visual C++ Redistributable。 可从此处下载。
新增功能
- Linux:添加了对 Debian 10 和 Ubuntu 20.04 LTS 的支持。
- C++/Java/C#:添加了通过
ServicePropertyChannel::HttpHeader
设置任何HttpHeader
键/值的支持。 - C++/C#:在此处 (C++) 和此处 (C#) 添加了新的
AudioDataStream FromWavFileInput
方法(以读取 .WAV 文件)。 - C++/C#/Java/Python/Objective-C/Swift:添加了
stopSpeakingAsync()
方法以停止文本转语音合成。 请参阅此处 (C++)、此处 (C#)、此处 (Java)、此处 (Python) 和此处 (Objective-C/Swift) 的参考文档。 - C#、C++、Java:向
Connection
类添加了FromDialogServiceConnector()
函数,该函数可用于监视DialogServiceConnector
的连接和断开连接事件。 请参阅此处 (C#)、此处 (C++) 和此处 (Java) 的参考文档。 - C++/C#/Java/Python/Objective-C/Swift:添加了发音评估支持,这样便可以评估语音发音,并为说话人提供有关讲话音频准确度和流利度的反馈。 在此处阅读该文档。
重大更改
- JavaScript:PullAudioOutputStream.read() 的返回类型从内部 Promise 更改为 Native JavaScript Promise。
Bug 修复
- 全部:修复了
SetServiceProperty
中的 1.13 回归(带有某些特殊字符的值被忽略)。 - C# :修复了 Visual Studio 2019 上的 Windows 控制台示例找不到本机 DLL 的问题。
- C# :修复了将流用作
KeywordRecognizer
输入时内存管理崩溃的问题。 - ObjectiveC/Swift:修复了将流用作识别器输入时内存管理崩溃的问题。
- Windows:修复了 UWP 上 BT HFP/A2DP 的共存问题。
- JavaScript:修复了会话 ID 的映射,可改进日志记录并有助于内部调试/服务关联。
- JavaScript:添加了对
DialogServiceConnector
在第一次调用后禁用ListenOnce
调用的修补程序。 - JavaScript:修复了结果输出只能是“simple”的问题。
- JavaScript:修复了 macOS 上 Safari 中的连续识别问题。
- JavaScript:针对高请求吞吐量场景的 CPU 负载缓解措施。
- JavaScript:允许访问“语音配置文件注册”结果的详细信息。
- JavaScript:针对
IntentRecognizer
中的连续识别添加了修补程序。 - C++/C#/Java/Python/Swift/ObjectiveC:修复了
IntentRecognizer
中 australiaeast 和 brazilsouth 的错误 URL。 - C++/C#:添加了
VoiceProfileType
作为创建VoiceProfile
对象时的参数。 - C++/C#/Java/Python/Swift/ObjectiveC:修复了尝试从给定位置读取
AudioDataStream
时潜在的SPX_INVALID_ARG
。 - IOS:修复了 Unity 上的语音识别故障
示例
- ObjectiveC:在此处添加了关键字识别的示例。
- C#/JavaScript:在此处 (C#) 和此处 (JavaScript) 添加了对话听录的快速入门。
- C++/C#/Java/Python/Swift/ObjectiveC:此处添加了发音评估示例
已知问题
- HoloLens 2 和 Android 4.4 (KitKat) 默认情况下不支持 DigiCert 全局根 G2 证书,需要将该证书添加到系统中,才能使语音 SDK 正常运行。 该证书将在不久的将来添加到 HoloLens 2 OS 映像中。 Android 4.4 客户需要将更新的证书添加到系统中。
COVID-19 缩减测试
由于过去几周一直在远程工作,我们无法像往常那样执行那么多手动验证测试。 我们没有做我们认为可能会造成任何破坏的任何更改,我们的自动化测试已全部通过。 如果我们遗漏了某些内容,请在 GitHub 上告诉我们。
请保重身体!
语音 SDK 1.13.0:2020 年 7 月发行版
注意
Windows 版语音 SDK 依赖于 Visual Studio 2015、2017 和 2019 的共享 Microsoft Visual C++ Redistributable。 从 此处下载并安装它。
新增功能
- JavaScript:添加了对浏览器和 Node.js 的说话人识别支持。
- JavaScript:添加了对语言识别/语言 ID 的支持。 参阅此处的文档。
- Python:针对 Windows 和 Linux 上的 Python 添加了压缩音频支持。 参阅此处的文档。
Bug 修复
- 全部:修复了一个问题,此问题会导致在识别后 KeywordRecognizer 不会使流继续播放。
- 全部:修复了一个问题,此问题会导致从 KeywordRecognitionResult 获取的流不包含关键字。
- 全部:修复了 SendMessageAsync 在用户完成等待后不通过网络发送消息的问题。
- 全部:修复了以下问题:当用户多次调用 VoiceProfileClient::SpeakerRecEnrollProfileAsync 方法且不等待调用完成时,说话人识别 API 崩溃。
- 全部:修复了 VoiceProfileClient 和 SpeakerRecognizer 类中启用文件日志记录的问题。
- JavaScript:修复了在最小化浏览器时与节流相关的一个问题。
- JavaScript:修复了流中的一个内存泄漏问题。
- JavaScript:为来自 NodeJS 的 OCSP 响应添加了缓存。
- Java:修复了导致 BigInteger 字段总是返回 0 的问题。
- iOS:修复了在 iOS App Store 中发布基于语音 SDK 的应用时出现的一个问题。
示例
- C++ :在此处添加了说话人识别的示例代码。
COVID-19 缩减测试
由于过去几周一直在远程工作,我们无法像往常那样执行那么多手动验证测试。 我们没有做我们认为可能会造成任何破坏的任何更改,我们的自动化测试已全部通过。 如果我们遗漏了某些内容,请在 GitHub 上告诉我们。
请保重身体!
语音 SDK 1.12.1:2020 年 6 月版本
Bug 修复
- C#、C++:在 1.12 版中,修复的麦克风录音在说话人识别中未正常工作。
- JavaScript:针对 Firefox 中的以及 macOS 和 iOS 上的 Safari 中的文本转语音进行了修复。
- 针对使用八通道流时对话听录中 Windows 应用程序验证工具访问冲突崩溃的修复。
- 针对多设备对话翻译中 Windows 应用程序验证工具访问冲突崩溃的修复。
示例
COVID-19 缩减测试
由于过去几周一直在远程工作,我们无法像往常那样执行那么多手动验证测试。 我们没有做我们认为可能会造成任何破坏的任何更改,我们的自动化测试已全部通过。 如果我们遗漏了某些内容,请在 GitHub 上告诉我们。
请保重身体!
语音 SDK 1.12.0:2020 年 5 月版本
新增功能
- Go:对语音识别的新 Go 语言支持。 在此处设置开发环境。 有关示例代码,请参阅下面的“示例”部分。
- JavaScript:添加了对文本转语音的浏览器支持。 参阅此处的文档。
- Java:添加了带翻译支持的多设备对话。 在此处参阅参考文档。
改进与优化
- JavaScript:优化了浏览器麦克风实现,改善了语音识别的准确性。
- Java:使用直接 JNI 实现(没有 SWIG)重构了绑定。 此项更改对于 Windows、Android、Linux 和 Mac 的所有 Java 包而言减少了 10 倍的绑定大小,并简化了语音 SDK Java 实现的进一步开发。
- Linux:使用最新的 RHEL 7 特定说明更新了支持文档。
- 改进了连接逻辑,以便在出现服务和网络错误时多次尝试连接。
- 更新了 portal.azure.cn 语音快速入门页面,帮助开发人员在 Azure 语音旅程中进行下一步。
Bug 修复
- C#、Java:修复了 Linux ARM(32 位和 64 位)上加载 SDK 库时出现的问题。
- C#:修复了 TranslationRecognizer、IntentRecognizer 和 Connection 对象的本机句柄的显式处理。
- C# :修复了 ConversationTranscriber 对象的音频输入生存期管理。
- 修复了从简单短语识别意图时
IntentRecognizer
结果原因未正确设置的问题。 - 修复了未正确设置
SpeechRecognitionEventArgs
结果偏移量的问题。 - 修复了在打开 websocket 连接前 SDK 尝试发送网络消息的争用条件。 添加参与者时,针对
TranslationRecognizer
可重现。 - 修复了关键字识别器引擎中的内存泄漏。
示例
COVID-19 缩减测试
由于过去几周一直在远程工作,我们无法像往常那样执行那么多手动验证测试。 我们没有做我们认为可能会造成任何破坏的任何更改,我们的自动化测试已全部通过。 如果我们遗漏了什么内容,请在 GitHub 上告诉我们。
请保重身体!
语音 SDK 1.11.0:2020 年 3 月版
新功能
- Linux:增加了对 Red Hat Enterprise Linux (RHEL)/CentOS 7 x64 的支持。
- Linux:在 Linux ARM32 和 Arm64 上增加了对 .NET Core C# 的支持。 在此处了解详细信息。
- C#、C++:在
ConversationTranscriptionResult
中添加了UtteranceId
,这是在所有中间产物和最终的语音识别结果中保持一致的一个 ID。 请参阅适用于 C#、C++ 的详细信息。 - Python:增加了对
Language ID
的支持。 参阅 GitHub 存储库中的 speech_sample.py。 - Windows: 在 Windows 平台上为所有 win32 控制台应用程序增加了对压缩的音频输入格式的支持。 有关详细信息,请参阅此文。
- JavaScript:在 NodeJS 中支持语音合成(文本转语音)。 在此处了解更多信息。
- JavaScript:添加了新的 API,用于检查发送和接收的所有消息。 在此处了解更多信息。
Bug 修复
- C#、C++:修复了一个问题,因此
SendMessageAsync
现在以二进制类型发送二进制消息。 请参阅适用于 C#、C++ 的详细信息。 - C#、C++:修复了当使用
Connection MessageReceived
事件时在Connection
对象之前释放Recognizer
可能会导致故障的问题。 请参阅适用于 C#、C++ 的详细信息。 - Android:麦克风的音频缓冲区大小从 800 毫秒减小到 100 毫秒,降低了延迟。
- Android:修复了 Android Studio 中 x86 Android 模拟器的一个问题。
- JavaScript:在
fromSubscription
API 中增加了对中国的区域的支持。 有关详细信息,请参阅此文。 - JavaScript:针对 NodeJS 中的连接失败添加了更多错误信息。
示例
Covid19 缩减测试: 由于过去几周一直在远程工作,我们无法像往常那样执行那么多手动的设备验证测试。 例如,我们无法在 Linux、iOS 和 macOS 上测试麦克风输入与扬声器输出。 我们没有做我们认为可能会破坏这些平台上的任何东西的任何更改,我们的自动化测试已全部通过。 如果我们遗漏了某些内容,请在 GitHub 上告诉我们。
感谢你长久以来的支持。 与往常一样,请在 GitHub 或 Stack Overflow 上发布问题或反馈。
请保重身体!
语音 SDK 1.10.0:2020 年 2 月版
新增功能
- 添加了 Python 包以支持新的 3.8 版 Python。
- Red Hat Enterprise Linux (RHEL)/CentOS 8 x64 支持(C++、C#、Java、Python)。
注意
客户必须根据这些说明配置 OpenSSL。
- 针对 Debian 和 Ubuntu 的 Linux ARM32 支持。
- DialogServiceConnector 现在支持在 BotFrameworkConfig 中使用可选的“机器人 ID”参数。 此参数允许将多个 Direct Line Speech 机器人与单个语音资源配合使用。 如果不指定该参数,将使用默认机器人(由 Direct Line Speech 通道配置页确定)。
- DialogServiceConnector 现有一个 SpeechActivityTemplate 属性。 Direct Line Speech 将使用此 JSON 字符串的内容来预先填充访问 Direct Line Speech 机器人的所有活动(包括响应语音识别等事件时自动生成的活动)中的各种受支持字段。
- TTS 现在使用订阅密钥进行身份验证,降低了创建合成器后第一个合成结果的第一个字节延迟。
- 更新了 19 个区域设置的语音识别模型,平均单词错误率降低了 18.6%(es-ES、es-MX、fr-CA、fr-FR、it-IT、ja-JP、ko-KR、pt-BR、zh-cn、zh-HK、nb-NO、fi-FL、ru-RU、pl-PL、ca-ES、zh-TW、th-TH、pt-PT、tr-TR)。 新模型在多个领域提供了重大改进,其中包括听写、呼叫中心脚本和视频索引方案。
Bug 修复
- 修复了在 JAVA API 中对话听录器未正确等待的 Bug
- Android x86 仿真器修复(针对 Xamarin GitHub 问题)
- 为 AudioConfig 添加了缺失的 (Get|Set)Property 方法
- 修复了在连接失败时无法停止 audioDataStream 的 TTS Bug
- 使用无区域的终结点会导致对话翻译器出现 USP 故障
- 现在,在通用 Windows 应用程序中生成 ID 时会使用适当的唯一 GUID 算法;它以前无意中默认为存根实现,这种实现通常会在大型交互集上造成冲突。
示例
- Unity 示例,可以将语音 SDK 与 Unity 麦克风和推送模式流式处理结合使用
其他更改
语音 SDK 1.9.0:2020 年 1 月版
新增功能
- 为 Android
.aar
包添加了关键字识别支持,并添加了 x86 和 x64 风格的支持。 - Objective-C:已将
SendMessage
和SetMessageProperty
方法添加到Connection
对象。 参阅此处的文档。 - TTS C++ API 现在支持将
std::wstring
用作合成文本输入,这样,在将 wstring 传递给 SDK 之前,无需先将其转换为字符串。 请参阅此处的详细信息。 - C#:现在提供语言 ID 和源语言配置。
- JavaScript:已将一项功能添加到
Connection
对象,以便从语音服务以回调receivedServiceMessage
的形式传递自定义消息。 - JavaScript:感谢 orgads 的贡献,我们现在可以采用
NODE_TLS_REJECT_UNAUTHORIZED
。 请参阅此处的详细信息。
重大更改
OpenSSL
已更新到版本 1.1.1b,并静态链接到适用于 Linux 的语音 SDK 核心库。 如果未在系统的/usr/lib/ssl
目录中安装收件箱OpenSSL
,这可能会造成中断。 请查看语音 SDK 文档下的文档来解决此问题。- 我们已经为 C#
WordLevelTimingResult.Offset
返回的数据类型从int
更改为long
,以便在语音数据超过 2 分钟时能够访问WordLevelTimingResults
。 PushAudioInputStream
和PullAudioInputStream
现在可以根据AudioStreamFormat
(创建这两个类时选择性地指定)将 wav 标头信息发送到语音服务。 现在,客户必须使用支持的音频输入格式。 任何其他格式会导致识别结果欠佳,或者导致出现其他问题。
Bug 修复
- 请参阅上述“中断性变更”中的
OpenSSL
更新。 修复了 Linux 和 Java 中的间歇性崩溃和性能问题(负载较高时发生锁争用)。 - Java: 改进了高并发方案中的对象封闭。
- 重构了我们的 NuGet 包。 我们删除了 lib 文件夹下
Microsoft.CognitiveServices.Speech.core.dll
和Microsoft.CognitiveServices.Speech.extension.kws.dll
的三个副本,使 NuGet 包更小、下载更快,并添加了编译某些 C++ 本机应用所需的标头。 - 修复了此处的快速入门示例。 修复的问题是在 Linux、macOS、Windows 上退出但不显示“未找到麦克风”异常。
- 修复了在某些代码路径中处理较长语音识别结果时发生 SDK 崩溃的问题,如此示例所示。
- 修复了 Azure Web 应用环境中的 SDK 部署错误,并解决了此客户问题。
- 修复了在使用多
<voice>
标记或<audio>
标记时出现的 TTS 错误以解决此客户问题。 - 修复了从挂起状态恢复 SDK 时出现的 TTS 401 错误。
- JavaScript:感谢 euirim 的贡献,修复了音频数据的循环导入。
- JavaScript:添加了设置服务属性的支持(版本 1.7 中已添加此项支持)。
- JavaScript:修复了以下问题:连接错误可能导致 websocket 重新连接尝试连续失败。
示例
其他更改
- 优化了 Android 上的 SDK 核心库大小。
- 1.9.0 及更高版本中的 SDK 支持对话听录器的语音签名版本字段中的
int
和string
类型。
语音 SDK 1.8.0:2019-November 版本
新增功能
- 添加了一个
FromHost()
API,以方便用户将其与本地容器和主权云配合使用。 - 为语音识别添加了源语言识别功能(在 Java 和 C++ 中)
- 为语音识别添加了
SourceLanguageConfig
对象,用于指定所需的源语言(在 Java 和 C++ 中) - 通过 NuGet 和 Unity 包在 Windows (UWP)、Android 和 iOS 上添加了
KeywordRecognizer
支持 - 添加了远程对话 Java API,用于以异步批的方式进行对话听录。
重大更改
- 对话听录器功能已移到
Microsoft.CognitiveServices.Speech.Transcription
命名空间下。 - 部分对话听录器方法已移到新的
Conversation
类。 - 放弃了对 32 位(ARMv7 和 x86)iOS 的支持
Bug 修复
- 针对以下问题进行了修复:如果在不使用有效语音服务订阅密钥的情况下使用本地
KeywordRecognizer
,则会发生故障
示例
KeywordRecognizer
的 Xamarin 示例KeywordRecognizer
的 Unity 示例- 用于自动源语言识别的 C++ 和 Java 示例。
语音 SDK 1.7.0:2019-September 版本
新增功能
- 添加了对通用 Windows 平台 (UWP)、Android 和 iOS 上的 Xamarin 的测试版支持
- 添加了对 Unity 的 iOS 支持
- 增加了对 Android、iOS 和 Linux 上的 ALaw、Mulaw、FLAC 的
Compressed
输入支持 - 在
Connection
类中添加了SendMessageAsync
,用于向服务发送消息 - 在用于设置消息属性
Connection
类中添加了SetMessageProperty
- TTS 为 Java(JRE 和 Android)、Python、Swift 和 Objective-C 添加了绑定
- TTS 添加了对 macOS、iOS 和 Android 的播放支持。
- 为 TTS 添加了“字边界”信息。
Bug 修复
- 修复了 Unity 2019 for Android 上的 IL2CPP 生成问题
- 修复了 wav 文件输入中格式错误的标头被错误处理的问题
- 修复了 UUID 在某些连接属性中不唯一的问题
- 修复了一些关于 Swift 绑定中说明符为 Null 性的警告(可能需要对代码进行少量更改)
- 修复了一个 Bug,该 Bug 导致 websocket 连接在网络负载下被意外关闭
- 修复了 Android 上的一个问题,该问题有时候导致
DialogServiceConnector
使用的印象 ID 重复 - 改进了进行多轮交互时连接的稳定性,以及它们发生在
DialogServiceConnector
上时(通过Canceled
事件)对故障进行的报告 - 现在,
DialogServiceConnector
会话开始时会正确提供事件,包括在活动StartKeywordRecognitionAsync()
期间调用ListenOnceAsync()
的时候 - 解决了与收到的
DialogServiceConnector
活动相关联的崩溃
示例
- Xamarin 的快速入门
- 使用 Linux Arm64 信息更新了 CPP 快速入门
- 使用 iOS 信息更新了 Unity 快速入门
语音 SDK 1.6.0:2019 年 6 月发布
示例
- UWP 和 Unity 上的文本转语音快速入门示例
- iOS 上的 Swift 快速入门示例
- 语音和意向识别及翻译 Unity 示例
DialogServiceConnector
的更新的快速入门示例
改进 / 更改
- 对话命名空间:
SpeechBotConnector
已重名为DialogServiceConnector
BotConfig
已重名为DialogServiceConfig
BotConfig::FromChannelSecret()
已重新映射到DialogServiceConfig::FromBotSecret()
- 重命名后,仍旧支持所有现有的 Direct Line 语音客户端
- 更新了 TTS REST 适配器以支持代理和持久连接
- 改进了传递无效区域时出现的错误消息
- Swift/Objective-C:
- 改进了错误报告:可能导致出错的方法现在有两个版本:一个版本公开用于错误处理的
NSError
对象,另一个版本引发异常。 前者向 Swift 公开。 此更改需要适应现有的 Swift 代码。 - 改进了事件处理
- 改进了错误报告:可能导致出错的方法现在有两个版本:一个版本公开用于错误处理的
Bug 修复
- 针对 TTS 进行了以下问题的修复:
SpeakTextAsync
不等到音频完成渲染就会提前返回 - 修复了 C# 中的封送字符串,以支持完整语言
- 修复了示例中的 .NET Core 应用问题,以使用 net461 目标框架加载核心库
- 修复了示例中的偶发性问题,以将本机库部署到输出文件夹
- 修复了 Web 套接字可靠关闭的问题
- 修复了在 Linux 负载较高的情况下打开连接时可能发生崩溃的问题
- 修复了 macOS 框架捆绑包中缺少元数据的问题
- 修复了 Windows 上的
pip install --user
问题
语音 SDK 1.5.1
这是一个 Bug 修复版本,只影响本机/托管 SDK。 它不影响 SDK 的 JavaScript 版本。
Bug 修复
- 修复了 FromSubscription 与对话听录一起使用时出现的问题。
- 修复了语音助理的关键字辨识功能的 bug。
语音 SDK 1.5.0:2019 年 5 月发布
新增功能
- 现已推出适用于 Windows 和 Linux 的关键字辨识 (KWS)。 KWS 功能可能适用于任何麦克风类型,不过,官方的 KWS 支持目前仅限于 Azure Kinect DK 硬件或语音设备 SDK 中的麦克风阵列。
- 短语提示功能通过 SDK 提供。 有关详细信息,请参阅此文。
- 对话听录功能通过 SDK 提供。
- 添加了对使用 Direct Line Speech 通道的语音助理的支持。
示例
- 添加了 SDK 支持的新功能或新服务的示例。
改进 / 更改
- 添加了各种识别器属性,以调整服务行为或服务结果(例如屏蔽猥亵内容等)。
- 现在,即使你创建了识别器
FromEndpoint
,也能通过标准配置属性来配置识别器。 - Objective-C:已将
OutputFormat
属性添加到SPXSpeechConfiguration
。 - SDK 现在支持将 Debian 9 用作 Linux 分发版。
Bug 修复
- 修复了文本转语音中过早销毁讲述人资源的问题。
语音 SDK 1.4.2
这是一个 Bug 修复版本,只影响本机/托管 SDK。 它不影响 SDK 的 JavaScript 版本。
语音 SDK 1.4.1
这是一个仅限 JavaScript 的版本。 未增加任何功能。 进行了以下修复:
- 阻止 Web 包加载 https-proxy-agent。
语音 SDK 1.4.0:2019 年 4 月发布
新增功能
- SDK 现在支持 beta 版本的文本转语音服务。 Windows 和 Linux 桌面版中的 C++ 和 C# 支持该版本。 有关详细信息,请查看文本转语音概述。
- SDK 现在支持将 MP3 和 Opus/OGG 音频文件用作流输入文件。 此功能只能通过 C++ 和 C# 在 Linux 上使用,目前为 beta 版(更多详细信息请参见此处)。
- 适用于 Java、.NET Core C++和 Objective-C 的语音 SDK 已获得 macOS 支持。 macOS 的 Objective-C 支持目前以 beta 版提供。
- iOS:适用于 iOS (Objective-C) 的语音 SDK 现在也已作为 CocoaPod 发布。
- JavaScript:支持将非默认麦克风用作输入设备。
- JavaScript:Node.js 的代理支持。
示例
- 添加了有关在 macOS 上的 C++ 和 Objective-C 中使用语音 SDK 的示例。
- 已添加用于演示文本转语音服务用法的示例。
改进 / 更改
- Python: 现在会通过
properties
属性公开识别结果的附加属性。 - 若要获得更多开发和调试支持,可将 SDK 日志记录和诊断信息重定向到日志文件中(更多详细信息请参见此处)。
- JavaScript:提高了音频处理性能。
Bug 修复
- Mac/iOS:修复了未能与语音服务建立连接时导致长时间等待的 bug。
- Python:改进了 Python 回调中的参数的错误处理。
- JavaScript:修复了 RequestSession 中结束的语音的错误状态报告。
语音 SDK 1.3.1:2019 年 2 月刷新
这是一个 Bug 修复版本,只影响本机/托管 SDK。 它不影响 SDK 的 JavaScript 版本。
Bug 修复
- 修复了使用麦克风输入时出现的内存泄漏问题。 基于流的输入或文件输入不受影响。
语音 SDK 1.3.0:2019 年 2 月版本
新增功能
- 语音 SDK 支持通过
AudioConfig
类来选择输入麦克风。 这样,便可以将音频数据从非默认麦克风流式传输到语音服务。 有关详细信息,请参阅介绍音频输入设备选择的文档。 此功能在 JavaScript 中尚不可用。 - 语音 SDK 目前在 beta 版本中支持 Unity。 请通过 GitHub 示例存储库中的问题部分来提供反馈。 此版本支持在 Windows x86 和 x64(桌面或通用 Windows 平台应用程序)以及 Android(ARM32/64,x86)上使用 Unity。 Unity 快速入门中提供了更多信息。
- 不再需要
Microsoft.CognitiveServices.Speech.csharp.bindings.dll
文件(在以前的版本中提供)。 此功能现在集成到核心 SDK 中。
示例
示例存储库中提供了以下新内容:
AudioConfig.FromMicrophoneInput
的其他示例。- 有关意向识别和翻译的更多 Python 示例。
- 有关在 iOS 中使用
Connection
对象的更多示例。 - 有关具有音频输出的翻译的更多 Java 示例。
- 有关使用批量听录 REST API 的新示例。
改进 / 更改
- Python
- 改进了
SpeechConfig
中的参数验证和错误消息。 - 添加了对
Connection
对象的支持。 - 支持 Windows 上的 32 位 Python (x86)。
- 适用于 Python 的语音 SDK 已完成 beta 版本。
- 改进了
- iOS
- SDK 现在是基于 iOS SDK 版本 12.1 构建的。
- SDK 现在支持 iOS 版本 9.2 及更高版本。
- 改进了参考文档并修复了多个属性名称。
- JavaScript
- 添加了对
Connection
对象的支持。 - 添加了捆绑的 JavaScript 的类型定义文件
- 首次支持并实现了短语提示。
- 随服务 JSON 返回属性集合以用于识别
- 添加了对
- Windows DLL 现在包含一个版本资源。
- 如果创建识别器
FromEndpoint
,则可将参数直接添加到终结点 URL。 使用FromEndpoint
时,无法通过标准的配置属性来配置识别器。
Bug 修复
- 过去无法正确处理空的代理用户名和代理密码。 在此版本中,如果将代理用户名和代理密码设置为空字符串,则在连接到代理时不会提交它们。
- 对于某些语言/环境,由 SDK 创建的 SessionId 并非总是真正随机的。 已添加了随机生成器初始化来修复此问题。
- 改进了对授权令牌的处理。 如果希望使用授权令牌,请在
SpeechConfig
中进行指定并将订阅密钥保留为空。 然后,像往常一样创建识别器。 - 过去,在某些情况下,
Connection
对象不能正确释放。 现在已修复此问题。 - JavaScript 示例已修复,在 Safari 上也支持用于翻译合成的音频输出。
语音 SDK 1.2.1
这是一个仅限 JavaScript 的版本。 未增加任何功能。 进行了以下修复:
- 在 turn.end 处触发流结束,在 speech.end 处不触发。
- 修复了音频泵中在当前发送失败时不安排下一次发送的 bug。
- 修复了使用身份验证令牌进行的连续识别。
- 对不同识别器 / 终结点的 bug 修复。
- 文档改进。
语音 SDK 1.2.0:2018 年 12 月版本
新增功能
- Python
- 此版本支持 Python 的 Beta 版本(3.5 及更高版本)。 有关详细信息,请参阅此文](../../quickstart-python.md)。
- JavaScript
- (属于
Connection
对象)的父级。- 可以从
Recognizer
中访问Connection
对象。 此对象允许你显式启动服务连接并订阅连接事件和断开连接事件。 (此功能在 JavaScript 和 Python 中尚不可用。)
- 可以从
- 支持 Ubuntu 18.04。
- Android
- 在生成 APK 期间启用了 ProGuard 支持。
改进
- 改进了内部线程的使用,减少了线程、锁和互斥的数量。
- 改进了错误报告 / 信息。 在某些情况下,错误消息没有完全传播出去。
- 更新了 JavaScript 中的开发依赖项来使用最新模块。
Bug 修复
- 修复了由于
RecognizeAsync
中的类型不匹配导致的内存泄漏。 - 在某些情况下,异常会被泄露。
- 修复了翻译事件参数中的内存泄漏。
- 修复了长时间运行的会话中与重新连接相关的锁定问题。
- 修复了可能会导致失败的翻译缺少最终结果的问题。
- C#:如果在主线程中没有等待
async
操作,则可能会在异步任务完成之前释放识别器。 - Java: 修复了导致 Java VM 故障的一个问题。
- Objective-C:修复了枚举映射;之前返回 RecognizedIntent 而非
RecognizingIntent
。 - JavaScript:在
SpeechConfig
中将默认输出格式设置为“simple”。 - JavaScript:删除了 JavaScript 和其他语言中配置对象中的属性之间的不一致。
示例
- 更新并修复了几个示例(例如,翻译的输出语音,等等)。
- 在示例存储库中添加了 Node.js 示例。
语音 SDK 1.1.0
新增功能
- 对 Android x86/x64 的支持。
- 代理支持:在
SpeechConfig
对象中,现在可以调用某个函数来设置代理信息(主机名、端口、用户名和密码)。 此功能在 iOS 上尚不可用。 - 改进了错误代码和消息。 如果识别返回了错误,这在过去会将
Reason
(在已取消事件中)或CancellationDetails
(在识别结果中)设置为Error
。 取消的事件现在包含两个附加的成员:ErrorCode
和ErrorDetails
。 如果服务器随所报告的错误返回了附加的错误信息,则现在将在新成员中提供该信息。
改进
- 在识别器配置中添加了附加的验证并添加了附加的错误消息。
- 改进了对音频文件中间的长时间静默的处理。
- NuGet 包:对于 .NET Framework 项目,它阻止使用 AnyCPU 配置进行构建。
Bug 修复
- 修复了在识别器中发现的几处异常。 此外,还会捕获异常并将其转换为
Canceled
事件。 - 修复了属性管理中的内存泄漏。
- 修复了音频输入文件可能会导致识别器发生故障的 bug。
- 修复了在会话停止事件后可能会接收事件的 bug。
- 修复了线程中的一些争用条件。
- 修复了可能会导致故障的 iOS 兼容性问题。
- 改进了对 Android 麦克风的支持的稳定性。
- 修复了 JavaScript 中的识别器将忽略识别语言的 bug。
- 修复了阻止在 JavaScript 中设置
EndpointId
(在某些情况下)的 bug。 - 更改了 JavaScript 中的 AddIntent 中的参数顺序,并添加了缺少的
AddIntent
JavaScript 签名。
示例
- 在示例存储库中添加了拉取和推送流用法的 C++ 和 C# 示例。
语音 SDK 1.0.1
可靠性改进和 bug 修复:
- 修复了处理识别器时由于争用条件而导致的潜在严重错误
- 修复了未设置属性时的潜在灾难性错误。
- 添加了其他错误检查和参数检查。
- Objective-C:修复了 NSString 中名称替代而引起的潜在严重错误。
- Objective-C:调整了 API 的可见性
- JavaScript:针对事件及其有效负载进行了修复。
- 文档改进。
在示例存储库中已添加了适用于 JavaScript 的新示例。
Azure AI 语音 SDK 1.0.0:2018 年 9 月版本
新增功能
- 支持 iOS 中的 Objective-C。 请查看适用于 iOS 的 Objective-C 快速入门。
- 支持浏览器中的 JavaScript。 请查看 JavaScript 快速入门。
重大更改
- 该版本中推出了大量重大更改。 有关详细信息,请查看此页。
Azure AI 语音 SDK 0.6.0:2018 年 8 月版本
新增功能
- 使用语音 SDK 生成的 UWP 应用现在可以通过 Windows 应用认证工具包 (WACK)。 请查看 UWP 快速入门。
- 在 Linux (Ubuntu 16.04 x64) 上支持 .NET Standard 2.0。
- 试验:在 Windows (64-bit) 和 Linux (Ubuntu 16.04 x64) 上支持 Java 8。 请查看 Java 运行时环境快速入门。
功能性更改
- 公开了关于连接错误的更多错误详细信息。
重大更改
- 在 Java (Android) 中,
SpeechFactory.configureNativePlatformBindingWithDefaultCertificate
函数不再需要路径参数。 现在,在所有受支持的平台上都会自动检测路径。 - 在 Java 和 C# 中,属性
EndpointUrl
的 get 访问器已被删除。
Bug 修复
- 在 Java 中,目前在翻译识别器上实现了音频合成结果。
- 修复了一个 bug,该 bug 可能会导致非活动线程和更多的已打开且未使用的套接字。
- 修复了长时间运行的识别可能会在传输过程中终止的问题。
- 修复了识别器关闭过程中的一个争用条件。
Azure AI 语音 SDK 0.5.0:2018 年 7 月版本
新增功能
- 支持 Android 平台(API 23:Android 6.0 Marshmallow 或更高版本)。 查看 Android 快速入门。
- 在 Windows 上支持 .NET Standard 2.0。 查看 .NET Core 快速入门。
- 试验:在 Windows 上支持 UWP(版本 1709 或更高版本)。
- 请查看 UWP 快速入门。
- 请注意,使用语音 SDK 生成的 UWP 应用尚未通过 Windows 应用认证工具包 (WACK) 的认证。
- 通过自动重新连接支持识别功能长时间运行。
功能性更改
StartContinuousRecognitionAsync()
支持识别功能长时间运行。- 识别结果包含更多字段。 这些字段是识别文本的音频开始和持续时间(均以刻度为单位)的偏移量和表示识别状态的其他值(例如
InitialSilenceTimeout
、InitialBabbleTimeout
)。 - 支持 AuthorizationToken 用于创建工厂实例。
重大更改
- 识别事件:
NoMatch
事件类型已合并到Error
事件中。 - C# 中的 SpeechOutputFormat 已重命名为
OutputFormat
以与 C++ 保持一致。 AudioInputStream
接口的某些方法的返回类型略有更改:- 在 Java 中,
read
方法现返回long
而不是int
。 - 在 C# 中,
Read
方法现返回uint
而不是int
。 - 在 C++ 中,
Read
和GetFormat
方法现返回size_t
而不是int
。
- 在 Java 中,
- C++:音频输入流的实例现在只能作为
shared_ptr
传递。
Bug 修复
- 修复了
RecognizeAsync()
超时时结果中的错误返回值。 - 删除了 Windows 上媒体基础库的依赖项。 SDK 现在使用 Core Audio API。
- 文档修复:添加了一个区域页来描述支持的区域。
已知问题
- 适用于 Android 的语音 SDK 不报告用于翻译的语音合成结果。 此问题将在下一版本中修复。
Azure AI 语音 SDK 0.4.0:2018 年 6 月版本
功能性更改
AudioInputStream
一种现可将流用作音频源的识别器。 有关详细信息,请参阅相关操作说明指南。
详细输出格式
创建
SpeechRecognizer
时,可请求Detailed
或Simple
输出格式。DetailedSpeechRecognitionResult
包含置信度分数、识别的文本、原始词法形式、标准化形式和已屏蔽不当字词的标准化形式。
重大更改
- 将 C# 中的
SpeechRecognitionResult.RecognizedText
更改为SpeechRecognitionResult.Text
。
Bug 修复
- 修复了关闭期间 USP 层中可能出现的回叫问题。
- 如果识别器使用了音频输入文件,则它在文件句柄上停留的时间将超过必要时间。
- 删除了消息泵和识别器之间的多个死锁。
- 在服务的响应超时后触发
NoMatch
结果。 - Windows 上的媒体基础库为延迟加载。 此库仅用于麦克风输入。
- 音频数据的上传速度约限制为原始音频速度的两倍。
- 在 Windows 上,C# .NET 程序集现在为强命名。
- 文档修复:
Region
是创建识别器所必需的信息。
已添加更多示例,还将持续更新。 有关最新的示例集,请参阅语音 SDK 示例 GitHub 存储库。
Azure AI 语音 SDK 0.2.12733:2018 年 5 月版本
此版本是 Azure AI 语音 SDK 的第一个公共预览版本。