问题标签 [avspeechutterance]

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 投票
2 回答
1628 浏览

ios - 在 didReceiveRemoteNotification 中播放声音,而在后台,使用文本到语音功能

我目前正在尝试的是在应用程序在后台(或可能从挂起状态唤醒)收到远程通知时播放消息。

应用程序从挂起模式唤醒后根本不播放声音。

didReceiveRemoteNotification:当应用程序在前台时,调用方法后立即播放声音。

didReceiveRemoteNotification:当应用程序从挂起模式唤醒时调用方法时立即播放声音的合适方法是什么?

这是一些代码(语音管理器类):

}

后来在AppDelegate

我在 Capabilities->Background Modes 部分启用了音频、AirPlay 和画中画选项。

编辑:

如果需要,也许我应该启动一个后台任务并运行过期处理程序?我想这可能有效,但我也想听听解决这种情况的常用方法。

同样使用此代码,当我在后台收到通知时,我会收到下一个错误:

激活音频会话时出错:Error Domain=NSOSStatusErrorDomain Code=561015905 "(null)"

代码 561015905 适用于:

AVAudioSessionErrorCodeCannotStartPlaying = '!pla', /* 0x21706C61, 561015905

它被描述为:

如果应用程序的信息属性列表不允许使用音频,或者应用程序在后台并使用不允许背景音频的类别,则可能会出现此错误类型。

但我在其他类别(AVAudioSessionCategoryAmbientAVAudioSessionCategorySoloAmbient)中遇到同样的错误

0 投票
1 回答
1621 浏览

swift - AVS语音合成器语言

在我的应用程序中,我使用 AVSpeechSynthesizer,文本演讲是俄语,问题是当我将系统语言更改为英语时,文本发音带有英语口音,听起来像是俄语的转录。我该如何处理这个问题?

这是一些代码

0 投票
1 回答
682 浏览

ios - AVSpeechSynthesizer (Text to Speech) 播放的音量会自行增加,仅限 iPhone7

我的 iOS10 应用程序执行文本到语音和语音识别。发生这种情况时,它会暂停其他应用程序的音频,并在 ASR/TTS 结束时通知其他应用程序,以便他们可以恢复音频。在 iPhone5 和 6 上一切正常。

问题出在 iPhone7s 上:口语短语的音量一开始非常低,到短语结尾时声音更大。为什么?

我将提供一些代码以防万一,因为这似乎是一个 iOS 错误。

音频会话代码:

文字转语音代码:

0 投票
0 回答
2523 浏览

ios - 无法复制资产属性控制台错误 - AVSpeechSynthesizer

我的控制台收到这些错误的垃圾邮件:

[MobileAssetError:1] 无法复制资产属性

无法获取属性“LocalURL”:错误域=MobileAssetError Code=1“无法复制资产属性”UserInfo={NSDescription=无法复制资产属性}

复制匹配资产回复:XPC_TYPE_DICTIONARY { count = 2,transaction: 0,voucher = 0x0,contents = "Assets" => : { length = 1237 bytes, contents = 0x62706c6973743030d4010203040506636458247665727369... } "Result" => : 0 }

复制资产属性回复:XPC_TYPE_DICTIONARY { count = 1,transaction: 0,voucher = 0x0,contents = "Result" => : 1 }

当它开始向控制台发送垃圾邮件时非常烦人。我读过类似禁用 OS_ACTIVITY_MODE 的东西可以抑制这些日志,但我想找到它的来源并按应有的方式处理它......

发生这种情况是因为我使用 AVSpeechSynthesizer,如下所示:

0 投票
1 回答
555 浏览

ios - 说话前 Swift Clear AVSpeechSynthesizer

我正在使用下面的代码在我的应用程序中说出一个字符串。

如果字符串随后被更改并要求再次读取,它会在新字符串的末尾重复前一个字符串。

是否可以在开始之前清除 AVSpeechSynthesizer?

谢谢

0 投票
1 回答
1623 浏览

ios - 在 AVSpeechUtterance 之后使用 SFSpeechRecognizer 时出现 AVAudioSession 问题

在通过 AVSpeechUtterance 向用户发表欢迎信息后,我尝试使用 SFSpeechRecognizer 进行语音转文本。但是随机地,语音识别没有启动(在说出欢迎信息之后),它会抛出下面的错误信息。

[avas] 错误:AVAudioSession.mm:1049:-[AVAudioSession setActive:withOptions:error:]:停用具有运行 I/O 的音频会话。在停用音频会话之前,应停止或暂停所有 I/O。

它工作了几次。我不清楚为什么它不能始终如一地工作。

我尝试了其他 SO 帖子中提到的解决方案,其中提到检查是否有音频播放器正在运行。我将语音检查添加到代码的文本部分。它返回 false(即没有其他音频播放器正在运行)但文本语音仍然没有开始收听用户语音。你能指导我出什么问题吗?

正在运行 iOS 10.3 的 iPhone 6 上进行测试

以下是使用的代码片段:

文字转语音

语音转文本

关于添加的日志,我能够看到所有日志,直到打印“Step7”。

在调试设备中的代码时,它始终在以下行触发中断(我设置了异常断点),但继续继续执行。然而,在少数成功的执行过程中也会以同样的方式发生。

AVAudioFormat *recordingFormat = [self.audioEngine.inputNode outputFormatForBus:0];

[self.audioEngine 准备];

0 投票
2 回答
1845 浏览

ios - Change AVSpeechUtterance rate in real time

I am currently developing an iOS app that converts text to speech using AVSynthesizer.

What I want to do is that while the synthesizer is speaking, utterance rate can be changed and with a slider and the speed of the speaking changes.

I am doing this in the IBAction of the slider: self.utterance = sender.value

but the synthesizer doesn't change the speed. I've been looking for information but I haven't found something yet. What cand I do? Thanks in advance.

0 投票
1 回答
646 浏览

swift - Swift - 说话时改变音量

我一直试图让我的推子来调整 tts “live”的音量,但我做不到。我只能在文本第一次开始时设置音量。无论如何要这样做?

更新:我能够使用对我的视图控制器的以下更改来访问委托:

调用它只是:

它打印:

音量没有增加......这不是话语的完整实现。

0 投票
2 回答
123 浏览

text - Join 2 different labels for text to speech conversion (swift3)

Using the speech to text feature I can easily get one label to be spoken. But I want utterance2 to be joined to utterance. I want utterance to be spoken first then when it is finished for utterance2 to be spoken right after.

0 投票
1 回答
486 浏览

swift - Swift - 完成后重置/重新启动 SpeechSynthesizer

我正在编写一个应用程序来向学生阅读随机学习问题。

基本流程是:

  • 生成随机问题
  • 将文本分配给 SpeechUtterrance
  • 使用 SpeechSynthesizer 播放 SpeechUtterance
  • 得到学生的答案
  • 核实
  • 生成一个新的随机问题
  • 重复

一切正常,除了我无法阅读多个问题。它会说第一个,接受一个答案,但我无法让它阅读后续的话语。

在运行 didFinish 后,我可以调用一种方法来重置 SpeechSynthesizer/SpeechUtterance 吗?