问题标签 [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 投票
0 回答
73 浏览

ios - iOS 语音识别 - SFSpeechAudioBufferRecognitionRequest 覆盖编辑的转录

我的项目使用 iOS 10 语音识别。对于连续语音,我使用SFSpeechAudioBufferRecognitionRequestApple 的语音库,并将结果保存到UITextView.

当用户暂停 x 秒时,我想在转录中添加一个句点,但新的转录总是会覆盖句点,因为 iOS 语音将整个转录保存在一个字符串中并继续附加到字符串,然后中继结果持续到我的应用程序。

例如:如果我的转录是hello it's a test并且我的 UI 正确添加了一个句点。但是随后用户记录了更多(没有再次按下麦克风按钮,因为它是连续的),然后该句点将被覆盖,因为语音引擎不知道该句点,因此它将hello it's a test talking again显示在屏幕上并且我丢失了我的编辑。防止这种情况发生的最好方法是什么?

This answer from another post建议使用计时器。正确使用 Timer 会添加一个句点,但它不能解决语音引擎不知道 UI 上已经存在该句点的问题。

0 投票
0 回答
586 浏览

ios - 在后台运行多个 SFSpeechRecognitionTask 时出错

根据我正在开发的应用程序的要求,我必须将多个音频文件传递给SFSpeechRecognizer并获得转录作为回报。我通过两种方式做到了

第一种方法——使用递归(运行正确,可以跳过)

我首先通过逐个转录完成了这项任务。即当SFSpeechRecognitionTask完成时,结果被保存,并且该过程通过递归调用再次运行。

SFSpeechRecognizer这种方法效果很好,但是由于每个请求都需要时间来完成,因此需要花费太多时间。


第二种方法 - 使用循环和后台线程(这个有问题)

我试图创建多个请求并一次在后台执行它们。为此,我创建了一个 For 循环,直到音频文件的数量,在该循环中,我调用了该函数来创建SFSpeechRecognizer请求和任务。

获得语音识别结果的函数是

当我运行此代码时,只有一个任务执行,其他任务给出此错误

+[AFAggregator logDictationFailedWithError:] 错误域=kAFAssistantErrorDomain 代码=209 "(null)"

我在互联网上搜索了此错误,但没有包含其详细信息的文档。

这可能是由于SFSpeechRecognitionTask并行运行,但在此处的官方 Apple 文档中,他们并没有禁止这样做,因为我们可以SFSpeechRecognitionRequest单独创建对象。我们不使用单例对象SFSpeechRecognizer

让我知道是否有人知道发生了什么以及您建议我做什么。

0 投票
0 回答
114 浏览

ios - SFSpeechRecognizer 的多个实例?

我正在尝试运行SFSpeechRecognizer. 不幸的是我总是得到这个错误:

[Utility] +[AFAggregator logDictationFailedWithError:] Error Domain=kAFAssistantErrorDomain Code=209 "(null)"

这个错误是什么意思?

0 投票
0 回答
70 浏览

avfoundation - AVAudioRecorder:加快录音的播放速度?(不能用 AVAudioPlayer 快速播放)

我正在尝试使用SFSpeechRecognizer. 不幸的是,它似乎是实时运行的,例如,如果音频文件长 1 分钟,SFSpeechRecognizer则需要 1 分钟来转录它。

我还没有找到加快速度的选项。我知道AVAudioPlayer有一个速度选项,但我想知道是否可以加快录制文件的速度AVAudioRecorder

0 投票
0 回答
877 浏览

ios - Swift 中的 AVAudioEngine 在采样率上崩溃

我已经开始遇到以前在初始化记录时没有发生的崩溃并出现错误:

这似乎是一些人在使用AudioKit时也会遇到的一个棘手错误

在这种情况下,它似乎与使用 48k 而不是 44.1k 的采样率有关。但是,就我而言,使用音频引擎,我根本没有设置任何采样率。

我的代码主要是用于记录的样板。崩溃发生在以下行:

任何人都可以建议在使用音频引擎进行录制时如何解决这个问题?

感谢您的任何建议。

编辑

这就是我创建recordingFormat的方式:

这就是调试器中的recordingFormat ..它似乎设置为44.1k:

inputNode 看起来像这样:

编辑2:

该问题似乎与 Apple 将输入格式更改为 48k 有关,如下所述

这说明了不匹配:

然而,这个使用 avaudioconverter 的修复似乎非常复杂。其他人如何处理这个问题?

0 投票
1 回答
898 浏览

swift - Swift 4 - XCTAssertThrowsError 失败:没有抛出错误

我正在测试SFSpeechRecognizer. 我无法使用XCTAssertThrowsError().

如果没有语言环境,创建SFSpeechRecognizer将返回一个对象。nil

这是我尝试抛出的单元测试功能:

由于以下错误,单元测试失败:

XCTAssertThrowsError 失败:没有抛出错误。

我不确定为什么会这样。有什么建议么?

0 投票
1 回答
1054 浏览

ios - SFSpeechRecognizer 多种语言

我正在构建一个支持语音识别并将语音转换为文本的搜索,因此我正在使用SFSpeechRecognizer. 但问题是我需要同时支持多种语言,例如(“ en_US”,“ fr”,,,viar

主要思想是用户可以说例如一个英语单词和另一个法语单词,我希望引擎能够检测到这一点。

目前,我正在使用它来设置我的主要语言

英语:

法语:

我需要单独设置的每种语言。

有没有办法SFSpeechRecognizer同时支持多种语言?

0 投票
1 回答
103 浏览

ios - 在通话或 Facetime 会话中,尝试使用 SpeechRecognizer 会导致应用崩溃

标题中描述的场景会产生如下错误:

由于未捕获的异常“com.apple.coreaudio.avfaudio”而终止应用程序,原因:“所需条件为假:IsFormatSampleRateAndChannelCountValid(format)

在那之后,我被倾倒到应用程序委托中,并且没有为出了什么问题提供太多帮助。

我熟悉正确结束音频会话的必要性,但在我的特殊情况下,这会在开始会话时发生,特别是在这里:

0 投票
1 回答
217 浏览

ios - 自从向文本添加语音(语音识别)以来,文本到语音的音量显着下降

即使只是将文本从 UITextView 传输到 UILabel 时,带有标签的视图控制器中的音量也变得非常安静。

除了音量问题之外,几乎所有东西都可以完美运行。

语音类文件:

文本到语音控制器:

语音到文本控制器:

只希望音量正常。在我添加语音识别之前很好。

0 投票
0 回答
284 浏览

android - 调整 Android Speech-to-text 识别中的背景噪音敏感度

Android Speech-to-text 对背景噪音非常敏感。用例是在浅背景噪声恒定的区域中使用语音到文本。只想控制特定语音级别的语音识别。

尝试使用Speech Recogniser 的 RMS 和缓冲区输入来解决问题。一些使用相同逻辑的解决方法会有所帮助。

从 Android 语音到文本识别器返回的回调是: