中文
配置
TextToAudioStream
的初始化参数
初始化 TextToAudioStream
类时,有多种选项可自定义其行为。以下是可用参数:
engine
(BaseEngine)
- 类型**: 基础引擎
- 必需**: 是
- 描述***: 负责文本到音频合成的底层引擎。您必须提供一个
BaseEngine
或其子类的实例才能启用音频合成。
on_text_stream_start
(可调用)
- 类型**: 可调用函数
- 要求**: 无
- 描述***: 这个可选的回调函数会在文本流开始时触发。可用于任何设置或日志记录。
on_text_stream_stop
(可调用)
- 类型***: 可调用函数
- 要求**: 无
- 描述***: 当文本流结束时,这个可选的回调函数将被激活。可用于清理任务或日志记录。
on_audio_stream_start
(可调用)
- 类型***: 可调用函数
- 要求**: 无
- 描述***: 当音频流启动时,会调用这个可选的回调函数。可用于用户界面更新或事件记录。
on_audio_stream_stop
(可调用)
- 类型***: 可调用函数
- 要求**: 无
- 描述***: 当音频流停止时,会调用这个可选的回调函数。是资源清理或后处理任务的理想选择。
on_character
(可调用)
- 类型***: 可调用函数
- 要求**: 无
- 描述***: 处理单个字符时调用此可选回调函数。
output_device_index
(int)
- 类型***: 整数
- 要求**: 无
- 默认**: 无
- 描述***: 指定要使用的输出设备索引。无则使用默认设备。
tokenizer
(字符串)
- 类型***: 字符串
- 必须**: 无
- 默认**: nltk
- 描述**: 用于分句的标记符(目前支持 “nltk ”和 “stanza”)。
language
(字符串)
- 类型***: 字符串
- 必须**: 否
- 默认**: en
- 描述**: 用于分句的语言。
muted
(bool)
- 类型***: 布尔
- 要求**: 否
- 默认**: 假
- 描述***: 全局静音参数。如果为 True,则不会打开 pyAudio 流。禁止通过本地扬声器播放音频(以防要合成到文件或处理音频块),并覆盖播放参数静音设置。
level
(int)
- 类型**: 整数
- 必须**: 无
- 默认**: 日志警告
- 描述***: 设置内部日志记录器的日志记录级别。可以是 Python 内置的
logging
模块中的任意整数常量。
使用示例:
engine = YourEngine() # 用你的引擎代替
stream = TextToAudioStream(
engine=engine、
on_text_stream_start=my_text_start_func、
on_text_stream_stop=my_text_stop_func、
on_audio_stream_start=my_audio_start_func、
on_audio_stream_stop=my_audio_stop_func、
级别=logging.INFO
)
方法
play
和 play_async
方法
这些方法负责执行文本到音频的合成并播放音频流。不同之处在于,play
是一个阻塞函数,而 play_async
则在单独的线程中运行,允许其他操作继续进行。
参数:
fast_sentence_fragment
(bool)
- 默认**: true
- 描述***: 当设置为 “true ”时,该方法将优先考虑速度,以更快的速度生成和播放句子片段。这对延迟很重要的应用程序很有用。
fast_sentence_fragment_allsentences
(bool)
- 默认**: 假
- 描述**: 当设置为 “true ”时,快速句子片段处理适用于所有句子,而不仅仅是第一个句子。
fast_sentence_fragment_allsentences_multiple
(bool)
- 默认**: 假
- 描述**: 设置为 “true ”时,允许产生多个句子片段,而不是只有一个。
buffer_threshold_seconds
(浮点数)
- 默认值**:
0.0
-
描述**: 指定缓冲阈值的时间(以秒为单位),它会影响音频播放的流畅性和连续性。
-
工作原理 在合成新句子之前,系统会检查缓冲区中剩余的音频资料是否多于
buffer_threshold_seconds
指定的时间。如果是,系统就会从文本生成器中获取另一个句子,假设它能在缓冲区中剩余音频所提供的时间窗口内获取并合成这个新句子。这个过程可以让文本到语音引擎有更多的语境,从而更好地进行合成,增强用户体验。
较高的值可确保有更多的预缓冲音频,减少播放过程中出现静音或间断的可能性。如果出现断句或停顿,请考虑增加该值。
minimum_sentence_length
(int)
- 默认:
10
- 描述**: 设置将字符串视为句子进行合成的最小字符长度。这会影响文本块的处理和播放方式。
minimum_first_fragment_length
(int)
- 默认值**:
10
- 描述**: 第一个句子片段的最小字符数。
log_synthesized_text
(bool)
- 默认**: 假
- 描述**: 启用后,记录合成为音频的文本块。有助于审计和调试。
reset_generated_text
(bool)
- 默认**: true
- 描述**: 如果为 True,则在处理前重置生成的文本。
output_wavfile
(str)
- 默认**: 无
- 描述***: 如果设置为 “是”,则将音频保存到指定的 WAV 文件中。
on_sentence_synthesized
(可调用)
- 默认**: 无
- 描述***: 在合成一个句子片段后调用的回调函数。
before_sentence_synthesized
(可调用)
- 默认**: 无
- 描述***: 在合成单个句子片段之前调用的回调函数。
on_audio_chunk
(可调用)
- 默认**: 无
- 描述**: 单个音频片段准备就绪时调用的回调函数。
tokenizer
(str)
- 默认**:
“nltk”
。 - 描述**: 用于分句的标记符。目前支持 “nltk ”和 “stanza”。
tokenize_sentences
(可调用)
- 默认**: 无
- 描述**: 从输入文本中标记句子的自定义函数。如果对 nltk 和 stanza 不满意,可以提供自己的轻量级标记符。它应以字符串形式接收文本,并以字符串列表形式返回拆分后的句子。
language
(str)
- 默认**: en
- 描述**: 用于分句的语言。
context_size
(int)
- 默认**:
12
- 描述***: 用于建立句子边界检测上下文的字符数。上下文越大,检测句子边界的准确性就越高。
context_size_look_overhead
(整数)
- 默认**:
12
- 描述***: 检测句子边界时用于前瞻的额外上下文大小。
muted
(bool)
- 默认**: 假
- 描述***: 如果为 True,则禁止通过本地扬声器播放音频。当您想合成一个文件或处理音频块而不播放它们时,此功能非常有用。
sentence_fragment_delimiters
(str)
- 默认**:
“.?!;:,\n...)]}。-”
- 描述**: 被视为句子分隔符的字符串。
force_first_fragment_after_words
(int)
- 默认值**:
15
- 描述***: 强制产生第一个句子片段的字数。