Skip to main content
Glama

MCP Agent Platform

mouth_agent.cpython-310.pyc4.74 kB
o �+�g��@spdZddlZddlZddlmZmZddlZddlZddlZddl Z ddl m Z ddl m Z Gdd�de �ZdS)u& 嘴巴智能体 - 负责语音输出 �N)�Dict�Any)� BaseAgent)� TextMessagecsxeZdZdededef�fdd� Z�fdd�Zdd �Zd d �Zd d �Z dd�Z de ee ffdd�Z �fdd�Z�ZS)� MouthAgent�agent_id�host�portcs.t��|d||�t��|_|�d|j�dS)N�speech�text)�super�__init__�asyncio�Queue� tts_queue�register_handler�_handle_text_message)�selfrrr �� __class__��6D:\DeepSeek\MCPAgent\mcpTest\src\agents\mouth_agent.pyr s zMouthAgent.__init__c�sN�t���IdH|��IdH}|s|j�d�t�|���|j�d�dS)u启动嘴巴智能体Nu-TTS测试失败,语音功能可能不可用u嘴巴智能体已启动) r �start� _test_tts�logger�warningr� create_task�_process_tts_queue�info)rZ test_resultrrrrs� zMouthAgent.startc �sT�z t�|j�IdH}|WSty)}z|j�d|���WYd}~dSd}~ww)u测试TTS引擎NuTTS测试失败: F)r� to_thread�_init_and_test_tts� Exceptionr�error)r�result�errrr&s���zMouthAgent._test_ttsc Cs0z{|j�d�t��}|�dd�|�dd�|�d�}|j�dt|����|D]1}|j�d|j�d |j���d |j� �vsGd |j� �vrZ|�d |j�|j�d |j���nq)d}|j�d|���|� |�|� �|� �|j�d�WdSt y�}z|j�d|���WYd}~dSd}~ww)u初始化并测试TTS引擎u初始化TTS引擎�rate��volume��������?�voicesu可用语音数量: u 语音: ID=z, Name=�chinese�zh�voiceu设置中文语音: u嘴巴智能体启动u 测试TTS: u!TTS引擎初始化和测试完成Tu#TTS引擎初始化或测试失败: NF)rr�pyttsx3�init� setProperty� getProperty�len�id�name�lower�say� runAndWait�stopr!r")r�enginer)r,Z test_textr$rrrr 0s4    �  ��zMouthAgent._init_and_test_ttsc �s�� z|j��IdH}tj|j|fd�}d|_|��|j��Wnty<}z|j � d|���WYd}~nd}~wwt � d�IdHq)u处理TTS队列TN)�target�argsu处理TTS队列时出错: g�������?) r�get� threading�Thread� _speak_text�daemonr� task_doner!rr"r�sleep)rr �threadr$rrrrTs"�����zMouthAgent._process_tts_queuec Cs�zP|j�d|���t��}|�dd�|�dd�|�d�}|D]}d|j��vs1d|j��vr:|�d |j�nq!|� |�|� �|� �|j�d �Wd St yl}z|j� d |���WYd }~d Sd }~ww) u使用TTS引擎播放文本u开始播放语音: r%r&r'r(r)r*r+r,u语音播放完成u语音播放失败: N)rrr-r.r/r0r3r4r2r5r6r7r!r")rr r8r)r,r$rrrr>hs&   �  ��zMouthAgent._speak_text�messagec �s��zZ|j�d|���d|vr(t|dt�r#d|dvr#|dd}n |d}n|�dd�}|�dd�}|j�d|�d|���d d lm}|d |d ��Id H|j�|�Id HWd St yw}z|j� d|���WYd }~d Sd }~ww)u$处理文本消息(语音输出)u收到文本消息: �contentr �� sender_id�unknownu 收到来自u的语音输出请求: r)�broadcast_messager )�typerDNu处理文本消息时出错: ) rr� isinstance�dictr;�src.web.serverrHr�putr!r")rrCr rFrHr$rrrr�s(�    � ��zMouthAgent._handle_text_messagec�sB�t|d�r|jr|j��IdHt���IdH|j�d�dS)u停止嘴巴智能体rNu嘴巴智能体已停止)�hasattrr�joinr r7rr)rrrrr7�s �zMouthAgent.stop)�__name__� __module__� __qualname__�str�intr rrr rr>rrrr7� __classcell__rrrrrs  $r)�__doc__r�logging�typingrrr-r<�time�os�src.agents.base_agentr�src.utils.mcp_protocolrrrrrr�<module>s  

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/rolenet/McpAgentRobot'

If you have feedback or need assistance with the MCP directory API, please join our Discord server