AVSpeechSynthesizer 输出为文件?

2024-01-04

AVSpeechSynthesizer 有一个相当简单的 API,不支持保存到内置音频文件。

我想知道是否有办法解决这个问题 - 也许在无声播放时记录输出,以便稍后播放?或者更有效的东西。


这在 iOS 13 中终于成为可能AVSpeechSynthesizer现在有写(_:toBufferCallback:) https://developer.apple.com/documentation/avfoundation/avspeechsynthesizer/3141659-write:

let synthesizer = AVSpeechSynthesizer()
let utterance = AVSpeechUtterance(string: "test 123")
utterance.voice = AVSpeechSynthesisVoice(language: "en")
var output: AVAudioFile?

synthesizer.write(utterance) { (buffer: AVAudioBuffer) in
   guard let pcmBuffer = buffer as? AVAudioPCMBuffer else {
      fatalError("unknown buffer type: \(buffer)")
   }
   if pcmBuffer.frameLength == 0 {
     // done
   } else {
     // append buffer to file
     if output == nil { 
       output = AVAudioFile(
         forWriting: URL(fileURLWithPath: "test.caf"), 
         settings: pcmBuffer.format.settings, 
         commonFormat: .pcmFormatInt16, 
         interleaved: false) 
     }
     output?.write(from: pcmBuffer)
   } 
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

AVSpeechSynthesizer 输出为文件? 的相关文章

  • Firebase 连接管理器应仅返回一个结果

    我正在关注位于以下位置的文档 https www firebase com docs ios guide offline capability html section connection state https www firebase
  • 如何等待 webViewDidFinishLoad 完成

    我有一个初始化 webView 的布尔条件 并在 webViewDidFinishLoad 中加载另一个委托 以便在完成完成后触发 但是 由于布尔值在条件 webViewDidFinishLoad 之前返回 因此页面永远不会完全加载 如何确
  • 如何在 RestKit 中为同一类提供两条发布路线

    由于我无法弄清楚如何为同一个类设置两个不同的 POST 资源路径 因此我尝试手动创建 RKObjectLoader 请求 但它似乎不断发送 GET 请求而不是 POST 即使我已将方法设置为邮政 这是我的代码 User user User
  • 使用 UIImagePickerController 的应用程序在拍照后选择“使用照片”时冻结

    我现在正在开发一个简单的照片和视频捕获应用程序 该应用程序成功地允许用户按下按钮即可拍摄照片或视频 但是 一旦您完成拍摄照片或视频 它就会提供 2 个选项 重新拍摄 和 使用照片 或 使用视频 具体取决于您使用的选项 如果用户点击 重新拍摄
  • 使用隐藏的 SFSafariViewController 获取 Safari cookie

    我正在阅读以下关于从移动网页到本机 iOS 9 应用程序对用户进行身份验证的文章 并且想知道如何最好地实现类似于下面讨论的隐藏控制器的隐藏 safari 视图控制器 https library launchkit io how ios 9
  • iOS:从非图像数据生成图像(Godus,如风景)

    所以看到图像后Godus http www kickstarter com projects 22cans project godus我想知道如何生成简单的 非交互式的 2D 图像 with 不同高度或层数的颜色不同就像下面的图片一样 我只
  • 自动布局和ios5

    我正在使用故事板 我已经使用了自动布局 但它不适用于 ios5 并且会崩溃 所以我想删除它 但是 如何取消选中自动布局 但如果我取消选中自动布局 我如何为 iPhone 4 和 5 设置屏幕 Regards 您可以在 IB 中禁用自动布局
  • UIBezierPath 的起始和结束角度?

    我在 iOS 中使用如下代码编写了半圆UI贝塞尔路径 and CAShape层 clockWiseLayer CAShapeLayer alloc init CGFloat startAngle M PI 2 CGFloat endAngl
  • iOS 内存警告

    我正在尝试使用从 Parse 数据库下载的图像填充集合视图 但我收到内存警告 然后偶尔崩溃 有谁知道其他应用程序如何设法呈现这么多图像而不崩溃 有人可以告诉我如何优化我已有的东西吗 这是所有相关代码 https gist github co
  • iOS 中的等宽字体是什么?

    我想要在我的 iOS 应用程序中为 UILabel 使用等宽字体 不幸的是 我找不到一个 甚至 美国打字机 实际上也不是等宽的 XCode 中可用的等宽字体是什么 iOS 等宽字体 Courier Courier Bold Courier
  • 为了支持 iPhone 5 的更长屏幕,需要检查什么? [复制]

    这个问题在这里已经有答案了 可能的重复 iPhone 5屏幕尺寸如何处理 https stackoverflow com questions 12396545 how to deal with iphone 5 screen size iP
  • 如何将十六进制数组转换为 UIImage?

    有几个与使用 P25mi 动态打印图像相关的未解答问题 没有一个得到公认的答案 下面有几个链接 如何将图像转换为位图代码以便在 iPhone 中进行蓝牙打印 https stackoverflow com questions 1383828
  • swift 中的负数模

    负数模如何在 swift 中工作 当我执行 1 3 时 它给出 1 但余数是 2 其中有什么问题 雨燕余数运算符 计算余数 整数除法 a b a a b b where 是截断整数除法 在你的情况下 1 3 1 1 3 3 1 0 3 1
  • 在模拟器中运行应用程序时删除本地通知的 iOS 权限警报

    我正在尝试编写验收测试KIF https github com kif framework KIF在一个很早就要求本地通知权限的应用程序上 不幸的是 由于 iOS 模拟器安全原因无法使用 KIF 自动接受 iOS 权限警报 https gi
  • Monotouch 和本机 iOS 代码

    是否可以将使用 monotouch 编译的 C 库与单个应用程序中的 Objective C 前端链接起来 或者该应用程序必须是全部还是全无 这是可能的 但您不会从 MonoTouch 工具获得任何帮助 并且您无法摆脱这样一个事实 您仍然需
  • Objective-c中的贝塞尔曲线算法

    比我聪明的人可以看一下这个吗 我正在尝试实现我发现的贝塞尔曲线算法here http webtweakers com swag GRAPHICS 0074 PAS html在 Objective c 中 输出是错误的 我想我正确地转换了代码
  • 如何在ios中以编程方式添加水平间距和垂直间距?

    我在 ios 8 中创建了一个应用程序 因为我有 4 个可垂直使用的标签 它应该在某些条件下更改位置 所以我已禁用自动布局并以编程方式设置约束 现在的问题是 我可以设置水平和垂直位置 宽度和高度的约束 但我找不到任何方法来添加标签之间的水平
  • Swift 中 UIImages 的淡入淡出动画

    我有一组图像 我希望它们在登录屏幕的背景中淡出 我无法在 swift 中找到任何可以做到这一点的东西 有什么办法我可以做到吗 这是我当前的代码 override func viewDidLoad super viewDidLoad star
  • 如何使用 afnetworking 在后台上传任务

    我正在尝试使用 AFNetworking 上传大文件 并在应用程序处于后台时继续上传 我可以很好地上传文件 但是当我尝试使用后台配置时 应用程序崩溃并显示以下堆栈跟踪 异常 EXC BAD ACCESS 代码 1 地址 0x8000001f
  • 如何在内存中存储分子?

    我想将分子存储在内存中 这些可以是简单的分子 Methane CH4 C H bond length 108 7 pm H H angle 109 degrees But also more complex molecules like p

随机推荐

  • 如何在apollo链接中返回错误响应?

    我在模式拼接中使用阿波罗链接作为访问控制层 我不太确定如果用户没有访问特定操作的权限 如何使链接返回错误响应 我知道这样的包graphql shield and graphql middleware但我很好奇是否可以使用 apollo li
  • Git:如何在预提交挂钩中重新暂存暂存文件

    我正在写一个 git 预提交钩子 该脚本可以重新格式化一些代码 因此它可以修改暂存文件 如何重新暂存所有已暂存的文件 如果没有pre commit hook上下文 你可以获取暂存文件的列表 https stackoverflow com q
  • exit().remove() 在节点离开视图时不会删除它

    我正在使用 d3js 相对于当前时间从右向左移动圆点 我有几个问题 1 exit remove 不起作用 节点一旦离开视图就不会被删除 2 圆圈的过渡有点跳跃 var circles g selectAll path circles dat
  • python/django 中 setattr 和对象操作之间的区别

    我有以下模型 class Ticket models Model title models CharField merged to models ForeignKey self related name merger ticket null
  • 如何使用 Google Tink 创建对称加密密钥?

    我有一个密钥 例如 thisist0psecret 我想将其用作对称加密 解密密钥谷歌 Tink 库 https github com google tink 我很困惑我无法做到这一点简单的事情 我可以生成new keys 使用各种模板AE
  • 将静态 JSON 添加到 Android Studio 项目

    我想将静态 JSON 添加到 Android Studio 项目中 然后可以在整个项目中引用它 有谁知道这样做的最佳方法 更详细地说 我想做的是 1 从 Google Places API 中提取数据 2 查找与静态 JSON 对象中的地点
  • rsync git 大存储库

    我正在尝试将 git 存储库克隆到我的本地计算机上 但它说 malloc failed 因为存储库太大了 有谁知道我可以用来复制目录的确切 rsync 命令 或者我还能做些什么来克隆一个大存储库 我尝试了 rsync 但出现以下错误 Inv
  • Google 云构建不替换 firebase 令牌的环境变量

    我有一个云构建触发器 尝试将我的应用程序推送到 firebase 托管 为此 我有一个加密的 env enc 文件 其中包含部署所需的 firebase 令牌 在构建过程中 我解密了该文件并尝试部署 但遇到了未经授权的消息 我尝试在部署脚本
  • Composer 自动加载文件夹中的多个文件

    我在最新的项目中使用作曲家并像这样映射我的函数 require require dev autoload psr 4 files src function test function php 我想文件夹函数中会有很多文件 例如 real f
  • UNIX系统中如何连接两个文件的列

    我有2个文件 每个文件有一列多行 每个文件的行是相同的 如何将两个文件的列连接在一起 以便最终结果文件具有来自 file1 和 file2 的两列 例如 文件1是 1 2 3 文件2是 a b c 预期输出是 1 a 2 b 3 c 只需使
  • 如何拖动旋转的 DragShadow?

    我用 ObjectAnimator 旋转了 TextView 如下所示 ObjectAnimator rotate ObjectAnimator ofFloat aRotatedTextView rotation 0f someAngle
  • 如何在Webfaction上部署Flask应用程序?

    有人知道如何在 Webfaction 上部署一个简单的 Flask 应用程序吗 我知道 Webfaction 支持 mod wsgi 并且我阅读了 Flask 网站上的指南 但我仍然无法使我的应用程序运行 有人有工作配置吗 UPDATE回答
  • SourceForge 的下载页面如何运作?

    在回答其他问题时 有人指出 SourceForge 的下载页面是通过添加隐藏的 来工作的 现在似乎不再是这样了 当前版本的下载页面是如何实现的 我想构建类似的东西 因为我认为 SF 的解决方案非常优雅 好吧 更准确地说 确实 最初的 问题
  • Jasmine js:添加测试执行的源方法

    我有一个简单的 hello world 项目 我想测试著名的 h lloWorld 函数 该项目的结构如下 package json spec helloWorldSpec js support jasmine json src hello
  • 确定 sklearn 中 SVM 分类器最有贡献的特征

    我有一个数据集 我想根据该数据训练我的模型 训练后 我需要了解对 SVM 分类器的分类有主要贡献的特征 森林算法有一种叫做特征重要性的东西 有类似的东西吗 是的 有属性coef 对于 SVM 分类器 但它仅适用于 SVM线性核 对于其他内核
  • 如何在后台线程上执行 WPF 过滤器?

    我在 WPF 中使用过滤器并且遵循建议的模式here http www japf fr 2009 02 very simple mvvm demo application 总而言之 这涉及在 ViewModel 上公开一个文本属性 该属性表
  • 使用 OsmBonusPack 解析和查看 geojson

    我想解析 geojson 并查看 osmbonuspack 和 osmdroid mapview 上的数据 我用了这个教程 https code google com p osmbonuspack wiki Tutorial 4 https
  • 使用 jQuery 验证 RECAPTCHA

    我正在尝试使用 jQuery 验证 Recaptcha 但我不断收到错误消息 访问受限 URI 被拒绝 代码 1012 这是我到目前为止所尝试过的 var challengeVal recaptcha challenge field att
  • 如何在 GitHub Actions 中区分不同事件类型的条件

    我们有一个工作流程文件 name Deploy Test Env on pull request types edited opened synchronize branches develop paths js jobs deploy y
  • AVSpeechSynthesizer 输出为文件?

    AVSpeechSynthesizer 有一个相当简单的 API 不支持保存到内置音频文件 我想知道是否有办法解决这个问题 也许在无声播放时记录输出 以便稍后播放 或者更有效的东西 这在 iOS 13 中终于成为可能AVSpeechSynt