PySide6.QtTextToSpeech.QTextToSpeech

class QTextToSpeech

QTextToSpeech 类提供了对文本到语音引擎的便捷访问。更多

PySide6.QtTextToSpeech.QTextToSpeech 的继承图

概要

属性

方法

插槽

信号

静态函数

注意

本文档可能包含从C++自动翻译到Python的代码片段。我们始终欢迎对代码片段翻译的贡献。如果您发现翻译问题,您也可以通过在我们的https:/bugreports.qt.io/projects/PYSIDE上创建工单来告知我们。

详细描述

警告

本节包含从C++自动翻译到Python的代码片段,可能包含错误。

使用say()开始将文本朗读到默认音频设备,并使用stop()pause()resume()来控制文本的朗读。

ui.speakButton.clicked.connect(m_speech, [this]{
    m_speech.say(ui.plainTextEdit.toPlainText())
})
ui.stopButton.clicked.connect(m_speech, [this]{
    m_speech.stop()
})
ui.pauseButton.clicked.connect(m_speech, [this]{
    m_speech.pause()
})
ui.resumeButton.clicked.connect(m_speech.resume)

要将文本合成为PCM数据以进行进一步处理,请使用synthesize()

使用findVoices()获取匹配的语音列表,或使用availableVoices()获取支持当前语言环境的语音列表。更改locale属性,使用availableLocales()中的一个,该语言环境与输入文本的语言和所需语音输出的口音相匹配。这将改变大多数平台上可用的语音列表。然后在调用setVoice()时使用其中一个可用的语音。

并非每个引擎都支持所有功能。使用engineCapabilities()函数来测试哪些功能可用,并相应地调整类的使用。

注意

引擎支持的区域设置和语音通常取决于操作系统的配置。例如,在macOS上,最终用户可以通过系统偏好设置中的辅助功能面板安装语音。

class State

此枚举描述了文本到语音引擎的当前状态。

常量

描述

QTextToSpeech.Ready

合成器已准备好开始新的文本。这也是文本完成后的状态。

QTextToSpeech.Speaking

正在朗读文本。

QTextToSpeech.Synthesizing

文本正在被合成为PCM数据。合成后的数据块将通过synthesized()信号发出。

QTextToSpeech.Paused

合成已暂停,可以使用resume()恢复。

QTextToSpeech.Error

发生了一个错误。详细信息由errorReason()提供。

class ErrorReason

此枚举描述了QTextToSpeech引擎当前的错误(如果有的话)。

常量

描述

QTextToSpeech.ErrorReason.NoError

没有发生错误。

QTextToSpeech.ErrorReason.Initialization

后端无法初始化,例如由于缺少驱动程序或操作系统要求。

QTextToSpeech.ErrorReason.Configuration

给定的后端配置不一致,例如由于错误的语音名称或参数。

QTextToSpeech.ErrorReason.Input

给定的文本无法合成,例如由于大小或字符无效。

QTextToSpeech.ErrorReason.Playback

音频播放失败,例如由于缺少音频设备、格式错误或音频流中断。

使用 errorReason() 获取当前错误,使用 errorString() 获取相关的错误信息。

另请参阅

errorOccurred()

class BoundaryHint

描述何时应停止和暂停语音。

常量

描述

QTextToSpeech.BoundaryHint.Default

使用引擎特定的默认行为。

QTextToSpeech.BoundaryHint.Immediate

引擎应立即停止播放。

QTextToSpeech.BoundaryHint.Word

在当前单词结束时停止语音。

QTextToSpeech.BoundaryHint.Sentence

在当前句子结束时停止语音。

QTextToSpeech.BoundaryHint.Utterance

在当前话语结束时停止语音。话语是在调用say()enqueue()时使用的文本块。

注意

这些是对引擎的提示。当前引擎可能不支持所有选项。

class Capability

此枚举描述了文本到语音引擎的功能。

常量

描述

QTextToSpeech.Capability.None

(继承自 enum.Flag) 引擎未实现任何功能。

QTextToSpeech.Capability.Speak

引擎可以从文本播放音频输出。

QTextToSpeech.Capability.PauseResume

引擎可以暂停然后恢复音频输出。

QTextToSpeech.Capability.WordByWordProgress

引擎为每个被说出的单词发出sayingWord()信号。

QTextToSpeech.Capability.Synthesize

引擎可以从文本合成 PCM音频数据。

另请参阅

engineCapabilities()

在版本6.6中添加。

class SynthesizeOverload

注意

当使用from __feature__ import true_property时,属性可以直接使用,否则通过访问器函数使用。

property engineᅟ: str

此属性保存用于将文本合成为语音的引擎。

更改引擎会停止任何正在进行的语音。

在大多数平台上,更改引擎将更新available localesavailable voices的列表。

Access functions:
property engineCapabilitiesᅟ: Combination of QDBusConnection.ConnectionCapability

此属性保存当前引擎实现的功能。

另请参阅

engine

Access functions:
property localeᅟ: QLocale

此属性保存当前使用的区域设置。

默认情况下,使用系统区域设置。

在某些平台上,更改区域设置将更新available voices列表,如果当前语音在新的区域设置中不可用,将设置一个新的语音。

另请参阅

voice findVoices()

Access functions:
property pitchᅟ: float

此属性保存语音音高,范围从-1.0到1.0。

默认值0.0是正常的语音音高。

Access functions:
property rateᅟ: float

此属性保存当前的语音速率,范围从-1.0到1.0。

默认值0.0表示正常的语音流。

Access functions:
property stateᅟ: QTextToSpeech.State

警告

本节包含从C++自动翻译到Python的代码片段,可能包含错误。

此属性保存语音合成器的当前状态。

def stateChanged(self, state):


    if state == QTextToSpeech.Speaking:
        ui.statusbar.showMessage(tr("Speech started..."))
        break
    elif state == QTextToSpeech.Ready:
        ui.statusbar.showMessage(tr("Speech stopped..."), 2000)
        break
    elif state == QTextToSpeech.Paused:
        ui.statusbar.showMessage(tr("Speech paused..."))
        break
    else:
        ui.statusbar.showMessage(tr("Speech error!"))
        break

    ui.pauseButton.setEnabled(state == QTextToSpeech.Speaking)
    ui.resumeButton.setEnabled(state == QTextToSpeech.Paused)
    ui.stopButton.setEnabled(state == QTextToSpeech.Speaking or state == QTextToSpeech.Paused)

使用 say() 开始使用当前的 voicelocale 合成文本。

Access functions:
property voiceᅟ: QVoice

此属性保存将用于语音的语音。

声音需要是引擎可用的voices available之一。

在某些平台上,设置语音会改变其他语音属性,例如localepitch等。这些更改会触发信号的发射。

另请参阅

findVoices()

Access functions:
property volumeᅟ: float

此属性保存当前音量,范围从0.0到1.0。

默认值是平台的默认音量。

Access functions:
__init__([parent=None])
Parameters:

父对象QObject

从使用默认引擎插件的插件中加载一个文本到语音引擎,并构造一个QTextToSpeech对象作为parent的子对象。

默认引擎是平台特定的。

如果引擎初始化正确,那么引擎的state将变为Ready;请注意,这可能是异步发生的。如果插件加载失败,那么state将被设置为Error

另请参阅

availableEngines()

__init__(engine[, parent=None])
Parameters:
  • engine – str

  • parentQObject

从插件加载一个与参数engine匹配的文本到语音引擎,并构造一个QTextToSpeech对象作为parent的子对象。

如果engine为空,则使用默认的引擎插件。默认引擎是平台特定的。

如果引擎初始化正确,引擎的state将被设置为Ready。如果插件加载失败,或者引擎初始化失败,引擎的state将被设置为Error

另请参阅

availableEngines()

__init__(engine, params[, parent=None])
Parameters:
  • engine – str

  • params – 字典,键类型为 .QString,值类型为 QVariant。

  • parentQObject

从插件加载一个与参数engine匹配的文本到语音引擎,并构造一个QTextToSpeech对象作为parent的子对象,将params传递给引擎。

如果engine为空,则使用默认的引擎插件。默认引擎是平台特定的。params中哪些键/值对受支持取决于引擎。详情请参阅引擎文档。不支持的条目将被忽略。

如果引擎初始化正确,引擎的state将被设置为Ready。如果插件加载失败,或者引擎初始化失败,引擎的state将被设置为Error

另请参阅

availableEngines()

aboutToSynthesize(id)
Parameters:

id – int

此信号在引擎开始合成语音音频之前发出,用于id。这个id是通过调用enqueue()返回的值。应用程序可以使用此信号对voice属性进行最后的更改,或跟踪通过enqueue()排队的文本的处理过程。

另请参阅

enqueue() synthesize() voice

allVoices(locale)
Parameters:

localeQLocale

Return type:

QVoice的列表

static availableEngines()
Return type:

字符串列表

获取支持的文本到语音引擎插件列表。

另请参阅

engine

availableLocales()
Return type:

QLocale的列表

返回活动engine支持的区域设置列表。

另请参阅

availableVoices() findVoices()

availableVoices()
Return type:

QVoice的列表

返回当前locale可用的语音列表。

注意

如果没有设置区域设置,则使用系统区域设置。

另请参阅

availableLocales() findVoices()

engine()
Return type:

字符串

另请参阅

setEngine()

属性 engineᅟ 的获取器。

engineCapabilities()
Return type:

Capability的组合

engineChanged(engine)
Parameters:

engine – str

属性 engineᅟ 的通知信号。

enqueue(text)
Parameters:

文本 – str

Return type:

整数

utterance添加到要朗读的文本队列中,并开始朗读。返回文本在队列中的索引,如果出错则返回-1。

如果引擎的state当前是Readyutterance将立即被说出。否则,引擎将在完成当前文本的说出后开始说出utterance

每次引擎处理队列中的下一个文本条目时,都会发出aboutToSynthesize()信号。这允许应用程序跟踪进度,并在最后一刻更改语音属性。

调用 stop() 会清除队列。要在文本结束时暂停引擎,请使用 Utterance 边界提示。

另请参阅

say() stop() aboutToSynthesize() synthesize()

errorOccurred(error, errorString)
Parameters:

此信号在发生错误并且state已设置为Error后发出。reason参数指定错误类型,errorString提供人类可读的错误描述。

ErrorReason 不是一个已注册的元类型,因此对于排队的连接,您需要使用 Q_DECLARE_METATYPE() 和 qRegisterMetaType() 进行注册。

另请参阅

errorReason() errorString() 创建 自定义 Qt 类型

errorReason()
Return type:

ErrorReason

返回引擎报告错误的原因。

另请参阅

state errorOccurred()

errorString()
Return type:

字符串

返回当前引擎错误信息。

另请参阅

errorOccurred()

locale()
Return type:

QLocale

另请参阅

setLocale()

属性 localeᅟ 的获取器。

localeChanged(locale)
Parameters:

localeQLocale

属性 localeᅟ 的通知信号。

pause([boundaryHint=QTextToSpeech.BoundaryHint.Default])
Parameters:

boundaryHintBoundaryHint

在当前语音的boundaryHint处暂停。

是否遵循boundaryHint取决于engine

另请参阅

resume() 暂停恢复

pitch()
Return type:

浮点数

另请参阅

setPitch()

属性 pitchᅟ 的获取器。

pitchChanged(pitch)
Parameters:

pitch – 浮点数

属性 pitchᅟ 的通知信号。

rate()
Return type:

浮点数

另请参阅

setRate()

属性 rateᅟ 的获取器。

rateChanged(rate)
Parameters:

rate – 浮点数

属性 rateᅟ 的通知信号。

resume()

在调用pause()后继续说话。

注意

在Android上,恢复暂停的语音将从开头重新开始。这是底层文本到语音引擎的一个限制。

另请参阅

pause()

say(text)
Parameters:

文本 – str

警告

本节包含从C++自动翻译到Python的代码片段,可能包含错误。

开始朗读 text

此函数开始异步合成语音,并将文本读取到默认的音频输出设备。

ui.speakButton.clicked.connect(m_speech, [this]{
    m_speech.say(ui.plainTextEdit.toPlainText())
})

注意

在开始阅读最近合成的文本之前,所有进行中的阅读都将停止。

当前状态可通过state属性获取,一旦阅读开始,状态将设置为Speaking。当阅读完成时,state将被设置为Ready

另请参阅

enqueue() stop() pause() resume() synthesize()

sayingWord(word, id, start, length)
Parameters:
  • word – str

  • id – int

  • start – int

  • length – int

当话语id中由startlength指示的文本片段word被播放到音频设备时,会发出此信号。

注意

此信号要求引擎具有WordByWordProgress功能。

另请参阅

能力 say()

setEngine(engine[, params=QVariantMap()])
Parameters:
  • engine – str

  • params – 字典,键类型为 .QString,值类型为 QVariant。

Return type:

布尔

设置此QTextToSpeech对象使用的引擎为engine,并将params传递给引擎构造函数。

返回engine是否成功设置。

params 中支持哪些键/值对取决于引擎。详情请参阅 引擎文档。不支持的条目将被忽略。

另请参阅

engine()

setLocale(locale)
Parameters:

localeQLocale

另请参阅

locale()

属性 localeᅟ 的设置器。

setPitch(pitch)
Parameters:

pitch – 浮点数

另请参阅

pitch()

属性 pitchᅟ 的设置器。

setRate(rate)
Parameters:

rate – 浮点数

另请参阅

rate()

属性 rateᅟ 的设置器。

setVoice(voice)
Parameters:

语音QVoice

另请参阅

voice()

属性 voiceᅟ 的设置器。

setVolume(volume)
Parameters:

volume – 浮点数

另请参阅

volume()

属性 volumeᅟ 的设置器。

state()
Return type:

State

属性 stateᅟ 的获取器。

stateChanged(state)
Parameters:

状态State

属性 stateᅟ 的通知信号。

stop([boundaryHint=QTextToSpeech.BoundaryHint.Default])
Parameters:

boundaryHintBoundaryHint

boundaryHint处停止当前读取,并清除待处理文本的队列。

无法恢复读取。boundaryHint是否被遵守取决于引擎。

另请参阅

say() enqueue() pause()

voice()
Return type:

QVoice

另请参阅

setVoice()

属性 voiceᅟ 的获取器。

voiceChanged(voice)
Parameters:

语音QVoice

属性 voiceᅟ 的通知信号。

volume()
Return type:

浮点数

另请参阅

setVolume()

属性 volumeᅟ 的获取器。

volumeChanged(volume)
Parameters:

volume – 浮点数

属性 volumeᅟ 的通知信号。