iOS 13 文本转语音(TTS - AVSpeechSynthesisVoice)更新后某些用户崩溃

2023-12-10

更新到 iOS 13 后,我们发现一小部分用户因 TTS 问题而出现奇怪的崩溃。有人知道为什么会发生这种情况吗?有人看到同样的崩溃吗?

let voices = AVSpeechSynthesisVoice.speechVoices()

for voice in voices {
  if voice.name == storedName {
     synthVoice = voice
     break
  }
}

...

let utterance  = AVSpeechUtterance(string: text)
utterance.voice = self.synthVoice
self.synthesizer.speak(utterance)

崩溃日志:

Error: Fatal Exception: std::logic_error: Unable to find resource `lang'[kLanguage].

8  libc++abi.dylib                0x19c929304 std::__terminate(void (*)()) + 16
9  libc++abi.dylib                0x19c928c58 __cxa_get_exception_ptr + 30
10 libc++abi.dylib                0x19c928c18 __cxxabiv1::exception_cleanup_func(_Unwind_Reason_Code, _Unwind_Exception*) + 122
11 SiriTTS                        0x19f877894 VoiceConfig::report_error(unsigned int, VoiceConfig::IfMissing, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) + 960
12 SiriTTS                        0x19f877d88 VoiceConfigImpl::get_json(unsigned int, VoiceConfig::IfMissing) const + 144
13 SiriTTS                        0x19f8e1210 std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > VoiceConfig::get_param<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >(unsigned int, VoiceConfig::IfMissing) const + 36
14 SiriTTS                        0x19f848490 NashvilleAdapterStream::NashvilleAdapterStream(nlohmann::basic_json<std::__1::map, std::__1::vector, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, bool, long long, unsigned long long, double, std::__1::allocator, nlohmann::adl_serializer> const&, std::__1::shared_ptr<SharedObjectPool>) + 308
15 SiriTTS                        0x19f8c0158 std::__1::__compressed_pair_elem<NashvilleAdapterStream, 1, false>::__compressed_pair_elem<nlohmann::basic_json<std::__1::map, std::__1::vector, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, bool, long long, unsigned long long, double, std::__1::allocator, nlohmann::adl_serializer> const&, std::__1::shared_ptr<SharedObjectPool>&, 0ul, 1ul>(std::__1::piecewise_construct_t, std::__1::tuple<nlohmann::basic_json<std::__1::map, std::__1::vector, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, bool, long long, unsigned long long, double, std::__1::allocator, nlohmann::adl_serializer> const&, std::__1::shared_ptr<SharedObjectPool>&>, std::__1::__tuple_indices<0ul, 1ul>) + 72
16 SiriTTS                        0x19f8c00d0 std::__1::__shared_ptr_emplace<NashvilleAdapterStream, std::__1::allocator<NashvilleAdapterStream> >::__shared_ptr_emplace<nlohmann::basic_json<std::__1::map, std::__1::vector, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, bool, long long, unsigned long long, double, std::__1::allocator, nlohmann::adl_serializer> const&, std::__1::shared_ptr<SharedObjectPool>&>(std::__1::allocator<NashvilleAdapterStream>, nlohmann::basic_json<std::__1::map, std::__1::vector, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, bool, long long, unsigned long long, double, std::__1::allocator, nlohmann::adl_serializer> const&&&, std::__1::shared_ptr<SharedObjectPool>&&&) + 40
17 SiriTTS                        0x19f8c0078 std::__1::shared_ptr<NashvilleAdapterStream> std::__1::shared_ptr<NashvilleAdapterStream>::make_shared<nlohmann::basic_json<std::__1::map, std::__1::vector, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, bool, long long, unsigned long long, double, std::__1::allocator, nlohmann::adl_serializer> const&, std::__1::shared_ptr<SharedObjectPool>&>(nlohmann::basic_json<std::__1::map, std::__1::vector, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, bool, long long, unsigned long long, double, std::__1::allocator, nlohmann::adl_serializer> const&&&, std::__1::shared_ptr<SharedObjectPool>&&&) + 52
18 SiriTTS                        0x19f8bffd8 std::__1::shared_ptr<Module> std::__1::__invoke_void_return_wrapper<std::__1::shared_ptr<Module> >::__call<void ModuleFactory::ModuleFactoryImpl::register_module<NashvilleAdapterStream>(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&)::'lambda'(nlohmann::basic_json<std::__1::map, std::__1::vector, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, bool, long long, unsigned long long, double, std::__1::allocator, nlohmann::adl_serializer> const&, std::__1::shared_ptr<SharedObjectPool>)&, nlohmann::basic_json<std::__1::map, std::__1::vector, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, bool, long long, unsigned long long, double, std::__1::allocator, nlohmann::adl_serializer> const&, std::__1::shared_ptr<SharedObjectPool> >(void ModuleFactory::ModuleFactoryImpl::register_module<NashvilleAdapterStream>(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&)::'lambda'(nlohmann::basic_json<std::__1::map, std::__1::vector, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, bool, long long, unsigned long long, double, std::__1::allocator, nlohmann::adl_serializer> const&, std::__1::shared_ptr<SharedObjectPool>)&&&, nlohmann::basic_json<std::__1::map, std::__1::vector, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, bool, long long, unsigned long long, double, std::__1::allocator, nlohmann::adl_serializer> const&&&, std::__1::shared_ptr<SharedObjectPool>&&) + 48
19 SiriTTS                        0x19f8bdeb4 ModuleFactory::ModuleFactoryImpl::create(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, nlohmann::basic_json<std::__1::map, std::__1::vector, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, bool, long long, unsigned long long, double, std::__1::allocator, nlohmann::adl_serializer> const&, std::__1::shared_ptr<SharedObjectPool>) + 164
20 SiriTTS                        0x19f8bdda4 ModuleFactory::create(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, nlohmann::basic_json<std::__1::map, std::__1::vector, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, bool, long long, unsigned long long, double, std::__1::allocator, nlohmann::adl_serializer> const&, std::__1::shared_ptr<SharedObjectPool>) + 60
21 SiriTTS                        0x19f8652e4 GryphonPipelineFactory::pipeline_from_config(std::__1::shared_ptr<SharedObjectPool>, nlohmann::basic_json<std::__1::map, std::__1::vector, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, bool, long long, unsigned long long, double, std::__1::allocator, nlohmann::adl_serializer> const&) + 472
22 SiriTTS                        0x19f866a84
GryphonPipelineFactory::nashvilleFE_backend_pipeline(std::__1::shared_ptr<SharedObjectPool>) + 1140 23 SiriTTS 0x19f85ffb0 FeatureExtractorTarget::init_with_object_pool(std::__1::shared_ptr, bool) + 924
24 SiriTTS                        0x19f86027c
FeatureExtractorTarget::init_with_install_path(char const*) + 272
25 TTSSpeechBundle                0x110480b50 (Missing)
26 TTSSpeechBundle                0x1104919c4 (Missing)
27 TTSSpeechBundle                0x110491a6c (Missing)
28 TTSSpeechBundle                0x11048ef44 (Missing)
29 TTSSpeechBundle                0x110490514 (Missing)
30 TTSSpeechBundle                0x11048eefc (Missing)
31 libsystem_pthread.dylib        0x19c8781f0 _pthread_start + 124
32 libsystem_pthread.dylib        0x19c87baf0 thread_start + 8

更新:问题似乎已在 iOS 13.2 中得到修复!耶!

看起来像是某些运行 IOS 13 的设备上的错误(在我的例子中是 iPhone SE 上的 13.1.2),

AVSpeechSynthesisVoice.speechVoices()

返回零。

另外,仅供参考,使用 AVSpeechSynthesisVoice 初始化程序设置语音,例如

AVSpeechSynthesisVoice(language: "fr-FR")

导致语音被设置为 nil 并使用英语作为后备/默认。

我已经就这两个问题提交了反馈...并且之前也提交了反馈this one which was在 13 beta 期间修复了,但现在我不太确定......因为这个新问题要么取代它,要么是不同部门的工程师出于交叉目的工作的结果。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

iOS 13 文本转语音(TTS - AVSpeechSynthesisVoice)更新后某些用户崩溃 的相关文章

随机推荐

  • Android:图像保存到位置

    我正在努力显示一组图像 然后如果用户愿意 可以将图像保存到 SD 卡上 我需要帮助将它们保存到外部存储 有人可以帮我解决这个问题吗 网格视图 public void onCreate Bundle savedInstanceState su
  • 对 3 维数组中每行的深度值求和

    我需要计算每个第一级元素的深层元素的总和 3 级数组示例 1 gt A gt AA gt 3 AB gt 5 B gt BA gt 2 2 gt C gt CA gt 4 D gt DA gt 1 DB gt 2 3 gt E gt EA
  • 在 WCF 中获取“在线”消息大小

    当我对 WCF 进行 SOAP 或 REST 调用时 我希望任一端 客户端和服务器 上的通道堆栈记录接收到的数据的在线大小 所以我猜我需要向两侧的通道堆栈添加自定义行为 也就是说 在服务器端 我将记录接收到的 IP 标头通告的大小 累计 直
  • AVX2 编译的程序仍然可以使用支持 AVX-512 的 CPU 的 32 个寄存器吗?

    假设以 AVX2 为目标的编译和 C 内在函数 如果我编写一个 nbody 算法 每个 body body 计算使用 17 个寄存器 第 17 个寄存器可以间接 寄存器重命名硬件 或直接 Visual Studio 编译器 gcc 编译器
  • 通过 PersonID 获取每个 Person 的 SUM

    我的表中有以下列 SCORE ID SCORE PERSON ID SCORE VOTE SCORE PERSON ID 是一个变量 我需要对每个 SCORE PERSON ID 的 SCORE VOTE 求和 你能建议一个好方法吗 你需要
  • 类型错误参数过多

    运行此代码时 出现错误 第 8 行参数过多 我不确定如何修复它 Defining a function to raise the first to the power of the second def power value x y re
  • Mongodb 错误:子进程失败,退出,错误号 51

    mongodb 由于某种原因关闭了 系统异常关闭 当我尝试重新启动 mongodb 使用 mongod f usr local mongodb etc mongo conf got about to fork child process w
  • Java 游戏 - ClassCastException

    我正在开发一个简单的 java 游戏 我的滚动条引发异常 滚动条应该是一个 gameslider 线程 Thread 3 中的异常 java lang ClassCastException sun java2d NullSurfaceDat
  • 自动布局 iOS 11 工具栏 UIBarButtonItem 与 customView

    最近 在我们的项目中 使用自定义视图的 UIBarButtonItem 出现了问题 在 iOS 11 之前 我们通过灵活的间距项进行布局 这不再起作用 所以什么也没有显示 因为我在这里没有找到真正为我解决问题的答案 所以我研究了它并提出了一
  • 在 cmake 中命名可执行文件

    我正在开发一个项目并决定将其移植到 CMake 在配置时 我使用了占位符构建名称 build 没有遇到任何问题 但当我把名字改成S W CMake 不让我构建 它产生了错误消息 cmake CMake Error at CMakeLists
  • 如何使用 System.Net.ConnectStream?

    我正在尝试了解我前辈的一些代码 他们使用 var 来声明所有内容 这很有帮助 我有一个使用声明如下 using var postStream request GetRequestStream postStream Write byteDat
  • 了解 ImageMagick 的转换并转换为 Ruby RMagick

    我未能将以下 PHP ImageMagick 代码转换为 Ruby RMagick 以使未来的用户更易于管理并了解它真正在做什么 output array returnValue 0 pngFiles myDir gt find png i
  • 启用 Docker 远程 API - raspberry pi / raspbian

    我的出发点是 如何使用docker Remote api创建容器 所以我编辑 etc init docker conf并更新 2 次出现的DOCKER OPTS变量为 DOCKER OPTS H tcp 0 0 0 0 4243 H uni
  • “无法设置 Range 类的 Width 属性”

    我正在致力于自动化构建成本估算表 基于假设 规则 政策等 一切顺利 直到我想自动设置列宽 这里有一个简短的蒸馏 Dim NumCE As Integer Dim TotalWidth As Integer NumCE 1 Sheets Co
  • jqGrid 删除一行

    我已经创建了网格 并想使用网格的默认行为来删除一行 这是我的网格设置代码 grid jqGrid navGrid grid pager add true addtitle Add Customer edit true edittitle E
  • isReleaseBuild() 是 Android Gradle DSL 的一部分吗?

    我按照类似于以下的说明进行操作 Android Library Gradle 发布 JAR 但是 我收到以下错误 在项目 myProject 上找不到参数 的 isReleaseBuild 方法 我在 Maven 集成中看到的示例都没有定义
  • Pandas 数据帧太大而无法附加到 dask 数据帧?

    我不确定我在这里缺少什么 我认为 dask 可以解决我的内存问题 我有 100 多个以 pickle 格式保存的 pandas 数据帧 我希望将它们全部放在同一个数据框中 但不断遇到内存问题 我已经增加了 jupyter 中的内存缓冲区 看
  • Firefox 浏览器无法识别 table.cells 吗?

    我有以下 JavaScript 代码 var myCellCollection document getElementById myTbl cells 这在 IE 中效果很好 它返回表格单元格的集合 但同一行在 Firefox 中返回 未定
  • 在不使用配置规范的情况下从 Clearcase 复制具有特定标签的元素

    如何从中复制元素或文件Clearcase具有特定的label 不应用该label in config specs 我不想更改视图的配置规范 但我需要访问所选文件之一的旧版本 并且我想直接从现有视图执行此操作 同样 不更改任何内容 我知道我想
  • iOS 13 文本转语音(TTS - AVSpeechSynthesisVoice)更新后某些用户崩溃

    更新到 iOS 13 后 我们发现一小部分用户因 TTS 问题而出现奇怪的崩溃 有人知道为什么会发生这种情况吗 有人看到同样的崩溃吗 let voices AVSpeechSynthesisVoice speechVoices for vo