调用Python文本转语音引擎pyttsx3

标签: 插件

邱彼郑楠 2025-06-25 22:21:41

1. 首先,针对北太天元所使用的 Python,安装 pyttsx3 文本转语音引擎:

load_plugin("Python");
pipcmd("install pyttsx3 -i https://pypi.tuna.tsinghua.edu.cn/simple/");

2. 使用如下函数初始化一个基于 pyttsx3 的 TTS 引擎并设置其参数:

function [engine] = textToSpeech_pytts_init()
    % 获取 Python 根对象用于调用 Python 函数等
    py = pyroot;
    % 导入 pyttsx3 模块
    pyttsx3 = py.pyttsx3;
    % 初始化 TTS 引擎
    engine = pyttsx3.init();
    % 设置语音属性 (可选)
    voices = engine.getProperty('voices');
    % voices 是一个 py.list 对象
    % 目前北太天元无法直接使用 length 获取 py.list 的长度
    % 只能暂时使用 Python 中的 len 来代替
    for i = 1:py.len(voices)
        % 同样, 北太天元中的 frompy 函数无法将 py.list 类型的 voices 转化为内置的数组
        % 所以只能通过 pygetitem 函数来获取每一个元素
        voice = pygetitem(voices, i-1);
        if contains(string(voice.name), 'Chinese')  % 查找支持中文的语音
            engine.setProperty('voice', voice.id);
            break
        end
        if contains(string(voice.name), 'English')  % 查找支持英文的语音
            engine.setProperty('voice', voice.id);
            break;
        end
    end
    % 设置语速 (可选)
    engine.setProperty('rate', 150);    % 默认值为 200
    % 设置音量 (可选)
    engine.setProperty('volume', 0.8);  % 范围是 0.0 到 1.0
end

3. 初始化引擎,并传给引擎文本,让引擎朗读,或者保存音频:

% 初始化 TTS 引擎
engine = textToSpeech_pytts_init();
% 设置要说的文本
text = "你好,我在北太天元中调用 Python 文本转语音引擎!";
engine.say(text);
% 保存为 WAV 文件
engine.save_to_file(text, "output.wav");
% 运行并等待语音完成
engine.runAndWait();
engine.stop()

这样便可以听见引擎朗读的声音,也可以在本地找到保存的 output.wav 文件。

本示例中的 textToSpeech_pytts_init() 函数参考 大预言模型(LLM)赋能具身智能中的人机交互 中 Python 模型集成一节,并将无法在北太天元中运行的部分进行了修改。

本示例也参考了 Python使用总结之Python文本转语音引擎:pyttsx3完全指南 如何使用 pyttsx3 库。

回复

回复

重置 提交