Swift TTS,无音频输出

2024-05-08

我尝试在我的应用程序 TTS 中集成,但如果单击按钮,则没有音频输出。这是按钮代码:

struct VocabDetailView: View {
//...
    var body: some View {
//...
        HStack{
            Button("Play") {
                readOut(text: "test")
            }
        }
    }
}
//The code from readOut is:

func readOut(text: String) {
    let utterance = AVSpeechUtterance(string: text)
    utterance.voice = AVSpeechSynthesisVoice(language: "en-US")

    let synth = AVSpeechSynthesizer()
    synth.speak(utterance)
}

每次我单击按钮时,Xcode 的输出字段中都会显示:

2022-11-12 09:53:08.349877+0100 Vocab-learner[2394:64531] [plugin] AddInstanceForFactory: No factory registered for id <CFUUID 0x600000354580> F8BB1C28-BAE8-11D6-9C31-00039315CD46
2022-11-12 09:53:19.528945+0100 Vocab-learner[2394:64592] [catalog] Unable to list voice folder
2022-11-12 09:53:19.539617+0100 Vocab-learner[2394:64592] [catalog] Unable to list voice folder
2022-11-12 09:53:19.543384+0100 Vocab-learner[2394:64592] [catalog] Unable to list voice folder
2022-11-12 09:53:19.551385+0100 Vocab-learner[2394:64592] [catalog] Unable to list voice folder
2022-11-12 09:53:19.566548+0100 Vocab-learner[2394:64916] [AXTTSCommon] File file:///System/Library/PrivateFrameworks/TextToSpeechMauiSupport.framework/Resources/TTSResources/en-US/Samantha/Contents/user_rules.txt contained data that was not null terminated
2022-11-12 09:53:19.573183+0100 Vocab-learner[2394:64916] [AXTTSCommon] File file:///tmp/com.apple.mobileassetd/AssetsV2/com_apple_MobileAsset_Trial_Siri_SiriTextToSpeech/purpose_auto/253115073e2b38c109deaac3e52d26ad44a84148.asset/AssetData/vocalizer-user-dict.dat contained data that was not null terminated

这意味着什么?我需要做什么?

我改变了语言,但它也不起作用。


信用至@节奏拳手 https://stackoverflow.com/users/22147/rhythmic-fistman的评论,正确地识别了问题!

The AVSpeechSynthesizer超出了范围,因为当readOut函数退出,因此在 TTS 播放之前它被释放。解决方案是保留对AVSpeechSynthesizer在你看来的成员变量中,并转换readOut进入你认为的方法:

struct VocabDetailView: View {
    let synth = AVSpeechSynthesizer()
    
    private func readOut(text: String) {
        let utterance = AVSpeechUtterance(string: text)
        utterance.voice = AVSpeechSynthesisVoice(language: "en-US")

        synth.speak(utterance)
    }

    var body: some View {
        HStack{
            Button("Play") {
                readOut(text: "test")
            }
        }
    }
}
注意:OP 中包含的日志行仍会打印出来,但是是错误的并且不会影响 TTS。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Swift TTS,无音频输出 的相关文章

  • 不明白 Swift 中的闭包示例

    我正在尝试了解 swift 和闭包 我被这个例子困住了 numbers map number Int gt Int in let result 3 number return result 什么是 number Int gt Int 它是一
  • Xcode 10 Beta 5 — clang:错误:链接器命令失败,退出代码为 1

    有人可以帮我吗 我的项目一切正常 但更新到 Xcode10 Beta5 后 尝试在 iPhone 上运行该应用程序时出现此错误 然而模拟器可以工作 请帮助我 我已经对这个问题进行了网络搜索并发现this https stackoverflo
  • 可以获取位置,但无法获取航向

    我目前只使用模拟器 但我在 iOS 模拟器上快速使用 CoreLocation 时遇到问题 我得到此代码打印的位置更新 但从未得到标题 我不想当然 我正在尝试制作一个指南针类型的应用程序 它将显示目标的方位 class CompassVie
  • ios - Gamekit 的 GKOctree 未找到元素

    我正在尝试使用GKOctree https developer apple com documentation gameplaykit gkoctree用于高效检索 3D 空间中的对象 然而 以下代码似乎没有按预期工作 import Gam
  • SwiftUI:状态栏颜色

    有没有办法将 SwiftUI 视图的状态栏更改为白色 我可能错过了一些简单的东西 但我似乎找不到在 SwiftUI 中将状态栏更改为白色的方法 到目前为止我只看到 statusBar hidden Bool 状态栏文本 色调 前景色可以通过
  • 在 IOS 上使用 AVComposition 混合两个音频文件

    我正在尝试混合两个音频文件 将一个音频文件放在另一个音频文件之上 不是缝合在一起 但我在 IOS 上学习 AVFoundation 时遇到了困难 我在这里遵循了这个答案 如何使用 AVMutableCompositionTrack 合并音频
  • 如何防止Apple Watch进入睡眠状态?

    我们正在开发一个 Apple Watch 项目 但如果不被打扰 手表就会进入睡眠状态 有什么办法可以阻止它进入睡眠状态吗 据我所知和有关该主题的其他搜索 目前还没有api可通过编程方式启用或禁用 Apple Watch 的睡眠模式
  • iOS 中的构建对象文件扩展名是什么?

    当我在项目中构建java对象类时 将创建带有 class扩展名的构建文件 并且人类不可读 快速构建文件怎么样 example car java gt build gt car class 构建后会是什么 car swift gt build
  • 我的游戏中应该有多少个视图控制器?

    我开始使用 spritekit 构建我的第一个游戏 现在我只有一个视图控制器来呈现开始屏幕场景 override func viewDidLoad super viewDidLoad let scene StartScreenScene C
  • Swift C 回调 - Swift 类指针的 takeUnretainedValue 或 takeRetainedValue

    我有一些UIView or UITableViewCell 里面我有 C 回调 例如 CCallback bridge self observer data gt Void in let mySelf Unmanaged
  • IPV6 快速可达性

    我是 swift 和 xcode 的新手 并且我的应用程序因 IPV6 而被拒绝 性能 2 1 当我们执行以下操作时 您的应用程序会在运行 iOS 9 3 5 并连接到 IPv6 网络的 iPad 和 iPhone 上崩溃 具体来说 当我们
  • 无法将“SDWebImageActivityIndi​​cator”类型的值分配给“ST_SDWebImageIndicator”类型?

    I have multiple flavours targets in my Xcode project I am also using SDWebImage in my app Everything was working fine un
  • Swift - 选择值后隐藏 pickerView

    我发现了类似的问题 他们的答案很有帮助 但我坚持最后一件事 我试图在点击字段时显示 pickerView 然后选择数据时 我希望 pickerView 隐藏 我可以从 pickerView 获取数据来隐藏 但是 pickerView 后面仍
  • Transit MKDirectionsRequest 产生 null 错误 Error Domain=MKErrorDomain Code=5 "(null)"

    我正在尝试使用 MapKit Directions Request 来获取两个坐标之间的交通方向 当我切换到其他 非 Transit 类型时 下面的代码可以工作 但是当我切换到 Transit 时 它会抛出一个错误 该错误在 Apple 文
  • 将 Xcode 的测试类助理编辑器与 Swift 类结合使用

    在 Xcode 中工作时 在助理编辑器中提取单元测试用例通常会很好 目前 我一直在手动选择测试文件 但我看到助理编辑器有一个选项Test Classes 我试图让这个选项自动提取我的测试文件 但我似乎无法让它工作 是否需要某种配置 它不适用
  • Swift 中具有透明背景的按钮边框

    我怎样才能做一个UIButton边框看起来像下图 入门 按钮一样具有透明背景吗 我应该如何使用情节提要来实现这一点 或者如何以编程方式实现这一点 设置backgroundColor to clearColor使按钮透明 例如尝试下面的代码
  • 无法转换“UINavigationController”类型的值

    我正在为我的应用程序实现一个搜索界面 因此基本上我会将搜索关键字从一个 ViewController 传递到另一个 ViewController 我已经多次进行过这种类型的参数传递 但这次似乎有些奇怪 目标 ViewController 嵌
  • Xcode 9 中的“addingPercentEncoding”是否损坏?

    在 Swift 3 x 和 Xcode 9 beta 2 中 使用addingPercentEncoding https developer apple com documentation swift string 1690785 addi
  • 退出导航控制器

    我试图离开初始视图控制器 并进入空白视图控制器 这很好 但是这会使空白视图控制器也成为导航控制器的一部分 这不是我想要的 我想脱离视图控制器 在视图控制器中 我尝试退出 它会自行弹出 当我尝试视图中的方法时 将出现目标视图控制器 self
  • ResponseSerializer“无法使用 Swift 3 调用非函数类型“NSHTTPURLResponse”的值?

    我一直在使用以下代码 没有出现任何问题 直到更新到 Xcode 8 beta 6 它类似于这个例子 https github com Alamofire Alamofire generic response object serializa

随机推荐

  • 连接错误 - SQLSTATE[HY000] [2002] 操作超时

    我在从 Windows 2008 R2 应用程序服务器连接到也在 Windows 2008 R2 上运行的 MySQL 服务器时遇到问题 Laravel 应用程序报告错误 exception PDOException with messag
  • gnuplot 中的 output.png 不如提示 shell 中的图好

    我经常绘制图表gnuplot提示 shell 如下所示 gunuplot gt plot sin x with linespoints pointtype 3 出现的数字很棒 今天 我将图表保存在 png文件 像这样 gnuplot gt
  • 我如何解决语义错误:“类没有名为..”的关联

    我正在关注 symblog symfony2 教程的第 5 部分 http tutorial symblog co uk docs customising the view more with twig html 标题下 主页 博客和评论
  • 是否可以在 gnuplot 中设置标签相对于键的位置?

    我的情节的本质是这样的 绝对的标签并不能真正发挥作用 我无法限制 y 中的范围 所以想知道是否有办法将我的标签文本包含在键内或将其相对于键放置 即下面 set term png enhanced size 1024 768 set titl
  • 运行时错误:范围自动筛选上的“1004”

    我想用 VBA 做什么 使用数组过滤表并删除行 我的数组有 4 个元素 在循环中更改为有 5 个不同的集合 正在过滤的列有 5 个元素 我只想得到 1 这是一个循环 它将创建 5 个报告 每个报告根据第 29 列过滤不同的元素 如果在调试模
  • 如何在调用处替换内联函数代码?

    我想知道内联函数调用是如何被内联代码替换的 我在一些书中读到编译器可能会将内联函数视为普通函数 任何人都可以解释内联函数是如何工作的 来自 C 常见问题解答 http www parashift com c faq lite inline
  • 属性编辑器未向 PropertyEditorManager 注册:自定义标记调用时出错

    调用我的时出现以下错误testtag jsp org apache jasper JasperException 无法将属性 att1 的字符串 转换为类 javax servlet jsp tagext JspFragment 属性编辑器
  • 缓动不适用于toggleClass() 或addClass()

    我有一个在页面上显示和隐藏实用工具栏的功能 我想将其动画化 这不是动画 类 标志 是空的 min 类只是更改背景图像以及实用工具栏的高度和绝对位置 我究竟做错了什么 document ready function var ubar ccUt
  • 为什么 Java BufferedReader() 不能正确读取阿拉伯文和中文字符?

    我正在尝试读取一个每行包含英文和阿拉伯字符的文件以及另一个每行包含英文和中文字符的文件 然而 阿拉伯文和中文的字符无法正确显示 它们只是显示为问号 知道我该如何解决这个问题吗 这是我用于阅读的代码 try String sCurrentLi
  • 比较 C# 中 DateTime 的二进制表示形式

    我有一个DateTime表示为长 8 个字节 来自DateTime ToBinary 我们称之为dateTimeBin 是否有一种最佳方法可以删除时间信息 我只关心日期 以便我可以将其与一天的开始进行比较 假设我们将此样本值作为一天的开始
  • 为什么 Rust 不允许在一种类型上复制和删除特征?

    From the book https doc rust lang org book 2018 edition ch04 01 what is ownership html stack only data copy Rust 不允许我们用C
  • 如何在 Mac OS X 10.9.5 上以编程方式读取低功耗蓝牙传输的数据?

    我正在尝试阅读蓝牙低功耗 http www bluetooth com Pages low energy tech info aspx使用 Ruby 以编程方式传输数据 低功耗蓝牙技术不支持标准规范 v4 0 中的串行端口配置文件 SPP
  • 如何使用 Typescript 从 mui 扩展调色板

    我正在尝试扩展 mui 提供的调色板 覆盖主色 次要颜色等效果很好 但如果我想在之后创建一组自定义颜色 我不知道如何使其工作 有很多没有打字稿的例子 但是当这个人进入游戏时 事情就变得更加棘手 假设我有这个 主题 tsx palette p
  • CSS 轮廓宽度不起作用

    我正在尝试将输入元素的轮廓宽度设置为焦点 无论我的设置如何 轮廓宽度都保持不变 就像它是无法更改的默认设置一样 这是来自 codepen 的示例 http codepen io FrenkyB pen mEaEyL editors 1100
  • 如何防止 Keras 在训练期间计算指标

    我正在使用 Tensorflow Keras 2 4 1 并且有一个 无监督的 自定义指标 它将我的几个模型输入作为参数 例如 model build model returns a tf keras Model object my met
  • Firestore 安全规则:在请求上使用 hasOnly 来检查是否仅更新特定字段

    我正在设置 Firestore 安全规则 但遇到一个问题 即我想使用 hasOnly 函数限制仅更新文档中的一个特定字段 问题是我使用模拟器不断得到 拒绝 结果 我肯定做了一些简单的错误 我试图防止有人可以更新文档中的其他字段update
  • 存储库和服务层之间的区别

    我查看了一些相关的问题 但仍然没有看到存储库和服务层之间有太大区别 所以给出的例子我想它应该看起来像这样 如果不是请告诉我为什么 public interface ProductRepository extends CrudReposito
  • 私有方法真的安全吗?

    在Java中private访问修饰符被认为是安全的 因为它在类外部不可见 那么外界也不知道这个方法 但我认为Java反射可以用来打破这个规则 考虑以下情况 public class ProtectedPrivacy private Stri
  • 从 Puppeteer 中的 page.evaluate 获取元素? [复制]

    这个问题在这里已经有答案了 我正在与Node js and 傀儡师第一次 找不到输出值的方法page evaluate到外部范围 我的算法 Login Open URL Get ul 循环每个li然后点击它 等待innetHTML要设置并添
  • Swift TTS,无音频输出

    我尝试在我的应用程序 TTS 中集成 但如果单击按钮 则没有音频输出 这是按钮代码 struct VocabDetailView View var body some View HStack Button Play readOut text