PySide6.QtTextToSpeech.QTextToSpeech¶
- class QTextToSpeech¶
QTextToSpeech
类提供了对文本到语音引擎的便捷访问。更多…概要¶
属性¶
方法¶
def
__init__()
def
allVoices()
def
engine()
def
errorReason()
def
errorString()
def
locale()
def
pitch()
def
rate()
def
setEngine()
def
state()
def
voice()
def
volume()
插槽¶
def
enqueue()
def
pause()
def
resume()
def
say()
def
setLocale()
def
setPitch()
def
setRate()
def
setVoice()
def
setVolume()
def
stop()
信号¶
def
engineChanged()
def
errorOccurred()
def
localeChanged()
def
pitchChanged()
def
rateChanged()
def
sayingWord()
def
stateChanged()
def
voiceChanged()
def
volumeChanged()
静态函数¶
注意
本文档可能包含从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()
获取相关的错误信息。另请参阅
- class BoundaryHint¶
描述何时应停止和暂停语音。
注意
这些是对引擎的提示。当前引擎可能不支持所有选项。
- class Capability¶
此枚举描述了文本到语音引擎的功能。
常量
描述
QTextToSpeech.Capability.None
(继承自
enum.Flag
) 引擎未实现任何功能。QTextToSpeech.Capability.Speak
引擎可以从文本播放音频输出。
QTextToSpeech.Capability.PauseResume
引擎可以暂停然后恢复音频输出。
QTextToSpeech.Capability.WordByWordProgress
引擎为每个被说出的单词发出
sayingWord()
信号。QTextToSpeech.Capability.Synthesize
引擎可以从文本
合成
PCM音频数据。另请参阅
在版本6.6中添加。
- class SynthesizeOverload¶
注意
当使用
from __feature__ import true_property
时,属性可以直接使用,否则通过访问器函数使用。- property engineᅟ: str¶
此属性保存用于将文本合成为语音的引擎。
更改引擎会停止任何正在进行的语音。
在大多数平台上,更改引擎将更新
available locales
和available voices
的列表。- Access functions:
- property engineCapabilitiesᅟ: Combination of QDBusConnection.ConnectionCapability¶
此属性保存当前引擎实现的功能。
另请参阅
- Access functions:
此属性保存当前使用的区域设置。
默认情况下,使用系统区域设置。
在某些平台上,更改区域设置将更新
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()
开始使用当前的voice
和locale
合成文本。- Access functions:
此属性保存将用于语音的语音。
声音需要是引擎可用的
voices available
之一。在某些平台上,设置语音会改变其他语音属性,例如
locale
、pitch
等。这些更改会触发信号的发射。另请参阅
findVoices()
- Access functions:
- property volumeᅟ: float¶
此属性保存当前音量,范围从0.0到1.0。
默认值是平台的默认音量。
- Access functions:
从使用默认引擎插件的插件中加载一个文本到语音引擎,并构造一个
QTextToSpeech
对象作为parent
的子对象。默认引擎是平台特定的。
如果引擎初始化正确,那么引擎的
state
将变为Ready
;请注意,这可能是异步发生的。如果插件加载失败,那么state
将被设置为Error
。另请参阅
- __init__(engine[, parent=None])
- Parameters:
engine – str
parent –
QObject
从插件加载一个与参数
engine
匹配的文本到语音引擎,并构造一个QTextToSpeech
对象作为parent
的子对象。如果
engine
为空,则使用默认的引擎插件。默认引擎是平台特定的。如果引擎初始化正确,引擎的
state
将被设置为Ready
。如果插件加载失败,或者引擎初始化失败,引擎的state
将被设置为Error
。另请参阅
- __init__(engine, params[, parent=None])
- Parameters:
engine – str
params – 字典,键类型为 .QString,值类型为 QVariant。
parent –
QObject
从插件加载一个与参数
engine
匹配的文本到语音引擎,并构造一个QTextToSpeech
对象作为parent
的子对象,将params
传递给引擎。如果
engine
为空,则使用默认的引擎插件。默认引擎是平台特定的。params
中哪些键/值对受支持取决于引擎。详情请参阅引擎文档。不支持的条目将被忽略。如果引擎初始化正确,引擎的
state
将被设置为Ready
。如果插件加载失败,或者引擎初始化失败,引擎的state
将被设置为Error
。另请参阅
- aboutToSynthesize(id)¶
- Parameters:
id – int
此信号在引擎开始合成语音音频之前发出,用于
id
。这个id
是通过调用enqueue()
返回的值。应用程序可以使用此信号对voice
属性进行最后的更改,或跟踪通过enqueue()
排队的文本的处理过程。- static availableEngines()¶
- Return type:
字符串列表
获取支持的文本到语音引擎插件列表。
另请参阅
返回活动
engine
支持的区域设置列表。另请参阅
availableVoices()
findVoices()
返回当前
locale
可用的语音列表。- engine()¶
- Return type:
字符串
另请参阅
属性
engineᅟ
的获取器。- engineCapabilities()¶
- Return type:
Capability
的组合
- engineChanged(engine)¶
- Parameters:
engine – str
属性
engineᅟ
的通知信号。- enqueue(text)¶
- Parameters:
文本 – str
- Return type:
整数
将
utterance
添加到要朗读的文本队列中,并开始朗读。返回文本在队列中的索引,如果出错则返回-1。如果引擎的
state
当前是Ready
,utterance
将立即被说出。否则,引擎将在完成当前文本的说出后开始说出utterance
。每次引擎处理队列中的下一个文本条目时,都会发出
aboutToSynthesize()
信号。这允许应用程序跟踪进度,并在最后一刻更改语音属性。调用
stop()
会清除队列。要在文本结束时暂停引擎,请使用Utterance
边界提示。另请参阅
say()
stop()
aboutToSynthesize()
synthesize()
- errorOccurred(error, errorString)¶
- Parameters:
错误 –
ErrorReason
errorString – str
此信号在发生错误并且
state
已设置为Error
后发出。reason
参数指定错误类型,errorString
提供人类可读的错误描述。ErrorReason
不是一个已注册的元类型,因此对于排队的连接,您需要使用 Q_DECLARE_METATYPE() 和 qRegisterMetaType() 进行注册。另请参阅
errorReason()
errorString()
创建 自定义 Qt 类型
- errorReason()¶
- Return type:
返回引擎报告错误的原因。
另请参阅
- errorString()¶
- Return type:
字符串
返回当前引擎错误信息。
另请参阅
- locale()¶
- Return type:
另请参阅
属性
localeᅟ
的获取器。属性
localeᅟ
的通知信号。- pause([boundaryHint=QTextToSpeech.BoundaryHint.Default])¶
- Parameters:
boundaryHint –
BoundaryHint
在当前语音的
boundaryHint
处暂停。是否遵循
boundaryHint
取决于engine
。另请参阅
resume()
暂停恢复
- pitch()¶
- Return type:
浮点数
另请参阅
属性
pitchᅟ
的获取器。- pitchChanged(pitch)¶
- Parameters:
pitch – 浮点数
属性
pitchᅟ
的通知信号。属性
rateᅟ
的获取器。- rateChanged(rate)¶
- Parameters:
rate – 浮点数
属性
rateᅟ
的通知信号。- resume()¶
在调用
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
。- sayingWord(word, id, start, length)¶
- Parameters:
word – str
id – int
start – int
length – int
当话语
id
中由start
和length
指示的文本片段word
被播放到音频设备时,会发出此信号。- setEngine(engine[, params=QVariantMap()])¶
- Parameters:
engine – str
params – 字典,键类型为 .QString,值类型为 QVariant。
- Return type:
布尔
设置此
QTextToSpeech
对象使用的引擎为engine
,并将params
传递给引擎构造函数。返回
engine
是否成功设置。params
中支持哪些键/值对取决于引擎。详情请参阅 引擎文档。不支持的条目将被忽略。另请参阅
属性
localeᅟ
的设置器。属性
pitchᅟ
的设置器。属性
rateᅟ
的设置器。属性
voiceᅟ
的设置器。属性
volumeᅟ
的设置器。属性
stateᅟ
的获取器。属性
stateᅟ
的通知信号。- stop([boundaryHint=QTextToSpeech.BoundaryHint.Default])¶
- Parameters:
boundaryHint –
BoundaryHint
在
boundaryHint
处停止当前读取,并清除待处理文本的队列。无法恢复读取。
boundaryHint
是否被遵守取决于引擎。- voice()¶
- Return type:
另请参阅
属性
voiceᅟ
的获取器。属性
voiceᅟ
的通知信号。- volume()¶
- Return type:
浮点数
另请参阅
属性
volumeᅟ
的获取器。- volumeChanged(volume)¶
- Parameters:
volume – 浮点数
属性
volumeᅟ
的通知信号。