Azure 语音会持续更新。 为了让大家随时了解最新的开发成果,本文介绍了新版本和新功能。
Note
以下已发布的版本、日期和内容仅对应于 Microsoft Azure 云的实际部署。
它提供大多数情况下Azure公有云上Azure语音服务的演变历史记录。 请注意,在某些情况下,它可能与世纪互联运营Azure的实际部署不一致。
发行说明
选择服务或资源
Important
语音 SDK 1.48.2 及更新版本包含了针对 Linux 和 Android 上证书吊销列表(CRL)分区问题的关键修补程序。 如果在启用了 CRL 检查的情况下使用任一平台,请在 2026 年 7 月 1 日之前升级到 1.48.2 或更高版本。 有关详细信息,请参阅 CRL 兼容性更新。
Important
通过语音 SDK 的内容评估(预览版)于 2025 年 7 月停用。 相反,可以使用 Azure OpenAI 模型获取内容评估结果,如 内容评估文档中所述。
语音 SDK 1.51.1:2026 年 7 月版本
新增功能
- 语音 SDK 核心现已以源代码形式面向 C++ 开发人员提供。 如果需要从源生成语音 SDK 二进制文件,请参阅 语音 SDK 源存储库。 请注意,源版本不包括编译的语音 SDK 包中提供的每个功能。
故障修复
- 修复了使用只读模型存储时的嵌入式语音初始化失败。
语音 SDK 1.51:2026 年 7 月版
新增功能
- 添加了对语音识别中立体声输入音频的多通道处理的支持。
- 由于服务停用,已删除对话翻译器(多设备对话)支持功能。
- Android: 已将 OpenSSL 更新为 3.0.21。
- C#、C++: 添加了通过新的 PropertyId.AudioProcessing_EchoCancellationModelPath 属性在 AudioProcessingOptions 上配置自定义 AEC(回显取消)模型路径的支持。
- Go,Python:添加了对嵌入式语音的支持。
- iOS、macOS:添加了 Swift 程序包管理器 支持。
故障修复
- 修复了 WebSocket 连接拆解期间的崩溃(问题 2976)。
- 修复了 TranslationRecognizer 丢弃重叠目标语言代码的问题(问题 3024)。
- 修复了使用 REST 后端时的 TTS 令牌凭据错误。
- C#,Java:修复了在 KeywordRecognizer 停止(问题 3055)时出现异常/挂起的问题。
- C#、Java、Python:修复了进程拆解过程中的 EventLogger 崩溃。
- iOS、macOS: 修复了 TTS SSML/文本输入中包含嵌入的 NUL 或无效 UTF-8 时发生的崩溃问题。
- Linux: 修复了从pal_azure_c_shared库导出的内部符号(问题 3001)。
Samples:
- 删除了 ConversationTranslator 示例。
- 由于为Microsoft第一方应用程序保留了该功能,因此删除了 MeetingTranscriber 示例。
- Python:添加了嵌入式语音的示例。
适用于 JavaScript 的语音 SDK (1.51)
新增功能
- 为 JavaScript SDK 中缺失的语音上下文字段补充了设置方法。
- 添加了对语音识别中立体声输入音频的多通道处理的支持。
- 由于服务停用,已删除对话翻译器(多设备对话)支持功能。
故障修复
- 修复了使用自定义域名时 TTS REST 请求的问题。
Samples:
- 修复了浏览器示例未显示翻译结果(问题 2786)。
语音 SDK 1.50:2026-5 月版本
新功能:
- 添加了对翻译更新期间每个目标语言的动态语音配置的支持。
- 添加了对语音识别中源语言自动检测的支持。
- 将 Android OpenSSL 更新为 3.0.20。
- 添加了对通过 PostProcessingOption 配置后处理行为的支持,以提高最终脚本准确性。
漏洞修复:
- 修复了 TTS 连接中的竞态条件。
- 修复了使用 EventLoggerCallback 时的 Android 崩溃。
- 修复了重定向后 URL 查询参数被转换为小写的问题。
- 修复了 JSON 分析器中的漏洞。
Samples:
- 没有示例更新。
适用于 JavaScript 的语音 SDK
新功能:
- 添加了对通过 PostProcessingOption 配置后处理行为的支持,以提高最终脚本准确性。
漏洞修复:
- 修复了在最近 Node.js 版本中使用 SpeechConfig.setProxy(...)时无效的代理配置。
语音 SDK 1.49.1:2026 年 4 月版本
漏洞修复:
- 修复了嵌入式语音遥测处理中的崩溃。
语音 SDK 1.49:2026 年 4 月版本
关于目标平台支持的说明:
- 此版本中已删除 Android x86 支持。
新功能:
- 已将 Android OpenSSL 更新为 3.0.19。
- Python: 优化 Linux 滚轮大小。
漏洞修复:
- 修复了嵌入式语音中的内存泄漏。
- 修复嵌入式语音识别中符号转录不正确的问题。
- Python:修复了语音合成事件句柄泄漏。
适用于 JavaScript 的语音 SDK
新功能:
- 添加了对
PropertyId.SpeechServiceResponse_PostProcessingOption的处理。 - 添加了语音合成延迟度量。
- 添加了语音合成输入文本流式处理支持。
- 添加了对语言更改时翻译合成更新的支持。
漏洞修复:
- 修复了未正确请求的详细识别结果。
- 修复了使用
DialogServiceConnector时遇到无效令牌导致的无限递归问题。 - 修复了语音合成 URL 重定向不适用于用户指定的路径。
语音 SDK 1.48.2:2026 年 2 月版本
Important
此版本包括针对 Linux 和 Android 上的证书吊销列表(CRL)分区处理的关键性修复。 如果在启用 CRL 检查的情况下使用任一平台,请在 2026 年 7 月 1 日之前升级到 1.48.2。 有关详细信息,请参阅 CRL 兼容性更新。
漏洞修复:
- 修复了 Linux 和 Android 上的 CRL 缓存密钥逻辑,以正确处理已分区 CRL。 SDK 现在同时使用颁发者名称和 CRL 分发点作为缓存密钥,从而防止在跨 Azure 区域或证书轮换后出现
X509_V_ERR_DIFFERENT_CRL_SCOPE(错误 44)失败。 - 修复了启用 CRL 检查后 Linux 和 Android 上的证书轮换后的潜在连接失败。
语音 SDK 1.48.1:2026 年 2 月版本
关于目标平台支持的说明:
- 此版本后,将删除 Android x86 支持。
新功能:
- 默认情况下,Linux 和 Android 上禁用了 CRL 检查。
- 增强的网络错误处理和日志记录。
- 优化了大型短语列表的构造时间。
- Java: 添加了对语音合成输入文本流式处理的支持。
- Java: 改进了 JNI 内存管理。
- Javascript: 识别延迟指标 - 识别结果现在包括用于测量音频输入到结果的端到端延迟的SpeechServiceResponse_RecognitionLatencyMs属性。
- Javascript: 识别器的停止超时 - 新的Recognizer_StopTimeoutMs属性为 stopContinuousRecognitionAsync() 启用超时保护。 设置后,如果服务未在指定时间内完成,则作会立即取消,而不是无限期地等待。
- Javascript: 虚拟形象场景配置 - 新的 AvatarSceneConfig 类允许配置虚拟形象缩放、位置(X/Y)、旋转(X/Y/Z)和振幅。 场景可以通过 AvatarSynthesizer.updateSceneAsync()在运行时更新。
漏洞修复:
- 修复了启用日志功能时听写模式下的崩溃。
- 修复了网络堆栈中与 CRL 相关的内存泄漏问题。
- 修复了嵌入式语音识别中有时缺少的性能计数器数据。
- 修复了嵌入式语音合成中与标点符号的静音长度映射。
- 修复了混合语音合成中的词边界缓存问题。
- Javascript: 自动源语言检测现在接受空白/空的“from”语言参数。
- Javascript: 已添加 @azure/core-auth 为 SDK 依赖项,用于改进 Azure 标识集成。
Samples:
Java、Python: 更新了多个依赖项的版本,以解决安全漏洞。
语音 SDK 1.47:2025-11 月版本
Important
由于 Windows 10 主流支持结束,因此取消对 32 位系统的支持,包括 x86 和 ARM(https://support.microsoft.com/windows/windows-10-support-has-ended-on-october-14-2025-2ca8b313-1946-43d3-b55c-2b95b107f281)。
新功能:
- 更改了默认策略,因为网络条件阻止访问 Linux 客户端上的联机证书吊销信息,因此忽略错误。
- [JavaScript]添加了对指定照片头像的基础模型名称的支持。
漏洞修复:
- 修复了嵌入式 TTS 中的 libxml2 漏洞。
- 修复了自定义终结点与 ConversationTranscriber 不兼容的问题。
- 修复了处理特殊字符时不正确的 TTS 字边界事件(https://github.com/Azure-Samples/cognitive-services-speech-sdk/issues/2359)。
- [C#] 修正了缺失的 MonoPInvokeCallback 属性(https://github.com/Azure-Samples/cognitive-services-speech-sdk/issues/2948)。
- [iOS]修复了 .NET 9 项目链接器错误(https://github.com/Azure-Samples/cognitive-services-speech-sdk/issues/2939)。
- [Java]修复了“修改后的 UTF-8”范围中识别结果字符的处理。
- [Python] 修复了 speech_config 中的 SpeechServiceConnection_EnableAudioLogging 在 ConversationTranscriber 中无法工作的问题。
- [Windows]修复了使用 TLS 时 WebSocket 连接中的内存泄漏问题(https://github.com/Azure-Samples/cognitive-services-speech-sdk/issues/2925)。
示例更新:
- 删除了意向识别示例(由于服务停用,C++ 中意向识别的独立实现除外)。
- 由于服务停用,删除了说话人识别示例。
- 删除了 Unity 示例,因为最新的语音 SDK Unity 包是随 1.44 版本发布的,并且不再有直接支持。
破坏性更改:
- 由于服务停用,已删除意图识别支持。
- 由于服务停用,已删除说话人识别支持。
语音 SDK 1.46:2025-9 月版本
新功能:
- 添加了对
Speech_StartEventSensitivity属性的语音启动事件敏感度支持。 - 已弃用
SpeechServiceConnection_EndSilenceTimeoutMs的属性。 - 已停用发音评估中的内容评估功能。
- 将 Android OpenSSL 更新为 3.0.17。
- 向遥测队列添加了大小限制,以防止内存使用量增长。
- 在 TTS 中添加了缓存读取的超时防护措施,以防止潜在的 IO 挂起。
- 添加了可配置属性来控制 URL 重定向缓存行为。
- [C#]添加了对基于 EventSource 的日志记录的支持。
- [Python]添加了对 AzureKeyCredential 身份验证的支持。
故障修复
- 修复了嵌入文本转语音中的 ja-JP 发音问题。
- 修复了嵌入式语音转文本中长时间内存使用量显著增加的情况。
- 修复了由竞争条件引发的崩溃,发生在超时停止识别期间。
- [JavaScript]修复了
fromHost无法与 Docker 容器服务正常运作的问题。
示例
- 更新了示例,演示如何使用
AzureKeyCredential和Microsoft Entra ID token credential身份验证。 - [JavaScript,Python] 更新了示例以使用
fromEndpoint。
语音 SDK 1.45:2025-7 月版本
新功能:
- 添加了对设置短语列表语法权重的支持。
- 添加了更具体的文件打开错误代码。
- 更新了 Unicode 路径支持,以便 SDK Windows DLL 可以位于非 ASCII 路径下。
- 更新了分段策略属性的说明,使其与服务逻辑保持一致。
- [C#, Java] 添加了对使用 ApiKeyCredential 进行身份验证的支持。
故障修复
- 修复了某些区域中有关麦克风几何图形的Microsoft音频堆栈(MAS)初始化错误。
- 修复了语音翻译中不雅用语设置不起作用的问题(https://github.com/Azure-Samples/cognitive-services-speech-sdk/issues/2856)。
- 修复了在使用日语进行意图识别模式匹配时发生的崩溃。
- 修复了 Node.js v22 或更高版本的自定义域解析无法正常工作的问题。
示例
- [Java]添加了示例代码,用于演示Microsoft Entra ID 令牌凭据身份验证。
语音 SDK 1.44.1:修补版本
SDK 版本 1.44.1 仅针对 JavaScript 发布了 4 个 bug 修复:
故障修复
- 修复了仅提供一个分段控制参数时的范围不足异常。
- enableDictation 未被正确传递到语音服务。
- 使用 fromEndpoint 方法创建时,ConversationTranscriber 未使用正确的 URL 路径。
- 修复了在输入流分离后推送数据时出现的错误。
语音 SDK 1.44:2025 年 5 月版本
Important
对目标平台的支持正在更改:
- 最低支持的 Android 版本现在是 Android 8.0(API 级别 26)。
- 此版本后,语音 SDK Unity 包的发布将暂停。
新功能:
- 添加了对 Android 16 KB 内存页大小的支持。
- 减少了嵌入式语音识别中 SpeechStartDetected 事件的延迟。
- [C++, Python] 添加了一种方法来获取 AudioDataStream 的可用大小。
- [C++, Python] 添加了对语音合成请求中的自定义词典 URL 和首选区域设置的支持。
- [Java,Python] 增加了对 Microsoft Entra 令牌身份验证的支持,并实现了自动令牌刷新功能。
- [Go]添加了对对话听录的支持。
故障修复
- 修复了使用源语言检测时翻译语音合成不起作用的问题。
- 修复了文件路径中含有非 ASCII 编码字符导致嵌入式语音模型、KWS 模型或日志文件无法正常工作的问题(https://github.com/Azure-Samples/cognitive-services-speech-sdk/issues/2288)。
- 修复了某些条件下嵌入式语音识别中的 NoMatch 循环。
- 修复了由于事件断开连接时识别未标记为已停止而阻止本机对象的析构函数。
- 修复了在某些情况下 IntentRecognizer 模式匹配无法正确处理多字节字符。
- 对 Connection 对象的调用
Close()不是同步的。 - 修复了可能导致崩溃的连接解除分配中的争用条件。
- [macOS]修复了控制台上出现的“信息:”消息(https://github.com/Azure-Samples/cognitive-services-speech-sdk/issues/2610)。
示例
- [Python] 为
recognizer添加了使用 Microsoft Entra 令牌凭据的示例代码。
适用于 JavaScript 的语音 SDK
新功能:
- 更新了开发依赖项:TypeScript 3.5.3 → 4.5
- 更新了 TranslationRecognizer,以默认使用 V2 接口。
- 更新了 SpeechRecognizer 以使用 V2 终结点。
- 这会导致不再收到 NoMatch 结果。
- 为语音识别和翻译添加了对 Microsoft Entra 基于令牌的身份验证的支持。
- 已将 FromEndpoint API 更新为针对大多数方案构建 SpeechConfig 的建议方法。
- 适用于使用:
- 语音识别器
- TranslationRecognizer (通过 SpeechTranslationConfig)
- 会话转录器
- 语音合成器
- 现在,可以使用 Azure 门户中的语音终结点和 Microsoft Foundry 资源来构造 SpeechConfig 对象。
- 构造 SpeechConfig 的所有其他方法将继续正常运行,并且受支持。
- 适用于使用:
故障修复
- 修复了不受支持的连接关闭代码上的无限连接重试循环(https://github.com/microsoft/cognitive-services-speech-sdk-js/issues/896)。
语音 SDK 1.43:2025 年 3 月版本
Note
Ubuntu 20.04“标准安全维护”将于 2025 年 4 月到期 ,不再可用作 ADO 生成代理。 未来的语音 SDK 版本需要 Ubuntu 22.04 LTS(而不是 Ubuntu 20.04)作为支持的最低版本。
新功能:
- 已将 FromEndpoint API 更新为针对大多数方案构建 SpeechConfig 的建议方法。
- 适用于使用:
- 语音识别器
- TranslationRecognizer (通过 SpeechTranslationConfig)
- 会话转录器
- SpeechSynthesizer 在所有编程语言中,JavaScript 除外。
- 现在,您可以从 Azure 门户中使用语音和认知服务资源的端点来构建 SpeechConfig 对象。
- 构造 SpeechConfig 的所有其他方法将继续正常运行,并且受支持。
- 适用于使用:
- 更新了 TranslationRecognizer,以默认使用 V2 接口。
- 这会在使用 V2 终结点时将控制参数从 URL 移到通道内消息。
- 行为更改:为“zh”返回的默认语言现在为“zh-cn”而不是“zh-hans”
- 为SpeechSynthesis_FrameTimeoutInterval和SpeechSynthesis_RtfTimeoutThreshold添加了属性 ID。
- 针对长时间运行的识别,已优化 SDK 的重新连接次数。
- [C++,Python]添加了对在文本流式处理请求中指定样式和温度的支持。
- [C#] 添加了在使用 FromEndpoint 构造配置对象时对 Microsoft Entra ID 令牌自动刷新的支持。
- 这会将语音 SDK 中的依赖项添加到 Azure.Core NuGet 包。
- 使用以下命令时,语音 SDK 现在可以接受 TokenCredential 派生对象进行身份验证:
- 语音识别器
- 翻译识别器
- 会话转录器
- [Objective-C]更新了 SPXTranslationRecognizer 以支持从开放范围进行源语言自动检测。
- [Objective-C, Python] 添加了诊断 API EventLogger、FileLogger 和 MemoryLogger。
- [Go]:新增对 TranslationRecognizer 的支持
故障修复
- 修复了 Linux arm32 (https://github.com/Azure-Samples/cognitive-services-speech-sdk/issues/2736) 上的 OpenSSL 3 支持。
- 修复了语音合成语音列表中缺少的状态字段(https://github.com/Azure-Samples/cognitive-services-speech-sdk/issues/2771)。
- 修复了与日语分析程序匹配的 IntentRecognizer 模式无法正确标识整数字符。
- 修复了嵌入语音识别中出现重复结果的潜在问题。
- [Java] 修正了在 Android 12 及更高版本中的 ConversationParticipantsChangedEventArgs 里出现的空参与者问题(https://github.com/Azure-Samples/cognitive-services-speech-sdk/issues/2687)。
示例
- [C++]添加了使用模式匹配的独立意向识别的示例。
- 随着 LUIS 服务于 2025 年 10 月停用,语音 SDK 也将停用 IntentRecognizer 对象系列。
- 在此之前,我们希望共享模式匹配的实现。
- [C++、C#、Java、Python] 更新了大多数示例以使用 FromEndpoint API 而不是 FromSubscription。
- [C#]为多层语音识别应用程序添加了方案示例。
- 演示音频重播和从边缘设备重新连接到中间层服务的方法,该服务随后通过语音 SDK 将音频转发到语音服务
- [C#] 更新的示例用于自动刷新 Microsoft Entra ID 令牌。
- [Python] 添加了新诊断 API 的示例。
- [Unity] 添加了安装新 Azure.Core 依赖项的指南。
语音 SDK 1.42.0:2024 年 12 月发行版
新增功能
- Java:使用 FileLogger、MemoryLogger、EventLogger 和 SpxTrace 类添加了诊断日志记录 API。
- 支持将会议参与者的 JSON 属性“详细信息”发送到服务
- Go:添加了公共属性 ID SpeechServiceConnection_ProxyHostBypass,用于指定未使用代理的主机。
- JavaScript、Go:添加了公共属性 id Speech_SegmentationStrategy,用于确定口语短语何时结束以及何时应生成最终识别结果(包括语义分段)
- JavaScript,Go:新增公共属性 Speech_SegmentationMaximumTimeMs,用于根据时间确定 Java、Python、C#、C++ 中口语短语的结尾。
故障修复
- 修复了在未设置语音名称的情况下,每次合成时嵌入的 TTS 语音(重新)加载的问题。
- 修复了在某些情况下使用 MeetingTranscriber 时的偏移计算问题。
- 修复了并行注册多个诊断事件侦听器时可能出现的死锁问题。
- (JavaScript) 修复了音频结束时可能丢失 NoMatch 结果的问题。 此修复还使语音结束时的行为与其他 SDK 语言保持一致,并可能导致不再引发某些空事件。
- (JavaScript) 修复了结果 JSON 中的偏移量,以便与结果对象的偏移量保持一致。 以前仅调整了结果对象的偏移属性以考虑服务重新连接。
- Go 语言:修复了编译错误 https://github.com/Azure-Samples/cognitive-services-speech-sdk/issues/2639
- 修复了在重新连接到服务时会议听录中的结果偏移问题。
- 修复了日志记录中的死锁问题。
示例
- 更新了 C# 示例以使用 .NET 8.0。
- Java 示例使用诊断日志 API 来演示新诊断日志类的用法。
2024 年 11 月版本
适用于 Visual Studio Code 的 Azure 语音工具包扩展
Azure 语音工具包扩展现在适用于 Visual Studio Code 用户。 它包含一系列语音快速入门和场景示例,只需单击即可轻松构建和运行。 有关详细信息,请参阅 Visual Studio Code 市场中的 Azure 语音工具包。
文本转语音头像代码示例
我们向 Android 和 iOS 添加了文本转语音虚拟形象代码示例。 这些示例演示了如何在移动应用程序中使用实时文本转语音虚拟形象。
语音 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音频堆栈进行识别时偶尔发生的崩溃问题。
- 修复了 Python 中的类型提示。 https://github.com/Azure-Samples/cognitive-services-speech-sdk/issues/2539
- 修复了在使用自定义终结点时无法提取 TTS 语音列表的问题。
- 修复了当使用短名称指定语音时,嵌入式 TTS 在每次朗读请求时重新初始化的问题。
- 修复了关于 RecognizeOnce 音频最大持续时间的 API 参考文档。
- 修复了在 JavaScript 中处理任意采样率时出现的错误
- 感谢 rseanhall 对此做出的贡献。
- 修复了在 JavaScript 中计算音频偏移量时出现的错误
- 感谢 motamed 对此做出的贡献。
重大更改
- 由于所需的 ONNX 运行时不适用于此平台,Windows ARM 32 位上的关键字识别支持已被删除。
语音 SDK 1.4.0:2024 年 8 月版
Note
语音 SDK 版本 1.39.0 是一个内部版本,没有丢失。
新增功能
- 在语音识别中增加了对
G.722压缩音频流式处理的支持。 - 在语音合成中的输入文本流式处理中增加了对音调、速率和音量设置的支持。
- 通过在语音合成中引入
PersonalVoiceSynthesisRequest增加了对个人语音输入文本流式处理的支持。 此 API 为预览版,在未来版本中可能会发生变化。 - 增加了在使用
ConversationTranscriber时对中间结果进行分割聚类的支持。 - 由于 CentOS 7 终止支持 和 RHEL 7 维护支持 2 结束,已删除 CentOS/RHEL 7 支持。
- 使用嵌入式语音模型现在需要模型许可证而不是模型密钥。 如果你是现有的嵌入式语音客户,并且想要升级,请联系Azure的支持人员,了解有关模型更新的详细信息。
故障修复
- 使用 _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,或与
glibc2.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 的用法,以配合语音合成器的使用。
故障修复
- 修复了 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 位置获取 API。
- 使用 v2 终结点调整语音翻译,无需进行语言检测。
- 修复嵌入式文本转语音中的随机崩溃问题和重复的单词边界事件问题。
- 为 WebSocket 连接上的内部服务器错误返回一个正确的取消错误代码。
- 修复将 MAS 与 C# 一起使用时加载 FPIEProcessor.dll 库失败的问题。
示例
- 嵌入式识别示例的次要格式设置更新。
语音 SDK 1.34.1:2024 年 1 月发布版
重大更改
- 仅 Bug 修复
新增功能
- 仅 Bug 修复
故障修复
- 修复了 1.34.0 中引入的回归错误,即由于错误的地区设置信息为多个中国地区的用户构造了错误的服务端点 URL。
语音 SDK 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 中提供了嵌入式支持。
故障修复
- 修复了 iOS SDK 二进制文件大小增加至两倍的问题 · 问题 #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 月版本
新增功能
- 合成语音时支持字边界事件输出。
故障修复
- 将 JMESPath 依赖项更新到了最新版本,改进了字符串评估
语音 SDK 1.33.0:2023 年 10 月版本
中断性变更通知
- 在包配置文件中使用 MAS 的应用程序现在需要包含为 Microsoft Audio Stack (MAS) 添加的新 NuGet 包。
新增功能
- 添加了新的 NuGet 包 Microsoft.CognitiveServices.Speech.Extension.MAS.nupkg,该包改进了使用 Microsoft Audio Stack 时的回声取消性能
- 发音评估:添加了对韵律和内容评估的支持,可以从韵律、词汇、语法和主题等方面来评估口语。
故障修复
- 修复了关键字识别结果偏移,以便从一开始就正确匹配输入音频流。 此修补程序适用于独立关键字识别和关键字触发的语音识别。
- 解决了合成器 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 流式处理。
- 修复 speech-to-text NAudio 示例
语音 CLI 1.33.0:2023 年 10 月版本
新增功能
- 合成语音时支持字边界事件输出。
故障修复
- 无
语音 SDK 1.32.1:2023 年 9 月版本
故障修复
- Android 包使用 OpenSSL1.1.1v 的最新安全修补程序进行更新
- JS - 增加了 WebWorkerLoadType 属性,允许绕过超时工作线程的数据 URL 加载
- JS - 修复 10 分钟后对话翻译断线的问题
- JS - 对话翻译身份验证令牌现在传播到翻译服务连接
示例
- 使用 Swift API 进行会话转录
语音 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对象设计为用于要区分多个说话人的对话方案(话者分离)。 用户配置文件和语音签名不适用。 有关详细信息,请参阅实时话者分离快速入门。
此表显示了用于现场分离和会议转录的旧对象和新对象名称。 方案名称在第一列中,旧对象名称在第二列中,新对象名称在第三列中。
| 方案名称 | 旧对象名称 | 新对象名称 |
|---|---|---|
| 实时分割 | N/A | ConversationTranscriber |
| 会议听录 | ConversationTranscriberConversationTranscriptionEventArgsConversationTranscriptionCanceledEventArgsConversationTranscriptionResultRemoteConversationTranscriptionResultRemoteConversationTranscriptionClientRemoteConversationTranscriptionResultParticipant
1ParticipantChangedReason
1User
1 |
MeetingTranscriberMeetingTranscriptionEventArgsMeetingTranscriptionCanceledEventArgsMeetingTranscriptionResultRemoteMeetingTranscriptionResultRemoteMeetingTranscriptionClientRemoteMeetingTranscriptionResultParticipantParticipantChangedReasonUserMeeting
2 |
1 、Participant、ParticipantChangedReason 和 User 对象同时适用于会议听录和会议翻译方案。
2Meeting 对象是新的,与 MeetingTranscriber 对象一起使用。
故障修复
- 修复了 macOS 最低支持版本 https://github.com/Azure-Samples/cognitive-services-speech-sdk/issues/2017
- 修复了发音评估漏洞。
- 解决了音素准确性评分的问题,确保它们现在仅准确反映特定的发音错误音素。 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)的包的大小。 我们正在努力减小未来版本的大小。
故障修复
- 修复了客户报告的将语音识别器与 PhraseListGrammar 配合使用时内存泄漏的问题(GitHub 问题)。
- 修复了文本转语音开放连接 API 中的死锁。
更多备注
-
Java - 某些内部使用的、
publicJava API 方法更改为包internal、protected或private。 此更改应该不会影响开发人员,因为我们预计应用程序不会使用这些更改。 此处注明是为了提高透明度。
示例
- 有关如何在自己的应用程序中指定学习语言的新发音评估示例
语音 SDK 1.29.0:2023 年 6 月版本
新增功能
- C++、C#、Java - 嵌入式语音翻译 API 预览版。 现在,无需云连接即可进行语音翻译!
- JavaScript - 语音翻译现已启用连续语言识别 (LID)。
-
JavaScript - 用于将
LocaleName属性添加到VoiceInfo类的社区贡献。 感谢 GitHub 用户 shivsarthak 提交拉取请求。 - C++、C#、Java - 增加了对嵌入式文本转语音输出从 16 kHz 到 48 kHz 采样率重新采样的支持。
- 添加了对采用简单模式匹配的意向识别器中的
hi-IN区域设置的支持。
故障修复
- 修复了在对象销毁期间,由语音识别中竞态条件引起的崩溃问题,这在我们的一些 Android 测试中曾出现过。
- 修复了采用简单模式匹配器的意向识别器中可能存在的死锁
示例
- 新的嵌入式语音翻译示例
语音 SDK 1.28.0:2023 年 5 月版本
破坏性变更
- JavaScript SDK:删除了联机证书状态协议 (OCSP)。 这使客户端能够更好地符合证书处理的浏览器和 Node 标准。 版本 1.28 和更高版本将不再包含我们的自定义 OCSP 模块。
新增功能
- 当语句末尾出现沉默超时时,嵌入式语音识别现在会返回
NoMatchReason::EndSilenceTimeout。 这与使用实时语音服务进行识别时的行为匹配。 -
JavaScript SDK:使用
SpeechTranslationConfig枚举值时设置PropertyId的属性。
故障修复
- 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设置的支持。
故障修复
- 常规 - 服务重新连接逻辑中的可靠性更新(除 JavaScript 之外的所有编程语言)。
- General - 修复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:Unity 包中添加了 Android x86_64 体系结构(客户问题)
- Go:
- C#/C++:意向识别器现在支持 C++ 和 C# 中的对话语言理解模型,并在 Microsoft 服务上进行协调。
故障修复
- 修复了 KeywordRecognizer 在尝试停止时偶尔挂起的问题
-
Python:
- 修复了在设置
PronunciationAssessmentGranularity.FullText时获取发音评估结果的问题(客户问题) - 修复获取语音合成声音时男性声音的性别属性未被检索的问题
- 修复了在设置
- JavaScript
示例
添加了展示如何使用嵌入式语音的示例
为 MAUI 添加了语音转文本示例
请参阅 Speech SDK 示例存储库。
语音 SDK 1.24.2:2022 年 11 月版本
新增功能
- 没有新功能,只有嵌入式引擎修补程序以支持新的模型文件。
故障修复
- 所有编程语言
- 修复了嵌入式语音识别模型加密的相关问题。
语音 SDK 1.24.1:2022 年 11 月版本
新增功能
- 发布了嵌入式语音预览版的程序包。 有关详细信息,请参阅 https://aka.ms/embedded-speech。
故障修复
- 所有编程语言
- 修复了语音字体不受支持时的嵌入式 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:新增对 ALAW 和 MULAW 的支持,可以通过
AudioStreamWaveFormat直接流式传输到语音服务(除了现有的 PCM 流)。 - C# MAUI:NuGet 包已更新以支持 Android 平台,供 .NET MAUI 开发人员使用(客户问题)
- Mac:添加了适用于 Mac 的单独 XCframework,其中不包含任何 iOS 二进制文件。 此组件为只需要 Mac 二进制文件的开发人员提供了一个使用较小 XCframework 包的选项。
- Microsoft 音频堆栈 (MAS):
- 指定波束成形角度时,将会更好地抑制源自指定范围之外的声音。
- 对于 Linux ARM32 和 Linux Arm64,
libMicrosoft.CognitiveServices.Speech.extension.mas.so的大小减少了大约 70%。
-
使用模式匹配进行意向识别:
- 添加了对语言
fr、de、es、jp的正字法支持 - 添加了对语言
es的预生成整数支持。
- 添加了对语言
故障修复
- 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 构建的支持
故障修复
- 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 新增了对 getEntities、applyLanguageModels() 和 recognizeOnceAsync(text) 的支持,以实现“简单模式匹配”引擎。
- Unity:添加了对 Unity 程序包的 Mac M1(Apple Silicon)的支持(GitHub问题)
- C#:添加了对 Xamarin Android x86_64 的支持(GitHub问题)
- C#:由于 v4.6.1 已退役,SDK C# 包所需的 .NET 框架最低版本已更新为 v4.6.2(请参阅 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 更高版本)进行安装,另一种方法是通过从源编译进行安装。
故障修复
- 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#:添加了对意向识别器中所需单词组的支持(简单模式匹配)。 例如:“(设定|启动|开始)计时器”,其中必须包含“设定”、“启动”或“开始”才能识别意图。
- 所有编程语言、语音合成:在字边界事件中添加了持续时间属性。 添加了对标点边界和句子边界的支持
- Objective-C/Swift/Java:在发音评估结果对象上添加了单词级结果(类似于 C#)。 应用程序不再需要分析 JSON 结果字符串来获取单词级信息(GitHub 问题)
- iOS 平台:添加了对 ARMv7 体系结构的实验性支持
故障修复
- 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 示例
- 新的 C++ 和 C# 工具,适用于 Windows 系统,可以枚举所有音频捕获和渲染设备,以查找其设备 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:向 AudioStreamFormat 添加了 getWaveFormat() API 以支持非 PCM 波形格式(GitHub问题 452)
- JavaScript:添加音量获取器/设置器和 mute()/unmute() API 到 SpeakerAudioDestination(GitHub 问题 463)
故障修复
- C++、C#、Java、JavaScript、Objective-C 和 Swift:修复了在停止使用 PushAudioInputStream 的语音识别器时删除 10 秒的延迟。 这适用于在调用 StopContinuousRecognition 后未推送新音频的情况(GitHub 问题 1318 和 331)
- Android 和 UWP 上的 Unity:修复了用于 UWP、Android Arm64 和适用于 Android 的 Windows 子系统 (WSA) Arm64 的 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年11月版本
Highlights
我们已经与 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:对基于 Arm64(M1)芯片的 CocoaPod、Python、Java 和 NuGet 包的支持,与 GitHub 问题 1244 相关。
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)播放的支持。
故障修复
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:我们在
GetActivationPhrasesAsync()类中添加了新的 APIVoiceProfileClient,用于在独立识别场景下的说话人识别注册阶段接收有效激活短语列表。- 重要说明:说话人识别功能处于预览版阶段。 说话人识别功能一旦从预览转为正式发布,所有在预览中创建的语音配置文件将在 90 天后被终止。 届时,预览版语音配置文件将停止运行。
-
Python:在现有 和
SpeechRecognizer对象上添加了对连续语言识别(LID)的支持。 -
Python:添加了新的Python对象名为
SourceLanguageRecognizer执行一次性或连续 LID(不识别或翻译)。 -
JavaScript:为 类添加了
getActivationPhrasesAsyncAPI,用于为独立识别场景接收说话人识别注册阶段中有效激活短语的列表VoiceProfileClient。 -
JavaScript 的
VoiceProfileClientAPI 现在为异步可等待enrollProfileAsync。 请参阅 此独立的标识代码 以了解其用法示例。
Improvements
- Java:许多Java对象现在支持AutoCloseable。 现在支持 try-with-resources 模型释放资源。 请参阅这个使用 try-with-resources 的示例。 另请参阅 Oracle Java 文档教程中关于try-with-resources 语句的部分,以了解此模式。
- 许多平台和体系结构的磁盘占用量已显著降低。 例如,对于
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%)。
故障修复
- Java:修复了合成文本包含代理项字符时的合成错误。 有关详细信息,请参阅此文。
- JavaScript:浏览器麦克风音频处理现在使用 而不是已弃用的
AudioWorkletNode。 有关详细信息,请参阅此文。 - JavaScript:在长期运行的对话翻译场景中,正确保持对话处于活动状态。 有关详细信息,请参阅此文。
- JavaScript:修复了识别器在连续识别时重新连接到 mediastream 的问题。 有关详细信息,请参阅此文。
- JavaScript:修复了识别器在连续识别时重新连接到 pushStream 的问题。 有关详细信息,请参阅此文。
- JavaScript:更正了详细识别结果中的单词级别偏移计算。 有关详细信息,请参阅此文。
示例
语音 SDK 1.17.0:2021 年 5 月发行版
Note
单击此处,开始使用语音 SDK。
亮点摘要
- 占用量更少 - 我们持续减少语音 SDK 及其组件的内存和磁盘占用量。
- 新的独立语言识别 API 使你能够识别正在使用的语言。
- 在 macOS 上使用 Unity 开发支持语音的混合现实和游戏应用程序。
- 现在,除了 Go 编程语言的语音识别功能,还可以使用文本转语音功能。
- 我们修复了几个Bug,以解决您(我们尊贵的客户)在GitHub上指出的问题。 非常感谢! 敬请不时提供反馈!
新增功能
-
C++/C#:通过
SourceLanguageRecognizerAPI 实现新的独立启动和连续语言检测。 如果只希望检测音频内容中使用的语言,此 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:文本转语音现在默认使用神经语音,当您未指定要使用的语音时。 默认情况下,这会为你提供更高保真输出,但也会增加默认价格。
- C++/C#/Java/Python/Objective-C/Go:我们为合成语音信息添加了“性别”属性,以便更轻松地根据性别选择语音。 这解决了 GitHub 问题 #1055。
-
C++、C#、Java、JavaScript:我们现在支持
retrieveEnrollmentResultAsync、getAuthorizationPhrasesAsync和说话人识别中的getAllProfilesAsync(),以简化给定帐户的所有语音配置文件的用户管理。 请参阅 C++、C#、Java、JavaScript的文档。 这解决了 GitHub 问题 #338。 - JavaScript:我们添加了连接失败重试功能,使基于 JavaScript 的语音应用程序更加可靠。
Improvements
- Linux 和 Android 语音 SDK 二进制文件进行了更新,以使用最新版本的 OpenSSL (1.1.1k)
- 代码尺寸优化:
- 语言理解 现已拆分为一个独立的 “lu” 库。
- Windows x64 核心二进制文件大小减少了 14.4%。
- Android Arm64 核心二进制文件大小减少了 13.7%。
- 其他组件的大小也有所减小。
故障修复
- All:修复了 ServiceTimeout 的 GitHub 问题 #842。 现在,你可以使用语音 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,即调用 可能会导致“ReferenceError: MediaStream 未定义”的问题。
- JavaScript:修复了 Node.js 中针对长时间运行会话的 UnhandledPromiseRejection 警告。
示例
语音 SDK 1.16.0:2021年3月发布
Note
Windows 上的语音 SDK 依赖于共享的 Microsoft Visual C++ 可再发行组件,这些组件适用于 Visual Studio 2015、2017 和 2019。
新增功能
- 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 用户现在可以使用 。 这解决了 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的预期行为。
Improvements
- 为了降低语音 SDK 的内存使用量和磁盘占用量,Android 二进制文件现在缩小了 3% 到 5%,这是我们的多版本工作的一部分。
- 改进了此处的 C# 参考文档的准确度、可读性和“另请参阅”部分。
故障修复
- 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正确设置为底层套接字IO,以减少TTS的延迟。 - C++/C#/Java/Python/Objective-C/Go:修复了识别器在刚开始识别后就被销毁时的偶尔崩溃问题。
- C++/C#/Java:修复了在解构扬声器识别器时偶尔发生的崩溃。
示例
- JavaScript:浏览器示例不再需要单独下载 JavaScript 库文件。
语音 SDK 1.15.0:2021 年 1 月发行版
Note
Windows 上的语音 SDK 依赖于共享的 Microsoft Visual C++ 可再发行组件,这些组件适用于 Visual Studio 2015、2017 和 2019。
亮点摘要
- 更小的内存和磁盘占用量,使 SDK 更有效。
- 高保真输出格式可用于自定义神经语音预览。
- 意图识别器现在可以返回多个意图,不仅限于首要意图,这使你能够更好地单独评估客户的意图。
- 语音助理和机器人现在更易于设置,你可以立即使其停止收听,并可以更好地控制其对错误的响应方式。
- 使压缩成为可选功能,从而改进了设备性能。
- 在 Windows ARM/Arm64 上使用语音 SDK。
- 改进了低级别调试。
- 发音评估功能的适用范围现在更广泛。
- 我们修复了几个Bug,以解决您(我们尊贵的客户)在GitHub上指出的问题。 非常感谢! 敬请不时提供反馈!
Improvements
- 语音 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获取不仅限于主要意图的更多信息。 它现在支持使用LanguageUnderstandingModel FromEndpointuri 参数通过verbose=true方法来配置包含所有意向(而不仅仅是首要评分意向)的 JSON 结果。 这解决了 GitHub 问题 #880。 -
C++/C#/Java:让语音助理或机器人立即停止收听。
DialogServiceConnector(C++、C#、Java)现在具有StopListeningAsync()方法以配合ListenOnceAsync()。 此方法会立即停止音频捕获并正常等待结果,因此非常适合用于按动“立即停止”按钮的场景。 -
C++/C#/Java/JavaScript:使语音助理或机器人更好地对底层系统错误做出反应。
DialogServiceConnector(C++、C#、Java、JavaScript)现有一个新的TurnStatusReceived事件处理程序。 这些可选事件对应于机器人的每个ITurnContext决策,当发生例如未处理的异常、超时或Direct Line 语音与机器人之间网络中断时,会报告回合执行失败。 使用TurnStatusReceived可以更轻松地对失败状况做出响应。 举例而言,如果机器人在后端数据库查询(例如查找产品)上花费的时间太长,TurnStatusReceived将允许客户端适时地以“抱歉,我有点迷糊,请重试”或类似内容重新发出提示。 - C++/C# :在更多平台上使用语音 SDK。 Speech SDK NuGet 包现在支持 Windows ARM/Arm64 桌面本机二进制文件(UWP 已支持),使语音 SDK 在更多计算机类型上更有用。
-
Java:
DialogServiceConnector现在有一个setSpeechActivityTemplate()方法,先前该方法被意外排除在语言之外。 这相当于设置Conversation_Speech_Activity_Template属性,并请求由 Direct Line 语音服务发起的所有未来 Bot Framework 活动将所提供的内容合并到其 JSON 负载中。 -
Java:改进了低级别调试。 类似于其他编程语言(C++、C#),
Connection类现有一个MessageReceived事件。 此事件提供对服务传入的数据的低级别访问,并且对诊断和调试非常有用。 - JavaScript:通过
BotFrameworkConfig可以更轻松地设置语音助理和机器人。BotFrameworkConfig现在具有fromEndpoint()和 工厂方法,与手动设置属性相比,这些方法简化了使用自定义服务位置。 我们还标准化了botId的可选规范,以便在各个配置工厂中使用非默认机器人。 - JavaScript:通过为 websocket 压缩添加的字符串控制属性改进了设备性能。 出于性能原因,我们默认禁用了 websocket 压缩。 在低带宽应用场景下可以重新启用此功能。 此处提供了更多详细信息。 这解决了 GitHub 问题 #242。
- JavaScript:添加了发音评估支持,以便对语音发音进行评估。 请参阅此处的快速入门。
故障修复
- 全部(JavaScript 除外):修复了版本 1.14 中的回归,此问题导致识别器分配过多的内存。
-
C++ :修复了
DialogServiceConnector存在的垃圾回收问题,解决了 GitHub 问题 #794。 - C#:修复了线程关闭的问题,此问题导致对象在释放时阻塞大约一秒。
-
C++/C#/Java:修复了阻止应用程序在
DialogServiceConnector上多次设置语音授权令牌或活动模板的异常。 - C++/C#/Java:修复了由于拆卸过程中的竞争条件导致的识别器崩溃。
-
JavaScript:
DialogServiceConnector以前不遵循botId的工厂中指定的可选BotFrameworkConfig参数。 这样,就需要手动设置botId查询字符串参数才能使用非默认机器人。 该 bug 已予纠正,现在会遵循并使用提供给botId的工厂的BotFrameworkConfig值,包括新添加的fromHost()和fromEndpoint()。 这也适用于applicationId的CustomCommandsConfig参数。 - 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 浏览器的 From-file 示例现在使用文件进行语音识别。 这解决了 GitHub 问题 #884。
语音 SDK 1.14.0:2020 年 10 月版本
Note
Windows 上的语音 SDK 依赖于共享的 Microsoft Visual C++ 可再发行组件,这些组件适用于 Visual Studio 2015、2017 和 2019。
新增功能
- Linux:添加了对 Debian 10 和 Ubuntu 20.04 LTS 的支持。
-
C++/Java/C#:添加了通过
HttpHeader设置任何ServicePropertyChannel::HttpHeader键/值的支持。 -
JavaScript:添加了对
ConversationTranscriberAPI 的支持。 阅读此处的文档。 - C++/C#:在
AudioDataStream FromWavFileInput和此处 (C#) 添加了新的 方法(以读取 .WAV 文件)。 -
C++/C#/Java/Python/Objective-C/Swift:添加了
stopSpeakingAsync()方法以停止文本转语音合成。 阅读参考文档here (C++),here (C#), here (Java)、here (Python) 和 here (Objective-C/Swift)。 -
C#、C++、Java:向
FromDialogServiceConnector()类添加了Connection函数,可用于监视DialogServiceConnector的连接和断开连接事件。 请参阅此处 (C#)、此处 (C++) 和此处 (Java) 的参考文档。 - C++/C#/Java/Python/Objective-C/Swift:添加了发音评估支持,这样便可以评估语音发音,并为说话人提供有关讲话音频准确度和流利度的反馈。 在此处阅读该文档。
破坏性变更
- JavaScript:PullAudioOutputStream.read() 的返回类型从内部 Promise 更改为 Native JavaScript Promise。
故障修复
-
全部:修复了
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对象时的参数。 -
C++/C#/Java/Python/Swift/ObjectiveC:修复了在尝试从给定位置读取
SPX_INVALID_ARG时可能出现的AudioDataStream问题。 - IOS:修复了 Unity 上的语音识别故障
示例
- ObjectiveC:添加了关键字识别示例here。
- 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 月发行版
Note
Windows 上的语音 SDK 依赖于共享的 Microsoft Visual C++ 可再发行组件,这些组件适用于 Visual Studio 2015、2017 和 2019。
新增功能
- C# :添加了异步对话听录的支持。 参阅此处的文档。
- JavaScript:添加了对浏览器和 Node.js 的说话人识别支持。
- JavaScript:添加了对语言识别/语言 ID 的支持。 参阅此处的文档。
- Objective-C:添加了对 多设备聊天 的支持(此服务已弃用)和聊天听录。
- Python:在 Windows 和 Linux 上添加了对Python的压缩音频支持。 参阅此处的文档。
故障修复
- 全部:修复了一个问题,此问题会导致在识别后 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 月版本
故障修复
- C#、C++:在 1.12 版中,修复的麦克风录音在说话人识别中未正常工作。
- JavaScript:针对 Firefox 中的以及 macOS 和 iOS 上的 Safari 中的文本转语音进行了修复。
- 修复了在使用八声道流进行会话转录时,Windows应用程序验证程序的访问冲突导致的崩溃。
- 修复了在多设备对话翻译中出现的Windows应用程序验证器访问冲突崩溃。
示例
- C#:有关说话人识别的代码示例。
- C++:有关说话人识别的代码示例。
- Java:Android 上用于意向识别的代码示例。
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的语音旅程中迈出下一步。
故障修复
- 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++:在
UtteranceId中添加了ConversationTranscriptionResult,这是在所有中间产物和最终的语音识别结果中保持一致的一个 ID。 请参阅适用于 C#、C++ 的详细信息。 - Python:添加了对
Language ID的支持。 请参阅 GitHub 存储库中的speech_sample.py。 - Windows:为所有 Win32 控制台应用程序添加了 Windows 平台上的压缩音频输入格式支持。 有关详细信息,请参阅此文。
- JavaScript:在 NodeJS 中支持语音合成(文本转语音)。 在此处了解详细信息。
- JavaScript:添加了新的 API,用于检查发送和接收的所有消息。 在此处了解详细信息。
故障修复
- C#、C++:修复了一个问题,因此
SendMessageAsync现在以二进制类型发送二进制消息。 请参阅适用于 C#、C++ 的详细信息。 - C#, C++:修复了当使用
Connection MessageReceived事件时在Recognizer对象之前释放Connection可能会导致故障的问题。 请参阅适用于 C#、C++ 的详细信息。 - Android:麦克风的音频缓冲区大小从 800 毫秒减小到 100 毫秒,降低了延迟。
- Android:修复了 Android Studio 中 x86 Android 模拟器的一个问题。
- JavaScript:在
fromSubscriptionAPI 中增加了对中国的区域的支持。 有关详细信息,请参阅此文。 - 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)。
Note
客户必须根据这些说明配置 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)。 新模型在多个领域提供了重大改进,其中包括听写、呼叫中心语音转录和视频索引场景。
故障修复
- 修复了在 JAVA API 中聊天听录器未正确等待的 Bug。
- 添加缺失的(Get|Set)Property 方法到 AudioConfig。
- 修复了无法在连接失败时停止 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 之前将 wstring 转换为字符串。 请参阅 此处的详细信息。 - C#:现在提供语言 ID 和源语言配置。
- JavaScript:已将一项功能添加到
Connection对象,以便从语音服务以回调receivedServiceMessage的形式传递自定义消息。 - JavaScript:感谢
NODE_TLS_REJECT_UNAUTHORIZED的贡献,我们现在可以采用 。 请参阅 此处的详细信息。
重大更改
-
OpenSSL已更新到版本 1.1.1b,并静态链接到适用于 Linux 的语音 SDK 核心库。 如果您的收件箱OpenSSL未安装到系统中的/usr/lib/ssl目录,这可能会导致中断。 请查看语音 SDK 文档下的文档来解决此问题。 - 我们已经为 C#
WordLevelTimingResult.Offset返回的数据类型从int更改为long,以便在语音数据超过 2 分钟时能够访问WordLevelTimingResults。 -
PushAudioInputStream和PullAudioInputStream现在根据AudioStreamFormat将 wav 标头信息发送到语音服务,可在创建时选择指定。 现在,客户必须使用支持的音频输入格式。 任何其他格式会导致识别结果欠佳,或者导致出现其他问题。
故障修复
- 请参阅上述“中断性变更”中的
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-十一月版本
新增功能
- 添加了一个
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 的支持
故障修复
- 针对以下问题进行了修复:如果在不使用有效语音服务订阅密钥的情况下使用本地
KeywordRecognizer,则会发生故障
示例
-
KeywordRecognizer的 Xamarin 示例 -
KeywordRecognizer的 Unity 示例 - 用于自动源语言识别的 C++ 和 Java 示例。
语音 SDK 1.7.0:2019年九月版本
新增功能
- 添加了对通用 Windows 平台 (UWP)、Android 和 iOS 上的 Xamarin 的测试版支持
- 添加了对 Unity 的 iOS 支持
- 增加了对 Android、iOS 和 Linux 上的 ALaw、Mulaw、FLAC 的
Compressed输入支持 - 在
SendMessageAsync类中添加了Connection,用于向服务发送消息 - 在用于设置消息属性
SetMessageProperty类中添加了Connection - TTS 为 Java(JRE 和 Android)、Python、Swift 和 Objective-C 添加了绑定
- TTS 添加了对 macOS、iOS 和 Android 的播放支持。
- 为 TTS 添加了“词边界”信息。
故障修复
- 修复了 Unity 2019 for Android 上的 IL2CPP 生成问题
- 修复了 wav 文件输入中格式错误的标头被错误处理的问题
- 修复了 UUID 在某些连接属性中不唯一的问题
- 修复了 Swift 绑定中的可空性说明符的一些警告(可能需要对代码进行少量更改)
- 修复了一个 Bug,该 Bug 导致 websocket 连接在网络负载下被意外关闭
- 修复了 Android 上的一个问题,该问题有时候导致
DialogServiceConnector使用的印象 ID 重复 - 改进了进行多轮交互时连接的稳定性,以及它们发生在
Canceled上时(通过DialogServiceConnector事件)对故障进行的报告 -
现在,
DialogServiceConnector会话开始时会正确提供事件,包括在活动ListenOnceAsync()期间调用StartKeywordRecognitionAsync()的时候 - 解决了与收到的
DialogServiceConnector活动相关联的崩溃
示例
- Xamarin 的快速入门
- 更新了 CPP 快速入门,其中包含 Linux Arm64 信息。
- Unity 快速入门已添加关于 iOS 的信息
语音 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 代码。 - 改进了事件处理
- 改进了错误报告:可能导致出错的方法现在有两个版本:一个版本公开用于错误处理的
故障修复
- 针对 TTS 进行了以下问题的修复:
SpeakTextAsync不等到音频完成渲染就会提前返回 - 修复了 C# 中的封送字符串,以支持完整语言
- 修复了示例中 .NET Core 应用在使用 net461 目标框架加载核心库时的问题。
- 修复了示例中偶发性的问题,以便将原生库部署到输出文件夹中。
- 修复了 Web 套接字可靠关闭的问题
- 修复了在 Linux 负载较高的情况下打开连接时可能发生崩溃的问题
- 修复了 macOS 框架捆绑包中缺少元数据的问题
- 修复了 Windows 上的
pip install --user问题
语音 SDK 1.5.1
这是一个 Bug 修复版本,只影响本机/托管 SDK。 它不影响 SDK 的 JavaScript 版本。
故障修复
- 修复了 FromSubscription 与对话听录一起使用时出现的问题。
- 修复语音助理的关键词识别功能错误。
语音 SDK 1.5.0:2019 年 5 月发布
新增功能
- 关键字发现(KWS)现在可用于Windows和 Linux。 KWS 功能可能适用于任何麦克风类型,不过,官方的 KWS 支持目前仅限于 Azure Kinect DK 硬件或语音设备 SDK 中的麦克风阵列。
- 短语提示功能通过 SDK 提供。 有关详细信息,请参阅此文。
- 对话听录功能通过 SDK 提供。
- 添加了对使用 Direct Line Speech 通道的语音助理的支持。
示例
- 添加了 SDK 支持的新功能或新服务的示例。
改进 / 更改
- 添加了各种识别器属性,以调整服务行为或服务结果(例如屏蔽猥亵内容等)。
- 现在,即使你创建了识别器
FromEndpoint,也能通过标准配置属性来配置识别器。 - Objective-C:已将
OutputFormat属性添加到SPXSpeechConfiguration。 - SDK 现在支持将 Debian 9 用作 Linux 分发版。
故障修复
- 修复了文本转语音中过早销毁讲述人资源的问题。
语音 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 核心、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:提高了音频处理性能。
故障修复
- 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现已退出测试版。
- 改进了
- iOS
- SDK 现在是基于 iOS SDK 版本 12.1 构建的。
- SDK 现在支持 iOS 版本 9.2 及更高版本。
- 改进了参考文档并修复了多个属性名称。
- JavaScript
- 添加了对
Connection对象的支持。 - 添加捆绑 JavaScript 的类型定义文件
- 首次支持并实现了短语提示。
- 随服务 JSON 返回属性集合以用于识别
- 添加了对
- Windows DLL 现在包含版本资源。
- 如果创建识别器
FromEndpoint,则可将参数直接添加到终结点 URL。 使用FromEndpoint时,无法通过标准的配置属性来配置识别器。
故障修复
- 无法正确处理空的代理用户名和代理密码。 在此版本中,如果将代理用户名和代理密码设置为空字符串,则在连接到代理时不会提交它们。
- 对于某些语言/环境,由 SDK 创建的 SessionId 并非总是真正随机的。 已添加了随机生成器初始化来修复此问题。
- 改进授权令牌的处理方式。 如果要使用授权令牌,请在
SpeechConfig中指定,并将 API 密钥留空。 然后,像往常一样创建识别器。 - 在某些情况下,
Connection对象未被正确释放。 现在已修复此问题。 - JavaScript 示例已修复,在 Safari 上也支持用于翻译合成的音频输出。
语音 SDK 1.2.1
这是一个仅限 JavaScript 的版本。 未增加任何功能。 进行了以下修复:
- 在 turn.end 处触发流结束,在 speech.end 处不触发。
- 修复了音频泵中在当前发送失败时不安排下一次发送的 bug。
- 修复了使用身份验证令牌进行的连续识别功能。
- 对不同识别器 / 终结点的 bug 修复。
- 文档改进。
语音 SDK 1.2.0:2018 年 12 月版本
新增功能
- Python
- 此版本提供了 Python 支持 (3.5 及更高版本) 的 Beta 版本。 有关详细信息,请参阅此文](../../quickstart-python.md)。
- JavaScript
-
Connection对象- 可以从
Recognizer中访问Connection对象。 此对象允许您主动启动服务连接,并订阅连接与断开事件。 (此功能在 JavaScript 和 Python 中尚不可用。)
- 可以从
- 支持 Ubuntu 18.04。
- 安卓
- 在生成 APK 期间启用了 ProGuard 支持。
Improvements
- 改进了内部线程的使用,减少了线程、锁和互斥的数量。
- 改进了错误报告 / 信息。 在某些情况下,错误消息没有完全传播出去。
- 更新了 JavaScript 中的开发依赖项来使用最新模块。
故障修复
- 修复了由于
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。 如果服务器随所报告的错误返回了附加的错误信息,则现在将在新成员中提供该信息。
Improvements
- 在识别器配置中添加了附加的验证并添加了附加的错误消息。
- 改进了对音频文件中间的长时间静默的处理。
- NuGet 包:在 .NET Framework 项目中,它阻止使用 AnyCPU 配置进行构建。
故障修复
- 修复了在识别器中发现的几处异常。 此外,还会捕获异常并将其转换为
Canceled事件。 - 修复了属性管理中的内存泄漏。
- 修复了音频输入文件可能会导致识别器发生故障的 bug。
- 修复了在会话停止事件后仍然能够接收事件的错误。
- 修复了线程中的一些争用条件。
- 修复了可能会导致故障的 iOS 兼容性问题。
- 改进了对 Android 麦克风的支持的稳定性。
- 修复了 JavaScript 中的识别器忽略识别语言的问题。
- 修复了阻止在 JavaScript 中设置
EndpointId(在某些情况下)的 bug。 - 更改了 JavaScript 中的 AddIntent 中的参数顺序,并添加了缺少的
AddIntentJavaScript 签名。
示例
- 在示例存储库中添加了拉取和推送流用法的 C++ 和 C# 示例。
语音 SDK 1.0.1
可靠性改进和 bug 修复:
- 修复了在释放识别器时由于竞争条件而导致的潜在致命错误
- 修复了未定义属性时可能出现的严重错误。
- 添加了额外的错误检查和参数检查。
- Objective-C:修复了 NSString 中可能导致的严重错误,该错误是由名称重载引起的。
- Objective-C:调整了 API 的可见性
- JavaScript:针对事件及其有效负载进行了修复。
- 文档改进。
在示例存储库中已添加了适用于 JavaScript 的新示例。
Azure 语音 SDK 1.0.0:2018 年 9 月版本
新增功能
- 支持 iOS 中的 Objective-C。 请查看适用于 iOS 的 Objective-C 快速入门。
- 支持浏览器中的 JavaScript。 请查看 JavaScript 快速入门。
重大更改
- 该版本中推出了大量重大更改。 有关详细信息,请查看此页。
Azure 语音 SDK 0.6.0:2018 年 8 月版本
新增功能
- 使用语音 SDK 生成的 UWP 应用现已可以通过 Windows 应用 认证工具包(WACK)。 请查看 UWP 快速入门。
- 在 Linux 上支持 .NET Standard 2.0(Ubuntu 16.04 x64)。
- 实验性:在 Windows(64 位)和 Linux(Ubuntu 16.04 x64)上支持 Java 8。 请查看 Java 运行时环境快速入门。
功能性更改
- 公开了关于连接错误的更多错误详细信息。
重大更改
- 在 Java (Android)上,
SpeechFactory.configureNativePlatformBindingWithDefaultCertificate函数不再需要路径参数。 现在,在所有受支持的平台上都会自动检测路径。 - 删除了 Java 和 C# 中属性
EndpointUrl的取值器。
故障修复
- 在Java中,翻译识别器上的音频合成结果现已实现。
- 修复了一个错误,该错误可能导致线程不活动,以及已打开但未使用的套接字数量增加。
- 修复了一个问题,该问题导致在传输过程中无法终止长时间运行的识别。
- 修复了识别器关闭过程中出现的竞态条件。
Azure 语音 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传递。
故障修复
- 修复了
RecognizeAsync()超时时结果中的错误返回值。 - 删除了对Windows上的媒体基础库的依赖项。 SDK 现在使用 Core Audio API。
- 文档修复:添加了一个区域页来描述支持的区域。
已知问题
- 适用于 Android 的语音 SDK 不报告用于翻译的语音合成结果。 此问题将在下一版本中修复。
Azure 语音 SDK 0.4.0:2018 年 6 月版本
功能性更改
AudioInputStream
现在,识别器可以将音频流用作音频源。 有关详细信息,请参阅相关操作说明指南。
详细输出格式
创建
SpeechRecognizer时,可请求Detailed或Simple输出格式。DetailedSpeechRecognitionResult包含置信度分数、识别的文本、原始词法形式、标准化形式和已屏蔽不当字词的标准化形式。
破坏性变更
- 将 C# 中的
SpeechRecognitionResult.Text更改为SpeechRecognitionResult.RecognizedText。
故障修复
- 修复了关闭期间 USP 层可能出现的回调问题。
- 如果识别器使用了音频输入文件,则它在文件句柄上停留的时间将超过必要时间。
- 删除了消息泵和识别器之间的多个死锁。
- 在服务的响应超时后触发
NoMatch结果。 - Windows上的媒体基础库将延迟加载。 此库仅用于麦克风输入。
- 音频数据的上传速度约限制为原始音频速度的两倍。
- 在Windows系统中,C# .NET程序集文件现在具有强命名。
- 文档修复:
Region是创建识别器所必需的信息。
已添加更多示例,还将持续更新。 有关最新的示例集,请参阅语音 SDK 示例 GitHub 存储库。
Azure 语音 SDK 0.2.12733:2018 年 5 月版本
此版本是 Azure 语音 SDK 的第一个公共预览版。