- 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()
槽(slot)#
def
enqueue()
def
pause()
def
resume()
def
say()
定义
setLocale()
定义
setPitch()
定义
setRate()
定义
setVoice()
定义
setVolume()
定义
stop()
信号#
定义
sayingWord()
静态函数#
注释
本文档可能包含自动从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数据。合成数据时将会发射
synthesize()
信号。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
时可以直接使用属性,否则通过访问器函数来使用。- 属性 引擎: str#
此属性存储用于将文本合成为语音的引擎。
更改引擎将停止任何正在进行的语音。
- 访问函数
- 属性 引擎功能: QDBusConnection.ConnectionCapability的组合#
此属性存储当前引擎实现的功能。
另请参阅
- 访问函数
此属性存储当前使用的区域。
默认情况下,使用系统区域。
在某些平台上,更改区域将更新可用语音列表,并且如果当前语音在新区域不可用,将设置一个新语音。
另请参阅
voice
findVoices()
- 访问函数
- 属性 音调: float#
此属性存储语音的音调,范围从 -1.0 到 1.0。
默认值 0.0 是正常语音音调。
- 访问函数
- 属性 速率: float#
此属性存储当前语音的速率,范围从 -1.0 到 1.0。
默认值为 0.0 是正常语音流。
- 访问函数
- 属性 状态: 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
开始文本的合成。- 访问函数
此属性包含将用于语音的声音。
该声音必须是系统能够使用的
voices available
之一。在某些平台上,设置声音会改变其他声音属性,例如
locale
、pitch
等。这些更改会触发信号的发出。另请参阅
findVoices()
- 访问函数
- 属性 音量: float#
此属性包含当前音量,范围从 0.0 到 1.0。
默认值为平台的默认音量。
- 访问函数
从匹配参数
engine
的插件中加载语音合成引擎,并以parent
的子项构造一个QTextToSpeech
对象。如果
engine
为空,则使用默认的引擎插件。默认引擎是平台特定的。如果引擎初始化正确,则引擎的
state
将被设置为Ready
。如果插件加载失败,或者引擎初始化失败,则引擎的state
将被设置为Error
。另请参阅
- __init__([parent=None])
- 参数:
parent –
QObject
从默认引擎插件加载语音合成引擎,并以
parent
的子项构造一个QTextToSpeech
对象。默认引擎是平台特定的。
如果引擎初始化正确,则引擎的
state
将变为Ready
;请注意,这可能会异步发生。如果插件加载失败,则state
将设置为Error
。另请参阅
- __init__(engine, params[, parent=None])
- 参数:
engine – str
params - 以 .QString 类型为键,以 QVariant 类型为值的字典。
parent –
QObject
从匹配参数
engine
的插件中加载语音合成引擎,并以parent
的子项构造一个QTextToSpeech
对象,将params
传递给引擎。如果
engine
为空,则使用默认的引擎插件。默认引擎是平台特定的。在params
中支持哪些键值对取决于引擎。有关详细信息,请参阅 引擎文档。不受支持的条目将被忽略。如果引擎初始化正确,则引擎的
state
将被设置为Ready
。如果插件加载失败,或者引擎初始化失败,则引擎的state
将被设置为Error
。另请参阅
- aboutToSynthesize(id)#
- 参数:
id – int
此信号在引擎开始对
id
合成语音音频之前发出。该id
是通过调用enqueue()
返回的值。应用程序可以使用此信号对voice
属性进行最后时刻的修改,或者追踪通过enqueue()
入队文本的过程。- 静态 availableEngines()#
- 返回类型:
字符串列表
获取支持的文本到语音引擎插件列表。
另请参阅
- availableLocales()#
- 返回类型:
QLocale 列表
返回当前活动的
engine
支持的区域列表。另请参阅
availableVoices()
findVoices()
- availableVoices()#
- 返回类型:
QVoice 列表
返回当前
locale
可用的声音列表。- engine()#
- 返回类型:
str
另请参阅
属性
engine
的获取器。- engineCapabilities()#
- 返回类型:
Capability
的组合。
- engineChanged(engine)#
- 参数:
engine – str
属性
engine
的变化通知信号。- enqueue(text)#
- 参数:
text – str
- 返回类型:
int
将
utterance
添加到待读文本队列中,并开始朗读。返回文本在队列中的索引,发生错误时返回 -1。如果引擎的
state
当前为Ready
,则立即朗读utterance
。否则,引擎将在完成当前文本的朗读后开始朗读utterance
。每当引擎进入队列中的下一个文本条目时,都会发出
aboutToSynthesize()
信号。这允许应用程序跟踪进度,并在最后时刻更改声音属性。调用
stop()
清除队列。要在文本末尾暂停引擎,请使用Utterance
边界提示。另请参阅
say()
stop()
aboutToSynthesize()
synthesize()
- errorOccurred(error, errorString)#
- 参数:
error –
ErrorReason
errorString – 字符串
当发生错误并将
状态
设置为错误
之后,会发出这个信号。参数reason
指定错误类型,而errorString
提供了可读性强的错误描述。ErrorReason
并不是一个已注册的元类型,因此对于队列连接,你将不得不使用Q_DECLARE_METATYPE()
和qRegisterMetaType()
来注册它。另请参阅
errorReason()
errorString()
创建自定义Qt类型
- errorReason()#
- 返回类型:
返回引擎报告错误的原因。
- errorString()#
- 返回类型:
str
返回当前引擎的错误消息。
另请参阅
- locale()#
- 返回类型:
另请参阅
属性
locale
的获取器。属性
locale
的通知信号。- pause([boundaryHint=QTextToSpeech.BoundaryHint.Default])#
- 参数:
boundaryHint –
BoundaryHint
在
boundaryHint
处暂停当前的语音。对
boundaryHint
的尊重程度取决于engine
。另请参阅
resume()
PauseResume
- pitching()#
- 返回类型:
float
另请参阅
属性
pitch
的获取器。- pitchChanged(pitch)#
- 参数:
pitch – float
属性
pitch
的通知信号。属性
rate
的获取器。- rateChanged(rate)#
- 参数:
rate – float
属性
rate
的通知信号。- resume()#
在调用过
pause()
后,恢复说话。- say(text)#
- 参数:
text – 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)#
- 参数:
word – str
id – int
start – int
length – int
当文本切片
word
在utteranceid
中,从start
到length
被播放到音频设备时,该信号会被发射。- setEngine(engine[, params=QVariantMap()])#
- 参数:
engine – str
params - 以 .QString 类型为键,以 QVariant 类型为值的字典。
- 返回类型:
bool
将此
QTextToSpeech
对象使用的语音合成器设置为engine
,并通过构造函数将params
传递给语音合成器。返回是否成功设置
engine
。params 中哪些键值对被支持取决于引擎。有关详细信息,请参阅 引擎文档。不支持的内容将被忽略。
另请参阅
属性
localeᅟ
的设置器。属性
pitchᅟ
的设置器。属性
rateᅟ
的设置器。设置属性
voice
的值。设置属性
volume
的值。获取属性
state
的值。属性
state
的通知信号。- stop([boundaryHint=QTextToSpeech.BoundaryHint.Default])#
- 参数:
boundaryHint –
BoundaryHint
在
boundaryHint
处停止当前的朗读,并清除待处理文本的队列。朗读不能恢复。是否遵守
boundaryHint
取决于引擎。- voice()#
- 返回类型:
另请参阅
获取属性
voice
的值。属性
voice
的通知信号。- volume()#
- 返回类型:
float
另请参阅
获取属性
volume
的值。- volumeChanged(volume)#
- 参数:
volume – float
属性
volume
的通知信号。