问题标签 [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.
ios - iOS 语音识别 - SFSpeechAudioBufferRecognitionRequest 覆盖编辑的转录
我的项目使用 iOS 10 语音识别。对于连续语音,我使用SFSpeechAudioBufferRecognitionRequest
Apple 的语音库,并将结果保存到UITextView
.
当用户暂停 x 秒时,我想在转录中添加一个句点,但新的转录总是会覆盖句点,因为 iOS 语音将整个转录保存在一个字符串中并继续附加到字符串,然后中继结果持续到我的应用程序。
例如:如果我的转录是hello it's a test
并且我的 UI 正确添加了一个句点。但是随后用户记录了更多(没有再次按下麦克风按钮,因为它是连续的),然后该句点将被覆盖,因为语音引擎不知道该句点,因此它将hello it's a test talking again
显示在屏幕上并且我丢失了我的编辑。防止这种情况发生的最好方法是什么?
This answer from another post建议使用计时器。正确使用 Timer 会添加一个句点,但它不能解决语音引擎不知道 UI 上已经存在该句点的问题。
ios - 在后台运行多个 SFSpeechRecognitionTask 时出错
根据我正在开发的应用程序的要求,我必须将多个音频文件传递给SFSpeechRecognizer
并获得转录作为回报。我通过两种方式做到了
第一种方法——使用递归(运行正确,可以跳过)
我首先通过逐个转录完成了这项任务。即当SFSpeechRecognitionTask
完成时,结果被保存,并且该过程通过递归调用再次运行。
SFSpeechRecognizer
这种方法效果很好,但是由于每个请求都需要时间来完成,因此需要花费太多时间。
第二种方法 - 使用循环和后台线程(这个有问题)
我试图创建多个请求并一次在后台执行它们。为此,我创建了一个 For 循环,直到音频文件的数量,在该循环中,我调用了该函数来创建SFSpeechRecognizer
请求和任务。
获得语音识别结果的函数是
当我运行此代码时,只有一个任务执行,其他任务给出此错误
+[AFAggregator logDictationFailedWithError:] 错误域=kAFAssistantErrorDomain 代码=209 "(null)"
我在互联网上搜索了此错误,但没有包含其详细信息的文档。
这可能是由于SFSpeechRecognitionTask
并行运行,但在此处的官方 Apple 文档中,他们并没有禁止这样做,因为我们可以SFSpeechRecognitionRequest
单独创建对象。我们不使用单例对象SFSpeechRecognizer
让我知道是否有人知道发生了什么以及您建议我做什么。
ios - SFSpeechRecognizer 的多个实例?
我正在尝试运行SFSpeechRecognizer
. 不幸的是我总是得到这个错误:
[Utility] +[AFAggregator logDictationFailedWithError:] Error Domain=kAFAssistantErrorDomain Code=209 "(null)"
这个错误是什么意思?
avfoundation - AVAudioRecorder:加快录音的播放速度?(不能用 AVAudioPlayer 快速播放)
我正在尝试使用SFSpeechRecognizer
. 不幸的是,它似乎是实时运行的,例如,如果音频文件长 1 分钟,SFSpeechRecognizer
则需要 1 分钟来转录它。
我还没有找到加快速度的选项。我知道AVAudioPlayer
有一个速度选项,但我想知道是否可以加快录制文件的速度AVAudioRecorder
?
ios - Swift 中的 AVAudioEngine 在采样率上崩溃
我已经开始遇到以前在初始化记录时没有发生的崩溃并出现错误:
这似乎是一些人在使用AudioKit时也会遇到的一个棘手错误。
在这种情况下,它似乎与使用 48k 而不是 44.1k 的采样率有关。但是,就我而言,使用音频引擎,我根本没有设置任何采样率。
我的代码主要是用于记录的样板。崩溃发生在以下行:
任何人都可以建议在使用音频引擎进行录制时如何解决这个问题?
感谢您的任何建议。
编辑
这就是我创建recordingFormat的方式:
这就是调试器中的recordingFormat ..它似乎设置为44.1k:
inputNode 看起来像这样:
编辑2:
该问题似乎与 Apple 将输入格式更改为 48k 有关,如下所述:
这说明了不匹配:
然而,这个使用 avaudioconverter 的修复似乎非常复杂。其他人如何处理这个问题?
swift - Swift 4 - XCTAssertThrowsError 失败:没有抛出错误
我正在测试SFSpeechRecognizer
. 我无法使用XCTAssertThrowsError()
.
如果没有语言环境,创建SFSpeechRecognizer
将返回一个对象。nil
这是我尝试抛出的单元测试功能:
由于以下错误,单元测试失败:
XCTAssertThrowsError 失败:没有抛出错误。
我不确定为什么会这样。有什么建议么?
ios - SFSpeechRecognizer 多种语言
我正在构建一个支持语音识别并将语音转换为文本的搜索,因此我正在使用SFSpeechRecognizer
. 但问题是我需要同时支持多种语言,例如(“ en_US
”,“ fr
”,,,vi
)ar
。
主要思想是用户可以说例如一个英语单词和另一个法语单词,我希望引擎能够检测到这一点。
目前,我正在使用它来设置我的主要语言
英语:
法语:
我需要单独设置的每种语言。
有没有办法SFSpeechRecognizer
同时支持多种语言?
ios - 在通话或 Facetime 会话中,尝试使用 SpeechRecognizer 会导致应用崩溃
标题中描述的场景会产生如下错误:
由于未捕获的异常“com.apple.coreaudio.avfaudio”而终止应用程序,原因:“所需条件为假:IsFormatSampleRateAndChannelCountValid(format)
在那之后,我被倾倒到应用程序委托中,并且没有为出了什么问题提供太多帮助。
我熟悉正确结束音频会话的必要性,但在我的特殊情况下,这会在开始会话时发生,特别是在这里:
ios - 自从向文本添加语音(语音识别)以来,文本到语音的音量显着下降
即使只是将文本从 UITextView 传输到 UILabel 时,带有标签的视图控制器中的音量也变得非常安静。
除了音量问题之外,几乎所有东西都可以完美运行。
语音类文件:
文本到语音控制器:
语音到文本控制器:
只希望音量正常。在我添加语音识别之前很好。
android - 调整 Android Speech-to-text 识别中的背景噪音敏感度
Android Speech-to-text 对背景噪音非常敏感。用例是在浅背景噪声恒定的区域中使用语音到文本。只想控制特定语音级别的语音识别。
尝试使用Speech Recogniser 的 RMS 和缓冲区输入来解决问题。一些使用相同逻辑的解决方法会有所帮助。
从 Android 语音到文本识别器返回的回调是: