AiSound 语音引擎调用教程 - 零基础入门
作者:影 ying | 邮箱:252333040@qq.com
【前言】
本教程介绍如何用 C# 和 Python 两种语言调用 AiSound 语音引擎(aisound.dll)。
零基础也能看懂,一个代码文件就能跑起来。
一、C# 版本
【项目文件说明】
C#调用例子aisound.cs 主代码文件(单文件包含所有功能)
build.bat 编译脚本,双击即可生成 exe
app.ico 程序图标(可选)
【build.bat 是什么?】
这是一个批处理脚本,作用是:
- 不用打开 Visual Studio
- 不用打开"开发人员命令提示符"
- 双击就能自动编译成 exe
简单说:省时间,一键编译。
【app.ico 是什么?】
软件的图标文件,就是窗口左上角和任务栏显示的小图片。
代码里会自动加载它,没有也不影响运行。
【通过这个代码能学到什么】
1. C# 调用外部 DLL(P/Invoke)
- 语音初始化、朗读、暂停、恢复、停止、切换音色
2. WinForm 界面开发
- 窗体、文本框、按钮、下拉框、图标加载
3. 面向对象封装
- 独立语音接口类,逻辑清晰、易于维护
4. 异常处理与文件判断
- 图标加载、DLL 检测、错误捕获
5. 完整程序结构
- 入口 Main、界面创建、资源释放、状态管理
【语音角色列表】
编号 标识符 名称 语言
---- -------- -------- ------
01 BabyXu Baby Xu 普通话
02 DaLong 大龙 粤语
03 DonaldDuck 唐老鸭 普通话
04 DuoXu 多旭 普通话
05 JiuXu 九旭 普通话
06 XiaoFeng 小风 普通话
07 XiaoMei 小美 粤语
08 XiaoPing 小平 普通话
09 YanPing 燕平 普通话
【DLL 函数接口】
// 初始化语音引擎
bool aisound_initialize();
// 终止语音引擎,清理资源
void aisound_terminate();
// 配置语音引擎参数
bool aisound_configure(const char* key, const char* value);
// 语音合成与播放
bool aisound_speak(const char* text, void* user_data);
// 取消当前语音合成
bool aisound_cancel();
【调用顺序】
第1步:aisound_initialize() 初始化引擎
第2步:aisound_configure() 配置参数(如设置语音角色)
第3步:aisound_speak() 播放语音
第4步:aisound_cancel() 可选,停止播放
第5步:aisound_terminate() 清理资源
【配置示例】
// 设置为燕平普通话
aisound_configure("voice", "YanPing");
// 设置为大龙粤语
aisound_configure("voice", "DaLong");
【注意事项】
- 所有函数返回 bool 类型,表示操作是否成功
- 必须按顺序调用:先初始化,再配置,最后使用
- 使用完成后必须调用 aisound_terminate() 释放资源
- 文本编码应为 UTF-8
- 第二个参数 user_data 在示例中传递 NULL,可用于扩展功能
二、Python 版本
【前提条件】
必须安装 wxPython 才能正常使用窗体界面:
pip install wxPython
Python 版本要求:Python 3.9 32位(Python39-32)
关键限制:当前项目只能用 32 位 Python 调用 aisound.dll
【项目文件说明】
接口.py 语音接口封装类
主程序.py 带 wxPython 界面的主程序
aisound.dll 语音引擎(需放在同目录)
【语音角色列表】(与 C# 版相同)
编号 标识符 名称 语言
---- -------- -------- ------
01 BabyXu Baby Xu 普通话
02 DaLong 大龙 粤语
03 DonaldDuck 唐老鸭 普通话
04 DuoXu 多旭 普通话
05 JiuXu 九旭 普通话
06 XiaoFeng 小风 普通话
07 XiaoMei 小美 粤语
08 XiaoPing 小平 普通话
09 YanPing 燕平 普通话
【接口.py 核心代码】
import ctypes
import os
class 语音接口:
def __init__(self):
self.dll = None
def 初始化(self):
# 用绝对路径加载 DLL(Python 3.8+ 不再自动搜索当前目录)
dll_path = os.path.join(os.path.dirname(os.path.abspath(__file__)), "aisound.dll")
if not os.path.exists(dll_path):
return False
self.dll = ctypes.CDLL(dll_path)
self.dll.aisound_initialize.restype = ctypes.c_bool
self.dll.aisound_configure.restype = ctypes.c_bool
self.dll.aisound_speak.restype = ctypes.c_bool
self.dll.aisound_cancel.restype = ctypes.c_bool
return self.dll.aisound_initialize()
def 设置语音(self, 语音标识):
if self.dll:
return self.dll.aisound_configure(b"voice", 语音标识.encode())
return False
def 发音(self, 文本):
if self.dll and 文本:
return self.dll.aisound_speak(文本.encode(), None)
return False
def 停止(self):
if self.dll:
return self.dll.aisound_cancel()
return False
def 终止(self):
if self.dll:
self.dll.aisound_terminate()
self.dll = None
【主程序.py 界面功能】
- 文本输入框:输入要朗读的内容
- 发音按钮:开始朗读
- 停止按钮:停止朗读
- 语音选择下拉框:切换 9 种语音角色
- 语音列表说明:显示所有可用语音
【注意事项】
- 必须使用 32 位 Python,64 位会报错
- aisound.dll 必须放在代码同目录
- 文本编码为 UTF-8
【结语】
无论是 C# 还是 Python,核心思路都是一样的:
加载 DLL → 初始化 → 配置语音 → 发音 → 清理资源
作者:影 ying
联系邮箱:252333040@qq.com
[下载 Python-PY调用例子aisound](https://atying.wcom.top/s/zqa8KGoY)
前路漫漫会有时,有时定当再相识。