Azure AI 语音中有哪些新增功能?

Azure AI 语音会持续更新。 为了让大家随时了解最新的开发成果,本文介绍了新版本和新功能。

发行说明

选择服务或资源

即将推出的适用于 Linux 和 Android 用户的计划:

注意

本文引用了 CentOS,这是一个接近生命周期结束 (EOL) 状态的 Linux 发行版。 请相应地考虑你的使用和规划。 有关详细信息,请参阅 CentOS 生命周期结束指南

  • Ubuntu 18.04也于 2023 年 4 月终止生命周期,因此我们的用户应准备将最低版本迁移到 Ubuntu 20.04。

语音 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 修复

示例

语音 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
Participant1
ParticipantChangedReason1
User1
MeetingTranscriber
MeetingTranscriptionEventArgs
MeetingTranscriptionCanceledEventArgs
MeetingTranscriptionResult
RemoteMeetingTranscriptionResult
RemoteMeetingTranscriptionClient
RemoteMeetingTranscriptionResult
Participant
ParticipantChangedReason
User
Meeting2

1ParticipantParticipantChangedReasonUser 对象同时适用于会议听录和会议翻译方案。

2Meeting 对象是新的,与 MeetingTranscriber 对象一起使用。

Bug 修复

示例

语音 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 方法已变更为包 internalprotectedprivate。 此更改应该不会影响开发人员,因为我们预计应用程序不会使用这些更改。 此处注明是为了提高透明度。

示例

语音 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_SingleLanguageIdPrioritySpeechServiceConnection_ContinuousLanguageIdPriority)。 在最近的模型改进之后,不再需要在低延迟和高准确度之间进行优先排序。 现在,你只需在进行连续语音识别或翻译时,选择是运行启动时语言识别还是连续语言识别即可。

新增功能

  • C#/C++/Java:嵌入式语音 SDK 现已在封闭式公共预览版下发布。 当云连接断断续续或不可用时,你现在可以在设备上进行语音转文本和文本转语音操作。 在 Android、Linux、MacOS 和 Windows 平台上受支持
  • C# MAUI:在语音 SDK NuGet 中添加了对 iOS 和 Mac Catalyst 目标的支持(客户问题
  • Unity:Android x86_64 体系结构已添加到 Unity 包(客户问题
  • Go
    • 为语音识别添加了 ALAW/MULAW 直接流式处理支持(客户问题
    • 添加了对 PhraseListGrammar 的支持。 感谢 GitHub 用户 czkoko 的社区贡献!
  • C#/C++:意向识别器现在支持 C++ 和 C# 中的对话语言理解模型,在 Microsoft 服务上进行编排

Bug 修复

  • 修复尝试停止 KeywordRecognizer 时在其中出现的偶尔挂起的问题
  • Python
    • 修复在设置 PronunciationAssessmentGranularity.FullText 时获取发音评估结果的问题(客户问题
    • 修复获取语音合成声音时男性声音的性别属性未被检索的问题
  • JavaScript
    • 修复解析某些在 iOS 设备上录制的 WAV 文件的问题(客户问题
    • JS SDK 现在无需使用 npm-force-resolutions 即可进行生成(客户问题
    • 在使用通过 SpeechConfig.fromEndpoint() 创建的 speechConfig 实例时,对话翻译器现在可以正确设置服务终结点

示例

  • 添加了展示如何使用嵌入式语音的示例

  • 为 MAUI 添加了语音转文本示例

    请参阅语音 SDK 示例存储库

语音 SDK 1.24.2:2022 年 11 月版本

新增功能

  • 没有新功能,只有嵌入式引擎修补程序以支持新的模型文件。

Bug 修复

  • 所有编程语言
    • 修复了嵌入式语音识别模型加密的相关问题。

语音 SDK 1.24.1:2022 年 11 月版本

新增功能

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 ARM64 添加了软件包,用于受支持的 Linux 发行版。
  • 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%。
  • 使用模式匹配进行意向识别
    • 添加了对语言 frdeesjp 的正字法支持
    • 添加了对语言 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-cnzh-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 问题 1318331
  • 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#PythonJava 示例。 详细信息包括替代识别结果、置信度分数、词法形式、规范化表单、掩码规范化表单,以及每个表单的单词级计时。
  • 使用 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 类添加了新 API GetActivationPhrasesAsync(),用于为独立识别场景接收说话人识别注册阶段中有效激活短语的列表。
    • 重要说明:说话人识别功能处于预览版阶段。 在说话人识别功能从预览版中移出到正式发布版中 90 天后,所有在预览版中创建的语音配置文件都将会终止。 届时,预览版语音配置文件将停止运行。
  • Python:在现有的 SpeechRecognizerTranslationRecognizer 对象上添加了对连续语言标识 (LID) 的支持
  • Python:添加了名为 SourceLanguageRecognizer新 Python 对象,以执行一次性或连续的 LID(不进行识别或翻译)。
  • JavaScript:为 VoiceProfileClient 类添加了 getActivationPhrasesAsync API,用于为独立识别场景接收说话人识别注册阶段中有效激活短语的列表。
  • JavaScriptVoiceProfileClientenrollProfileAsync 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:更正了详细识别结果中的单词级别偏移计算。 有关详细信息,请参阅此文

示例

  • Java 快速入门示例已在此更新。
  • JavaScript 说话人识别示例已更新为显示 enrollProfileAsync() 的新用法。 请参阅此处的示例。

语音 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#JavaPythonObjective-CGo 的详细信息。
  • C++/C#/Java/Python/Objective-C:未指定要使用的声音时,文本转语音现在默认使用神经网络声音。 默认情况下,这会为你提供更高保真输出,但也会增加默认价格。 可指定超过 70 种标准语音超过 130 种神经语音中的任何一种来更改默认设置。
  • C++/C#/Java/Python/Objective-C/Go:我们为合成语音信息添加了“性别”属性,以便更轻松地根据性别选择语音。 这解决了 GitHub 问题 #1055
  • C++、C#、Java、JavaScript:说话人识别现在支持 retrieveEnrollmentResultAsyncgetAuthorizationPhrasesAsyncgetAllProfilesAsync(),以方便用户管理给定帐户的所有语音配置文件。 请分别参阅 C++C#JavaJavaScript 的文档。 这解决了 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 警告。

示例

  • 你可以点击此处查看针对 macOS 更新的 Unity 示例文档。
  • 你现在可以点击此处查看 Azure AI 语音识别服务的 React Native 示例。

语音 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#JavaObjective-CPython 的详细信息。
  • JavaScript:Node.js 用户现在可以使用 AudioConfig.fromWavFileInput API。 这解决了 GitHub 问题 #252
  • C++/C#/Java/Objective-C/Python:添加了用于 TTS 的 GetVoicesAsync() 方法,用于返回所有可用的合成语音。 有关 C++C#JavaObjective-CPython 的详细信息。
  • 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#JavaJavaScriptObjective-CPython 的详细信息。
  • 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/PythonTCP_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#JavaJavaScriptObjective-CPython)。 在此项更改之前,自定义语音用户需要通过 FromEndpoint 方法设置终结点 URL。 现在,客户可以像处理预生成语音一样使用 FromSubscription 方法,然后通过设置 EndpointId 来提供部署 ID。 这简化了自定义语音的设置。
  • C++/C#/Java/Objective-C/Python:从 IntentRecognizer 获取比首要意向更多的信息。 它现在支持使用 verbose=true uri 参数通过 LanguageUnderstandingModel FromEndpoint 方法来配置包含所有意向(而不仅仅是首要评分意向)的 JSON 结果。 这解决了 GitHub 问题 #880
  • C++/C#/Java:使语音助理或机器人立即停止收听。 DialogServiceConnectorC++C#Java)现有一个与 ListenOnceAsync() 配合使用的 StopListeningAsync() 方法。 此方法会立即停止音频捕获并正常等待结果,因此非常适合用于按动“立即停止”按钮的场景。
  • C++/C#/Java/JavaScript:使语音助理或机器人更好地对底层系统错误做出反应。 DialogServiceConnectorC++C#JavaJavaScript)现有一个新的 TurnStatusReceived 事件处理程序。 这些可选事件对应于机器人上的每个 ITurnContext 解决方案,并且将在发生轮次执行失败(例如,由于 Direct Line Speech 与机器人之间发生未经处理的异常、超时或断网)时予以报告。 使用 TurnStatusReceived 可以更轻松地对失败状况做出响应。 举例而言,如果机器人在后端数据库查询(例如查找产品)上花费的时间太长,TurnStatusReceived 将允许客户端适时地以“抱歉,我有点迷糊,请重试”或类似内容重新发出提示。
  • C++/C# :在更多平台上使用语音 SDK。 语音 SDK NuGet 包现在支持 Windows ARM/ARM64 桌面本机二进制文件(UWP 已受支持),使语音 SDK 在更多类型的计算机上有更大的用途。
  • JavaDialogServiceConnector 现有一个 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()。 这也适用于 CustomCommandsConfigapplicationId 参数。
  • JavaScript:修复了 GitHub 问题 #881,使识别器对象可供重复使用。
  • JavaScript:修复了以下问题:SKD 在一个 TTS 会话中多次发送 speech.config,从而浪费了带宽。
  • JavaScript:简化了有关麦克风授权的错误处理,允许在用户尚未允许在其浏览器中使用麦克风输入的情况下,以气泡形式显示更具描述性的消息。
  • JavaScript:修复了 GitHub 问题 #249ConversationTranslatorConversationTranscriber 中的类型错误导致 TypeScript 用户遇到编译错误。
  • Objective-C:修复了在 Xcode 11.4 上针对 iOS 进行 GStreamer 生成时失败的问题;解决了 GitHub 问题 #911
  • Python:修复了 GitHub 问题 #870,删除了“DeprecationWarning: imp 模块已弃用,现已由 importlib 取代”。

示例

语音 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:此处添加了发音评估示例
  • Xamarin:在此处更新了最新 Visual Studio 模板的快速入门。

已知问题

  • 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 的支持,并提供了有关如何针对语音 SDK 配置系统的说明
  • 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 中的连接失败添加了更多错误信息。

示例

  • Unity:修复了意向识别公共示例(其中的 LUIS json 导入失败)。 有关详细信息,请参阅此文
  • Python: 为 Language ID 添加了示例。 有关详细信息,请参阅此文

Covid19 缩减测试: 由于过去几周一直在远程工作,我们无法像往常那样执行那么多手动的设备验证测试。 例如,我们无法在 Linux、iOS 和 macOS 上测试麦克风输入与扬声器输出。 我们没有做我们认为可能会破坏这些平台上的任何东西的任何更改,我们的自动化测试已全部通过。 如果我们遗漏了某些内容,请在 GitHub 上告诉我们。
感谢你长久以来的支持。 与往常一样,请在 GitHubStack 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 算法;它以前无意中默认为存根实现,这种实现通常会在大型交互集上造成冲突。

示例

其他更改

语音 SDK 1.9.0:2020 年 1 月版

新增功能

  • 为 Android .aar 包添加了关键字识别支持,并添加了 x86 和 x64 风格的支持。
  • Objective-C:已将 SendMessageSetMessageProperty 方法添加到 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
  • PushAudioInputStreamPullAudioInputStream 现在可以根据 AudioStreamFormat(创建这两个类时选择性地指定)将 wav 标头信息发送到语音服务。 现在,客户必须使用支持的音频输入格式。 任何其他格式会导致识别结果欠佳,或者导致出现其他问题。

Bug 修复

  • 请参阅上述“中断性变更”中的 OpenSSL 更新。 修复了 Linux 和 Java 中的间歇性崩溃和性能问题(负载较高时发生锁争用)。
  • Java: 改进了高并发方案中的对象封闭。
  • 重构了我们的 NuGet 包。 我们删除了 lib 文件夹下 Microsoft.CognitiveServices.Speech.core.dllMicrosoft.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 的关键字识别示例。
  • 此处的服务器方案添加了 TTS 示例。

其他更改

  • 优化了 Android 上的 SDK 核心库大小。
  • 1.9.0 及更高版本中的 SDK 支持对话听录器的语音签名版本字段中的 intstring 类型。

语音 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
    • 适用于 JavaScript 的语音 SDK 已开放了源代码。 GitHub 上提供了源代码。
    • 我们现在支持 Node.js,可以在此处找到详细信息。
    • 已删除了对音频会话的长度限制,将自动在后台进行重新连接。
  • (属于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。 取消的事件现在包含两个附加的成员:ErrorCodeErrorDetails。 如果服务器随所报告的错误返回了附加的错误信息,则现在将在新成员中提供该信息。

改进

  • 在识别器配置中添加了附加的验证并添加了附加的错误消息。
  • 改进了对音频文件中间的长时间静默的处理。
  • 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 月版本

新增功能

重大更改

  • 该版本中推出了大量重大更改。 有关详细信息,请查看此页

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() 支持识别功能长时间运行。
  • 识别结果包含更多字段。 这些字段是识别文本的音频开始和持续时间(均以刻度为单位)的偏移量和表示识别状态的其他值(例如 InitialSilenceTimeoutInitialBabbleTimeout)。
  • 支持 AuthorizationToken 用于创建工厂实例。

重大更改

  • 识别事件:NoMatch 事件类型已合并到 Error 事件中。
  • C# 中的 SpeechOutputFormat 已重命名为 OutputFormat 以与 C++ 保持一致。
  • AudioInputStream 接口的某些方法的返回类型略有更改:
    • 在 Java 中,read 方法现返回 long 而不是 int
    • 在 C# 中,Read 方法现返回 uint 而不是 int
    • 在 C++ 中,ReadGetFormat 方法现返回 size_t 而不是 int
  • C++:音频输入流的实例现在只能作为 shared_ptr 传递。

Bug 修复

  • 修复了 RecognizeAsync() 超时时结果中的错误返回值。
  • 删除了 Windows 上媒体基础库的依赖项。 SDK 现在使用 Core Audio API。
  • 文档修复:添加了一个区域页来描述支持的区域。

已知问题

  • 适用于 Android 的语音 SDK 不报告用于翻译的语音合成结果。 此问题将在下一版本中修复。

Azure AI 语音 SDK 0.4.0:2018 年 6 月版本

功能性更改

  • AudioInputStream

    一种现可将流用作音频源的识别器。 有关详细信息,请参阅相关操作说明指南

  • 详细输出格式

    创建 SpeechRecognizer 时,可请求 DetailedSimple 输出格式。 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 的第一个公共预览版本。