每次我使用 AVSpeechSynthesizer 朗读文本时,仪器都会报告 AXSpeechImplementation 库中的内存泄漏。这是我用来拨打电话的代码:
AVSpeechUtterance *speak = [AVSpeechUtterance speechUtteranceWithString:text];
speak.voice = [AVSpeechSynthesisVoice voiceWithLanguage:@"en-US"];
speak.rate = AVSpeechUtteranceMaximumSpeechRate * .2;
[m_speechSynth speakUtterance:speak];
Run Code Online (Sandbox Code Playgroud)
这是仪器屏幕截图的链接 http://imageshack.com/a/img690/7993/b9w5.png
我在我的应用程序中使用AVSpeechSynthesizer进行文本到语音转换.是否可以在中间停止播放,例如,如果用户点击停止按钮?
我正在处理文本朗读任务。在其中我面临的问题是,如果我得到文本,例如:Hello everyone. 2 minutes to go.然后使用下面的代码进行语音合成器,它将整个文本视为一个句子,并且不会在Hello everyone.. 就像没有. (full stop)after一样,它将整个文本作为一个句子Hello everyone。仅当标点符号后有数字时才会发生这种情况 . (full stop)
let utterance = AVSpeechUtterance(string: "Hello everyone. 2 minutes to go.")
utterance.voice = AVSpeechSynthesisVoice(language: "en-US")
utterance.rate = AVSpeechUtteranceDefaultSpeechRate
synthesizer.speak(utterance)
Run Code Online (Sandbox Code Playgroud)
如果您担心我如何初始化会话和合成器,那么这里是下面的代码:
let synthesizer = AVSpeechSynthesizer()
let session = AVAudioSession.sharedInstance()
do {
try session.setCategory(AVAudioSessionCategoryPlayback, with: .duckOthers)
try session.setActive(true)
} catch {
print(error.localizedDescription)
}
Run Code Online (Sandbox Code Playgroud) text-to-speech ios avspeechsynthesizer swift avspeechutterance
任何人都可以分享我们如何在 SwiftUI 中实现 AVSpeechSynthesizerDelegate。我们如何在 SwiftUI 应用程序中监听委托回调方法。
谢谢
通过此 appcoder 教程构建文本到语音应用程序教程并运行 swift 1.2-> swift 2.0 功能。
演示项目中有一个类... IOS 10.11.1 下的 Xcode 7.1.1 不喜欢它,给了我错误。覆盖 init() 语句上的“初始化器不会覆盖其超类中的指定初始化器”,后面跟着错误“必须调用超类 UISlider 的指定初始化器”。
好吧,对 Swift 来说还很陌生;我开始解决这个问题的地方让我有点迷失。
class CustomSlider: UISlider {
var sliderIdentifier: Int!
override init() { <--- error here
super.init() <--- error here
sliderIdentifier = 0
}
required init?(coder aDecoder: NSCoder) {
super.init(coder: aDecoder)
sliderIdentifier = 0
}
}
Run Code Online (Sandbox Code Playgroud)
这段代码应该说什么?
我目前正在开发一个使用 AVSynthesizer 将文本转换为语音的 iOS 应用程序。
我想要做的是,当合成器说话时,可以通过滑块更改发声率,并且说话的速度会发生变化。
我在滑块的 IBAction 中这样做: self.utterance = sender.value
但合成器不会改变速度。我一直在寻找信息,但我还没有找到。我能做什么?提前致谢。
xcode avfoundation ios avspeechsynthesizer avspeechutterance
当一个人AVSpeechUtterance说话时,我想等到它完成之后才做其他事情.
有一个属性AVSpeechSynthesizer似乎表明发言时间:
由于这个问题可能听起来很愚蠢和简单,我想知道如何使用/检查此属性等到语音结束后再继续?
或者:
有一个代表,我对如何使用也毫无头绪,它有能力在话语结束时做某事:
有一个答案,在这里,是说用这个.但这对我没有帮助,因为我不知道如何使用代表.
这就是我设置口语课的方式:
import AVFoundation
class CanSpeak: NSObject, AVSpeechSynthesizerDelegate {
let voices = AVSpeechSynthesisVoice.speechVoices()
let voiceSynth = AVSpeechSynthesizer()
var voiceToUse: AVSpeechSynthesisVoice?
override init(){
voiceToUse = AVSpeechSynthesisVoice.speechVoices().filter({ $0.name == "Karen" }).first
}
func sayThis(_ phrase: String){
let utterance = AVSpeechUtterance(string: phrase)
utterance.voice = voiceToUse
utterance.rate = 0.5
voiceSynth.speak(utterance)
}
}
Run Code Online (Sandbox Code Playgroud)
使用上面提到的isSpeaking属性,在gameScene中:
voice.sayThis(targetsToSay)
let initialPause = SKAction.wait(forDuration: 1.0)
let holdWhileSpeaking = SKAction.run {
while self.voice.voiceSynth.isSpeaking {print("STILL …Run Code Online (Sandbox Code Playgroud) 去年我问了一个关于如何将语音保存到文件的问题。 堆栈溢出问题 - 将语音合成录制到保存的文件中
感谢 kakaiikaka 的回答。虽然它确实有效,但缓冲时出现了一些错误。以下代码隔离了该问题。在 iOS 16 中,尽管存在错误,但它确实可以按预期工作。我按预期打印的完成处理程序。以下错误打印了 20 次左右。
2023-06-17 15:35:33.811838-0400 RecordSpeechFix [3899:1958883] [AXTTSCommon] TTSPlaybackEnqueueFullAudioQueueBuffer:错误-66686排队缓冲区
iOS 17(第一个测试版)存在一个更具描述性的错误,并且它不起作用。完成处理程序不打印。以下错误打印了 20 次左右。
输入数据过程返回不一致的 512 个数据包(2,048 字节);按每个数据包 2 字节计算,实际上是 1,024 个数据包
我假设这是同一个问题。修复 iOS16 的错误也将修复 iOS17 的错误。我的这个假设可能是错误的。
//
// ContentView.swift
// RecordSpeechFix
//
// Created by Dennis Sargent on 6/16/23.
//
import AVFoundation
import SwiftUI
struct ContentView: View {
var body: some View {
VStack {
Image(systemName: "globe")
.imageScale(.large)
.foregroundColor(.accentColor)
Text("Record Speech")
}
.padding()
.onTapGesture {
saveSpeechUtteranceToFile(phrase: "This produces warnings.") {
print("In …Run Code Online (Sandbox Code Playgroud) ios ×6
swift ×4
avfoundation ×3
ios7 ×2
swiftui ×2
ios13 ×1
iphone ×1
memory-leaks ×1
speech ×1
xcode ×1