问题标签 [sfspeechrecognizer]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
973 浏览

ios - 如果 supportsOnDeviceRecognition 为 true 并且离线模式可用,SFSpeechRecognizer 是否有限制?

根据 Apple 文件,SFSpeechRecognizer可以发送的请求数量是有限制的。

准备好处理由语音识别限制引起的故障。由于语音识别是一项基于网络的服务,因此会强制执行限制,以便该服务可以免费提供给所有应用程序。单个设备每天可以执行的识别数量可能会受到限制,并且每个应用程序可能会根据每天发出的请求数量在全球范围内受到限制。如果识别请求很快失败(在启动后的一两秒内),请检查识别服务是否变得不可用。如果是,您可能需要让用户稍后再试。 https://developer.apple.com/documentation/speech/sfspeechrecognizer

另一份文件说,一台设备每小时可以发送 1000 个请求。

设备可以发出的 SFSpeechRecognitionRequest 调用次数的当前速率限制为每小时 1000 个请求。请注意,此限制是设备可以发出的请求数,与发出请求的应用程序无关。这与与请求相关的音频长度无关。对于给定的 SFSpeechRecognitionRequest,每个请求最多允许您播放一分钟的音频。

现在我正在创建一个SFSpeechRecognizer如下所示的并检查supportsOnDeviceRecognition指示语音识别器是否可以在没有网络访问的情况下运行的属性。它会true在我安装了 iOS 13.2.3 的设备上返回。

我试图离线运行我的应用程序,它在没有互联网连接的情况下运行良好。但是,如果为真,则没有信息是否仍然存在请求限制supportsOnDeviceRecognition。在这种情况下,SFSpeechRecognizer即使设备已连接到互联网,也可能不会连接到 Apple 服务器,因为这是不必要的。supportsOnDeviceRecognition只有在为真时才限制速率?

0 投票
0 回答
667 浏览

swift - SFSpeechRecognizer 失败并出现错误 kAFAssistantErrorDomain Code=1107

我正在尝试在我的应用程序中转录本地音频文件。短文件识别良好,但如果音频超过 15 分钟,则不是。控制台立即显示此错误:

2020-01-17 12:57:07.528986+0300 App[2816:791131] [Utility] +[AFAggregator logDictationFailedWithError:] Error Domain=kAFAssistantErrorDomain Code=1107 "(null)"

这是我的代码:

当出现错误时,只会触发一个委托方法:

successfully = false

我有 Xcode 11.3.1

仅在设备上试用 - iPhone XS (iOS 13.3)

有没有人遇到过这个问题?

0 投票
0 回答
141 浏览

ios - 在 SFSpeechRecognizer 中获取 word 格式的数字而不是数字

有没有办法将数字打印成正确的拼写而不是在通过录音时抛出数字SFSpeechRecognizer?我试图通过实现以下代码来获取单词格式:

如果用户说的是整数甚至十进制数,则此解决方案效果很好,但在某些情况下,此解决方案根本不起作用并使此解决方案看起来很愚蠢。例如,如果用户说“五十五点零”,语音识别器会将其识别为“55.0”。但是数字格式化程序返回“五十五”。在极端情况下,如果用户说“一二三四”,语音识别器将其识别为“1234”,但数字格式化程序返回“一千二百三十四”。

我的目标是如果用户说出任何数字,语音识别器应该逐字返回相同的数字。如果用户说“五十五点零”,它应该返回“五十五点零”。如果用户说“一二三四”,它应该返回“一二三四”。

0 投票
1 回答
505 浏览

ios - 语音识别器在 ios 13 背景中不起作用

我正在尝试使用 Cordova 在 iOS 应用程序中实现语音识别器。我正在使用 iOS 13.1。当应用程序在前面时它正在工作。但是当应用程序移到后台时不起作用。

我收到以下错误:

2020-01-21 15:30:41.549170+0530 Pro@Me[2212:613705] [Utility] +[AFAggregator logDictationFailedWithError:] 错误域=kAFAssistantErrorDomain Code=1700 "(null)" 2020-01-21 15:30: 41.553271+0530 Pro@Me[2212:613445] [aurioc] AURemoteIO.cpp:1590:Start: AUIOClient_StartIO 失败 (561145187) 2020-01-21 15:30:41.553429+0530 Pro@Me[2212:613445] [avae] AVAEInternal.h:109 [AVAudioEngineGraph.mm:1544:Start: (err = PerformCommand(*ioNode, kAUStartIO, NULL, 0)): 错误 561145187 2020-01-21 15:30:41.556057+0530 Pro@Me[2212: 613445] 线程警告:['SpeechRecognition'] 花费了 '42.260986' 毫秒。插件应该使用后台线程。2020-01-21 15:30:41.556959+0530 Pro@Me[2212:613445] startListening() 识别任务错误:错误域=kAFAssistantErrorDomain Code=1700“(空)”

提出一些解决方案。

0 投票
1 回答
541 浏览

macos - 尽管授权成功,但 MacOS 上的 SFSpeechRecognizer 不可用

我正在尝试获取一个笨拙的 Objective-C 概念验证示例,以便在 Catalina 上使用 SFSpeechRecognizer 运行,并转录本地音频文件。

经过一番谷歌搜索后,我设法通过添加一个带有 NSSpeechRecognitionUsageDescription 的 Info.plist 来获得授权,并且我得到了授权对话框和正确的 SFSpeechRecognizerAuthorizationStatus (SFSpeechRecognizerAuthorizationStatusAuthorized)。

但是,我的 SFSpeechRecognizer 实例仍然不可用。我怀疑,由于缺乏基本的Objective-C知识,我一定犯了一个愚蠢的错误。

任何提示都非常感谢。

这是我的代码:

我运行它时的输出是:

0 投票
1 回答
323 浏览

macos - SFSpeechRecognizer 段时间戳每分钟从零开始

我刚刚注意到 SFTranscriptionSegments 的时间戳每分钟从零开始,如果有长时间的停顿,就不可能真正知道文本的位置。这是可以配置或解决的吗?

我正在使用 SFSpeechRecognizer 转录可能超过一分钟的音频文件。将它们切成一分钟的片段会有分裂单词的危险。

我在 Mac OS Catalina 上使用 SFSpeechRecognizer。

0 投票
1 回答
203 浏览

swift - 在 SFSpeechRecognizer 中使用 AudioToolbox 而不是 AVFoundation

我必须使用 AudioToolbox 而不是 AVAudioSession 来向 SFSpeechRecognizer 提供流。我知道我应该使用 AudioQueue,所以我将录音导出到 CMSampleBuffer 以使用识别器读取它。在调试时,我看到缓冲区已添加到 SFSpeechAudioBufferRecognitionRequest,但任务闭包中的代码没有执行:既没有结果,也没有错误。

代码有什么问题?

UPD:我修改了代码,使其更具描述性

0 投票
0 回答
122 浏览

swift - SpeechRecognizer?.supportsOnDeviceRecognition 总是返回 false

我刚刚更新到 macOS 10.15.4,每次我检查设备上的语音识别是否可用时,我都会返回错误。这适用于 10.15.3。

还有人看到这个吗?有什么技巧可以让它再次工作吗?

0 投票
0 回答
118 浏览

swift - SFSpeechRecognizer 不允许设备区域设置上的非系统

我正在尝试在用户设备 (macOS) 上识别在多个语言环境中使用的英语语音。WWDC 官方视频显示这是支持的。 在此处输入图像描述 但是,如果我尝试以系统设置以外的任何语言创建设备上语音识别器,则会失败。

返回假

返回真

支持的语言环境

返回以下内容:

es-CL(固定) es-419(固定) sv-SE(固定) de-DE(固定) en-GB(固定) es-CO(固定) hi-IN(固定) fr-CH(固定) ar- SA (固定) vi-VN (固定) de-CH (固定) en-US (固定) en-PH (固定) zh-HK (固定) ru-RU (固定) id-ID (固定) fi-FI (固定) tr-TR(固定) it-IT(固定) ja-JP(固定) uk-UA(固定) wuu-CN(固定) nl-NL(固定) da-DK(固定) cs-CZ(固定) fr-CA (固定) ms-MY (固定) he-IL (固定) zh-CN (固定) es-US (固定) hu-HU (固定) sk-SK (固定) fr-FR (固定) nl- BE(固定) es-MX(固定) en-AU(固定) zh-TW(固定) it-CH(固定) el-GR(固定) ko-KR(固定) ro-RO(固定) yue-CN(固定) pt-BR (固定) es-ES (固定) hi-Latn (固定) en-ZA (固定) en-NZ (固定) ca-ES (固定) en-IE (固定) fr-BE (固定) pt-PT (固定) en-ID (固定) en-SA (固定) hi-IN-translit (固定) en-IN (固定) nb-NO (固定) hr-HR (固定) en-CA (固定)英文-SG(固定) de-AT (固定) pl-PL (固定) th-TH (固定) en-AE (固定)

为了确认我的问题与这篇文章无关,我改变了我的 Siri 声音如下(它下载了额外的文件)。 在此处输入图像描述

0 投票
2 回答
126 浏览

ios - 是否可以限制 SFSpeechRecognizer 的词汇量?

我想使用 iosSFSpeechRecognizer来识别一组封闭的单词和短语。有没有办法指定这些并消除所有其他可能性?我似乎找不到办法做到这一点。