Skip to main content
Glama

MCP Agent Platform

mouth_agent.cpython-312.pyc8.76 kB
� ���g���v�dZddlZddlZddlmZmZddlZddlZddlZddl Z ddl m Z ddl m Z Gd�de �Zy)u& 嘴巴智能体 - 负责语音输出 �N)�Dict�Any)� BaseAgent)� TextMessagec�n��eZdZdededef�fd� Z�fd�Zd�Zd�Zd�Z d �Z d e ee ffd �Z �fd �Z�xZS) � MouthAgent�agent_id�host�portc���t�|�|d||�tj�|_|j d|j �y)N�speech�text)�super�__init__�asyncio�Queue� tts_queue�register_handler�_handle_text_message)�selfr r r � __class__s ��.D:\AIProject\mcpTest\src\agents\mouth_agent.pyrzMouthAgent.__init__s;��� ����8�T�4�8� ������ ���f�d�&?�&?�@�c��(�K�t�|���d{���|j��d{���}|s|jj d�t j |j��|jjd�y7�x7�b�w)u启动嘴巴智能体Nu-TTS测试失败,语音功能可能不可用u嘴巴智能体已启动) r�start� _test_tts�logger�warningr� create_task�_process_tts_queue�info)r� test_resultrs �rrzMouthAgent.startst������g�m�o���!�N�N�,�,� �� �K�K� � � O� P� ���D�3�3�5�6� � � ���3�4� ��-�s �B�B�B�B�A!B�Bc���K� tj|j��d{���}|S7�#t$r(}|jj d|���Yd}~yd}~wwxYw�w)u测试TTS引擎NuTTS测试失败: F)r� to_thread�_init_and_test_tts� Exceptionr�error)r�result�es rrzMouthAgent._test_tts&s[���� �"�,�,�T�-D�-D�E�E�F��M�F��� � �K�K� � � 1�!��5� 6��� �s6�A#�"/�-�/�A#�/� A �A�A#�A � A#c��� |jjd�tj�}|j dd�|j dd�|j d�}|jjdt |����|D]�}|jjd|j�d |j���d |jj�vsd |jj�vs�q|j d |j�|jjd |j���nd}|jjd|���|j|�|j�|j�|jjd�y#t$r(}|jjd|���Yd}~yd}~wwxYw)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/r2� test_textr)s rr%zMouthAgent._init_and_test_tts0s��� � �K�K� � �1� 2��\�\�^�F� � � �v�s� +� � � �x�� -��'�'��1�F� �K�K� � �3�C��K�=�A� B� � ��� � � � �;�u�x�x�j��� � �|�!L�M��� � � 0� 0� 2�2�d�e�h�h�n�n�>N�6N��&�&�w����9��K�K�$�$�';�E�H�H�:�%F�G��  �3�I� �K�K� � �{�9�+�6� 7� �J�J�y� !� � � � � �K�K�M� �K�K� � �@� A���� � �K�K� � � C�A�3�G� H��� �s�C=F4�B3F4�4 G%�=G � G%c��K� |jj��d{���}tj|j|f��}d|_|j �|jj�tjd��d{�����7�u#t$r(}|jjd|���Yd}~�Ld}~wwxYw7�;�w)u处理TTS队列TN)�target�argsu处理TTS队列时出错: g�������?) r�get� threading�Thread� _speak_text�daemonr� task_doner&rr'r�sleep)rr�threadr)s rr zMouthAgent._process_tts_queueTs������ D�!�^�^�/�/�1�1��#�)�)��+�+�����!%�� �� � �����(�(�*��-�-��$� $� $�!�1��� D�� � �!�!�$>�q�c�"B�C�C�� D�� $�sK�C�B�B�AB�:C�C�C�B� C �#C�C�C � Cc�� |jjd|���tj�}|j dd�|j dd�|j d�}|D]X}d|j j�vsd|jj�vs�<|j d |j�n|j|�|j�|j�|jjd �y #t$r(}|jjd |���Yd }~y d }~wwxYw) u使用TTS引擎播放文本u开始播放语音: r+��r-r.r/r0r1r2u语音播放完成u语音播放失败: N)rr!r3r4r5r6r9r:r8r;r<r=r&r')rrr>r/r2r)s rrFzMouthAgent._speak_texths�� :� �K�K� � �3�D�6�:� ;��\�\�^�F� � � �v�s� +� � � �x�� -��'�'��1�F�� ���� � � 0� 0� 2�2�d�e�h�h�n�n�>N�6N��&�&�w����9�� � �J�J�t� � � � � � �K�K�M� �K�K� � �1� 2��� :� �K�K� � � 4�Q�C�8� 9� 9�� :�s�B$D�'A+D� E�D?�?E�messagec��K� |jjd|���d|vr)t|dt�rd|dvr |dd}n|d}n|j dd�}|j dd�}|jjd|�d|���d d lm}|d |d ���d {���|jj|��d {���y 7�(7�#t$r(}|jjd|���Yd }~y d }~wwxYw�w)u$处理文本消息(语音输出)u收到文本消息: �contentr�� sender_id�unknownu 收到来自u的语音输出请求: r)�broadcast_messager )�typerONu处理文本消息时出错: ) rr!� isinstance�dictrC�src.web.serverrSr�putr&r')rrMrrQrSr)s rrzMouthAgent._handle_text_message�s���� C� �K�K� � �3�G�9�=� >��G�#��g�i�0�$�7�F�g�i�FX�<X�"�9�-�f�5�D�"�9�-�D��{�{�6�2�.��� � �K��;�I� �K�K� � �|�I�;�6M�d�V�T� U� 9�#� ��%�� � � �.�.�$�$�T�*� *� *�  �� +��� C� �K�K� � � =�a�S�A� B� B�� C�sS�D �B$C�(C�)"C� C� C�D �C�C� D�D�<D �D�D c����K�t|d�r.|jr"|jj��d{���t�|���d{���|j j d�y7�67�"�w)u停止嘴巴智能体rNu嘴巴智能体已停止)�hasattrr�joinrr=rr!)rrs �rr=zMouthAgent.stop�sZ����� �4�� %�$�.�.��.�.�%�%�'� '� '��g�l�n��� � � ���3�4� (���s!�6A4�A0�A4�A2�!A4�2A4)�__name__� __module__� __qualname__�str�intrrrr%r rFrrrr=� __classcell__)rs@rrrs[���A��A�C�A�s�A� 5��"�H%�(:�2C�$�s�C�x�.�C�<5�5rr)�__doc__r�logging�typingrrr3rD�time�os�src.agents.base_agentr�src.utils.mcp_protocolrr�rr�<module>rjs5�������� � �+�.�W5��W5r

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