1. 首先,針對北太天元所使用的 Python,安裝 pyttsx3 文本轉(zhuǎn)語音引擎:
load_plugin("Python"); pipcmd("install pyttsx3 -i https://pypi.tuna.tsinghua.edu.cn/simple/");
2. 使用如下函數(shù)初始化一個(gè)基于 pyttsx3 的 TTS 引擎并設(shè)置其參數(shù):
function [engine] = textToSpeech_pytts_init() % 獲取 Python 根對象用于調(diào)用 Python 函數(shù)等 py = pyroot; % 導(dǎo)入 pyttsx3 模塊 pyttsx3 = py.pyttsx3; % 初始化 TTS 引擎 engine = pyttsx3.init(); % 設(shè)置語音屬性 (可選) voices = engine.getProperty('voices'); % voices 是一個(gè) py.list 對象 % 目前北太天元無法直接使用 length 獲取 py.list 的長度 % 只能暫時(shí)使用 Python 中的 len 來代替 for i = 1:py.len(voices) % 同樣, 北太天元中的 frompy 函數(shù)無法將 py.list 類型的 voices 轉(zhuǎn)化為內(nèi)置的數(shù)組 % 所以只能通過 pygetitem 函數(shù)來獲取每一個(gè)元素 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 % 設(shè)置語速 (可選) engine.setProperty('rate', 150); % 默認(rèn)值為 200 % 設(shè)置音量 (可選) engine.setProperty('volume', 0.8); % 范圍是 0.0 到 1.0 end
3. 初始化引擎,并傳給引擎文本,讓引擎朗讀,或者保存音頻:
% 初始化 TTS 引擎 engine = textToSpeech_pytts_init(); % 設(shè)置要說的文本 text = "你好,我在北太天元中調(diào)用 Python 文本轉(zhuǎn)語音引擎!"; engine.say(text); % 保存為 WAV 文件 engine.save_to_file(text, "output.wav"); % 運(yùn)行并等待語音完成 engine.runAndWait(); engine.stop()
這樣便可以聽見引擎朗讀的聲音,也可以在本地找到保存的 output.wav 文件。
本示例中的 textToSpeech_pytts_init() 函數(shù)參考 大預(yù)言模型(LLM)賦能具身智能中的人機(jī)交互 中 Python 模型集成一節(jié),并將無法在北太天元中運(yùn)行的部分進(jìn)行了修改。
本示例也參考了 Python使用總結(jié)之Python文本轉(zhuǎn)語音引擎:pyttsx3完全指南 如何使用 pyttsx3 庫。