当前位置: 首页 > 知识库问答 >
问题:

iOS文本到语音API

有耀
2023-03-14

我似乎在这上面找不到任何东西。iOS7中是否有任何Siri类或API允许您进行文本到语音转换?我所要做的就是如下所示:

[siriInstance say:@"This is a test"];

然后让Siri从我的应用程序中说出来。

看来我们应该有能力做到这一点,不是吗?似乎是一件微不足道的事情。

共有3个答案

常飞翼
2023-03-14

我从未专门与Siri一起做过任何工作。我可能错了,但我认为使用私有API与Siri集成是非常困难的。

我想看一下IOS的openears框架。我做了一些基本的工作与此在过去和它做离线语音识别和合成语音/语音文字转换

希望这对你有帮助。

姬乐池
2023-03-14

这是阿里·阿巴斯在操场上使用的答案:

import UIKit
import AVKit
import AVFoundation
import PlaygroundSupport

var str = "Hello, playground"

let synthesizer = AVSpeechSynthesizer()
let utterance = AVSpeechUtterance(string: str)
utterance.rate = 0.4
utterance.voice = AVSpeechSynthesisVoice(language: "en-US")

//for playground only
let playerViewController = AVPlayerViewController()
PlaygroundPage.current.liveView = playerViewController.view
//

synthesizer.speak(utterance)    
陶星辰
2023-03-14

自从iOS 7以来,您有了一个新的TTS Api。

在目标C中

AVSpeechSynthesizer *synthesizer = [[AVSpeechSynthesizer alloc]init];
AVSpeechUtterance *utterance = [AVSpeechUtterance speechUtteranceWithString:@"Some text"];
[utterance setRate:0.2f];
[synthesizer speakUtterance:utterance];

在斯威夫特

let synthesizer = AVSpeechSynthesizer()
let utterance = AVSpeechUtterance(string: "Some text")
utterance.rate = 0.2

您也可以这样更改声音:

utterance.voice = AVSpeechSynthesisVoice(language: "fr-FR")

然后斯佩克

>

在Swift 3synthesizer.speak(话语)

别忘了导入AVFoundation

有用的方法

您可以使用以下两种方法停止或暂停所有语音:

- (BOOL)pauseSpeakingAtBoundary:(AVSpeechBoundary)boundary;
- (BOOL)stopSpeakingAtBoundary:(AVSpeechBoundary)boundary;

AVSpeechBoundary指示语音应该立即暂停或停止(avspeechboundaryinterment),还是应该在当前正在讲话的单词之后暂停或停止(AVSpeechBoundaryWord)。

检查AVSpeechSynthesizer文档

 类似资料:
  • 我是快速和iOS应用程序开发的新手。我正在使用AVSpeechSynthesiser创建一个文本到语音应用程序。我想设置一个字符串说在英语,但我希望它把那个特定的字符串翻译成语音,但在不同的语言,如阿拉伯语。我是否能够使用AVSpeechSynthesizer做到这一点,或者我需要使用翻译API来做到这一点。 谢谢你

  • 我正在iOS应用程序中使用进行文本到语音转换。 语音合成器在所有设备上都运行良好,除了运行iOS9.0.2的iPad 2(型号A1395)。我使用Xcode 7.0.1。 问题是,在播放文本时说"希望"字母"p"要么真的很安静,要么不播放,用户只能听到"ho"。如果文本是“希望”,那么它播放正确。 有没有办法解决这个问题?

  • 使用Microsoft语音API转录中/大型音频文件(每个文件约6-10分钟)的最佳方式是什么?比如批量音频文件转录? 我使用了https://docs.microsoft.com/en-us/azure/cognitive-services/speech-service/speech-to-text-sample中提供的代码,用于连续转录语音,但它在某个时候停止转录。转录有任何限制吗?我只使用免

  • 带有en-us语音的AVSpeechsynthesizer是“A”的发音,是“大写字母A”,但只想要“A”,怎么能做到呢?

  • 有没有任何开源项目或库(在java或c),我可以用来将文本转换为用户语音。

  • AVSpeechSynthesisVoice。iOS SDK 7.0中引入了voiceWithLanguage。当时,每种语言/地区只有一种语音。 自iOSSDK 9.0以来,已经为每种语言/区域设置添加了更多的声音。所以苹果公司引入了一个新的应用编程接口语音识别器,这样你就可以得到你想要的特定语音。 我的问题是,如果我们仍然在iOS 9或更高版本中使用voiceWithLanguage会怎么样。