yihong0618 / xiaogpt

Play ChatGPT and other LLM with Xiaomi AI Speaker
MIT License
5.86k stars 817 forks source link

新TTS嗓音支持---zh-CN-XiaoxiaoMultilingualNeural (Female) #470

Closed VectorZhao closed 2 months ago

VectorZhao commented 2 months ago

这个嗓音可以用到这里吗?不是很到,但听起来非常自然。azure的账号是有的,每月免费额度完全够了。

zh-CN-XiaoxiaoMultilingualNeural (Female)

VectorZhao commented 2 months ago
'''
  For more samples please visit https://github.com/Azure-Samples/cognitive-services-speech-sdk 
'''

import azure.cognitiveservices.speech as speechsdk

# Creates an instance of a speech config with specified subscription key and service region.
speech_key = "xxxxxxxxxxxxxxxxx"
service_region = "eastasia"

speech_config = speechsdk.SpeechConfig(subscription=speech_key, region=service_region)
# Note: the voice setting will not overwrite the voice element in input SSML.
speech_config.speech_synthesis_voice_name = "zh-CN-XiaoxiaoMultilingualNeural"

text = "你好,这是晓晓 多语言。"

# use the default speaker as audio output.
speech_synthesizer = speechsdk.SpeechSynthesizer(speech_config=speech_config)

result = speech_synthesizer.speak_text_async(text).get()
# Check result
if result.reason == speechsdk.ResultReason.SynthesizingAudioCompleted:
    print("Speech synthesized for text [{}]".format(text))
elif result.reason == speechsdk.ResultReason.Canceled:
    cancellation_details = result.cancellation_details
    print("Speech synthesis canceled: {}".format(cancellation_details.reason))
    if cancellation_details.reason == speechsdk.CancellationReason.Error:
        print("Error details: {}".format(cancellation_details.error_details))
yihong0618 commented 2 months ago

@VectorZhao 可以需要加个 tts type azure. 你有兴趣帮忙加上么? 如果没有兴趣,我们等等加上~ 谢谢

VectorZhao commented 2 months ago

主要是我咋帮,提供key是可以的

yihong0618 commented 2 months ago

主要是我咋帮,提供key是可以的

PR 呀,没关系我们来做,可能这周加上,谢谢

VectorZhao commented 2 months ago

谢谢,主要是我不怎么会这方面的东西,也只能提供下思路,贴贴代码什么的🤣

laipz8200 commented 2 months ago

I'd like to participate, but I haven't read the code for this repository yet, can you give me some advice to get started?

yihong0618 commented 2 months ago

I'd like to participate, but I haven't read the code for this repository yet, can you give me some advice to get started?

first you need to have a xiaoai second @frostming had exact a tts dir you can follow how openai tts work

laipz8200 commented 2 months ago

OK, I'll try it this week.

laipz8200 commented 2 months ago

@VectorZhao Hello,我正在尝试实现这个功能,请问您方便提供测试用的key吗?希望您能通过邮箱和我联系,谢谢。

yihong0618 commented 2 months ago

@laipz8200 Done and merge thanks

VectorZhao commented 2 months ago

感谢你们的付出 thx for your efforts

VectorZhao commented 2 months ago

没有朗读,没有任何声音答复。是我哪里配置出问题了吗?

$ docker compose down && docker compose pull && docker compose up
[+] Running 2/0
 ✔ Container xiaogpt        Removed                                                                                                      0.0s 
 ✔ Network xiaogpt_default  Removed                                                                                                      0.1s 
[+] Pulling 1/1
 ✔ xiaogpt Pulled                                                                                                                        4.6s 
[+] Running 2/0
 ✔ Network xiaogpt_default  Created                                                                                                      0.0s 
 ✔ Container xiaogpt        Created                                                                                                      0.1s 
Attaching to xiaogpt
xiaogpt  | [04/12/24 16:00:35] DEBUG    Config(hardware='LX06',               xiaogpt.py:53
xiaogpt  |                              account='xxxxx',                             
xiaogpt  |                              password='xxxxx',                               
xiaogpt  |                              openai_key='sk-xxxxx              
xiaogpt  |                              xxxxx',                       
xiaogpt  |                              glm_key='', gemini_key='',                         
xiaogpt  |                              qwen_key='', bard_token='',                        
xiaogpt  |                              serpapi_api_key='xxxxx, proxy=None,                              
xiaogpt  |                              mi_did='xxxxx',                                
xiaogpt  |                              keyword=['我问你'],                                
xiaogpt  |                              change_prompt_keyword=['更改提示词'],              
xiaogpt  |                              prompt='你是Vector的家庭智能音箱语音               
xiaogpt  |                              助手,可以解答任何问题,每次询问你问               
xiaogpt  |                              题时,请用100字以内回答',                          
xiaogpt  |                              mute_xiaoai=True, bot='chatgptapi',                
xiaogpt  |                              cookie='',                                         
xiaogpt  |                              api_base='https://xxxxx/v1',                 
xiaogpt  |                              deployment_id=None,                                
xiaogpt  |                              use_command=False, verbose=True,                   
xiaogpt  |                              start_conversation='开始持续对话',                 
xiaogpt  |                              end_conversation='结束持续对话',                   
xiaogpt  |                              stream=False, tts='azure',                         
xiaogpt  |                              tts_voice='zh-CN-XiaoxiaoMultilingual              
xiaogpt  |                              Neural', gpt_options={'model':                     
xiaogpt  |                              'gpt-4-mobile'}, bing_cookie_path='',              
xiaogpt  |                              bing_cookies={},                                   
xiaogpt  |                              azure_tts_speech_key='xxxxx',                                
xiaogpt  |                              azure_tts_service_region='eastasia')               
xiaogpt  | [04/12/24 16:00:36] INFO     Serving on 192.168.125.15:9527          base.py:145
xiaogpt  | Running xiaogpt now, 用我问你开头来提问
xiaogpt  | 或用开始持续对话开始持续对话
xiaogpt  |                     DEBUG    Listening new message, timestamp:     xiaogpt.py:60
xiaogpt  |                              1712937635639                                      
xiaogpt  |                     DEBUG    Polling_event, timestamp:             xiaogpt.py:65
xiaogpt  |                              1712937635639                                      
xiaogpt  |                     DEBUG    Sleep 0.001946, timestamp:            xiaogpt.py:75
xiaogpt  |                              1712937635639                                      
xiaogpt  | [04/12/24 16:00:37] DEBUG    Listening new message, timestamp:     xiaogpt.py:60
xiaogpt  |                              1712937635639                                      
xiaogpt  |                     DEBUG    Polling_event, timestamp:             xiaogpt.py:65
xiaogpt  |                              1712937635639                                      
xiaogpt  |                     DEBUG    Sleep 0.002451, timestamp:            xiaogpt.py:75
xiaogpt  |                              1712937635639                                      
xiaogpt  | [04/12/24 16:00:38] DEBUG    Listening new message, timestamp:     xiaogpt.py:60
xiaogpt  |                              1712937635639                                      
xiaogpt  | [04/12/24 16:00:39] DEBUG    Polling_event, timestamp:             xiaogpt.py:65
xiaogpt  |                              1712937635639                                      
xiaogpt  |                     DEBUG    Sleep 0.002371, timestamp:            xiaogpt.py:75
xiaogpt  |                              1712937635639                                      
xiaogpt  | [04/12/24 16:00:40] DEBUG    Listening new message, timestamp:     xiaogpt.py:60
xiaogpt  |                              1712937635639                                      
xiaogpt  |                     DEBUG    Polling_event, timestamp:             xiaogpt.py:65
xiaogpt  |                              1712937635639                                      
xiaogpt  |                     DEBUG    Sleep 0.002651, timestamp:            xiaogpt.py:75
xiaogpt  |                              1712937635639                                      
xiaogpt  | [04/12/24 16:00:41] DEBUG    Listening new message, timestamp:     xiaogpt.py:60
xiaogpt  |                              1712937635639                                      
xiaogpt  |                     DEBUG    Polling_event, timestamp:             xiaogpt.py:65
xiaogpt  |                              1712937635639                                      
xiaogpt  |                     DEBUG    Sleep 0.002450, timestamp:            xiaogpt.py:75
xiaogpt  |                              1712937635639                                      
xiaogpt  | [04/12/24 16:00:42] DEBUG    Listening new message, timestamp:     xiaogpt.py:60
xiaogpt  |                              1712937635639                                      
xiaogpt  |                     DEBUG    Polling_event, timestamp:             xiaogpt.py:65
xiaogpt  |                              1712937635639                                      
xiaogpt  |                     DEBUG    Sleep 0.001951, timestamp:            xiaogpt.py:75
xiaogpt  |                              1712937635639                                      
xiaogpt  | [04/12/24 16:00:43] DEBUG    Listening new message, timestamp:     xiaogpt.py:60
xiaogpt  |                              1712937635639                                      
xiaogpt  |                     DEBUG    Polling_event, timestamp:             xiaogpt.py:65
xiaogpt  |                              1712937635639                                      
xiaogpt  |                     DEBUG    Sleep 0.002822, timestamp:            xiaogpt.py:75
xiaogpt  |                              1712937635639                                      
xiaogpt  | [04/12/24 16:00:44] DEBUG    Listening new message, timestamp:     xiaogpt.py:60
xiaogpt  |                              1712937635639                                      
xiaogpt  |                     DEBUG    Polling_event, timestamp:             xiaogpt.py:65
xiaogpt  |                              1712937635639                                      
xiaogpt  |                     DEBUG    Sleep 0.003242, timestamp:            xiaogpt.py:75
xiaogpt  |                              1712937635639                                      
xiaogpt  | [04/12/24 16:00:45] DEBUG    Listening new message, timestamp:     xiaogpt.py:60
xiaogpt  |                              1712937635639                                      
xiaogpt  |                     DEBUG    Polling_event, timestamp:             xiaogpt.py:65
xiaogpt  |                              1712937635639                                      
xiaogpt  |                     DEBUG    Sleep 0.002769, timestamp:            xiaogpt.py:75
xiaogpt  |                              1712937635639                                      
xiaogpt  | [04/12/24 16:00:46] DEBUG    Listening new message, timestamp:     xiaogpt.py:60
xiaogpt  |                              1712937635639                                      
xiaogpt  |                     DEBUG    Polling_event, timestamp:             xiaogpt.py:65
xiaogpt  |                              1712937645722                                      
xiaogpt  | --------------------
xiaogpt  | 问题:你是谁?
xiaogpt  |                     DEBUG    Sleep 0.134529, timestamp:            xiaogpt.py:75
xiaogpt  |                              1712937645722                                      
xiaogpt  | 以下是小爱的回答:  是人吧
xiaogpt  | 以下是 ChatGPT 的回答: [04/12/24 16:00:47] DEBUG    Listening new message, timestamp:     xiaogpt.py:60
xiaogpt  |                              1712937645722                                      
xiaogpt  |                     DEBUG    Polling_event, timestamp:             xiaogpt.py:65
xiaogpt  |                              1712937645722                                      
xiaogpt  | 我是一个基于人工智能的文本生成模型,可以帮助解答问题、提供信息和进行创意写作。不
xiaogpt  | 过,我并非Vector的家庭智能音箱语音助手,但我会尽力在100字以内回答你的问题。
laipz8200 commented 2 months ago

配置似乎没有问题,这段日志之后一段时间应该会打印出 Speech synthesized for text ["我是一个基于..."]

希望能有拥有相同型号设备的人帮助测试。

yihong0618 commented 2 months ago

没有朗读,没有任何声音答复。是我哪里配置出问题了吗?

$ docker compose down && docker compose pull && docker compose up
[+] Running 2/0
 ✔ Container xiaogpt        Removed                                                                                                      0.0s 
 ✔ Network xiaogpt_default  Removed                                                                                                      0.1s 
[+] Pulling 1/1
 ✔ xiaogpt Pulled                                                                                                                        4.6s 
[+] Running 2/0
 ✔ Network xiaogpt_default  Created                                                                                                      0.0s 
 ✔ Container xiaogpt        Created                                                                                                      0.1s 
Attaching to xiaogpt
xiaogpt  | [04/12/24 16:00:35] DEBUG    Config(hardware='LX06',               xiaogpt.py:53
xiaogpt  |                              account='xxxxx',                             
xiaogpt  |                              password='xxxxx',                               
xiaogpt  |                              openai_key='sk-xxxxx              
xiaogpt  |                              xxxxx',                       
xiaogpt  |                              glm_key='', gemini_key='',                         
xiaogpt  |                              qwen_key='', bard_token='',                        
xiaogpt  |                              serpapi_api_key='xxxxx, proxy=None,                              
xiaogpt  |                              mi_did='xxxxx',                                
xiaogpt  |                              keyword=['我问你'],                                
xiaogpt  |                              change_prompt_keyword=['更改提示词'],              
xiaogpt  |                              prompt='你是Vector的家庭智能音箱语音               
xiaogpt  |                              助手,可以解答任何问题,每次询问你问               
xiaogpt  |                              题时,请用100字以内回答',                          
xiaogpt  |                              mute_xiaoai=True, bot='chatgptapi',                
xiaogpt  |                              cookie='',                                         
xiaogpt  |                              api_base='https://xxxxx/v1',                 
xiaogpt  |                              deployment_id=None,                                
xiaogpt  |                              use_command=False, verbose=True,                   
xiaogpt  |                              start_conversation='开始持续对话',                 
xiaogpt  |                              end_conversation='结束持续对话',                   
xiaogpt  |                              stream=False, tts='azure',                         
xiaogpt  |                              tts_voice='zh-CN-XiaoxiaoMultilingual              
xiaogpt  |                              Neural', gpt_options={'model':                     
xiaogpt  |                              'gpt-4-mobile'}, bing_cookie_path='',              
xiaogpt  |                              bing_cookies={},                                   
xiaogpt  |                              azure_tts_speech_key='xxxxx',                                
xiaogpt  |                              azure_tts_service_region='eastasia')               
xiaogpt  | [04/12/24 16:00:36] INFO     Serving on 192.168.125.15:9527          base.py:145
xiaogpt  | Running xiaogpt now, 用我问你开头来提问
xiaogpt  | 或用开始持续对话开始持续对话
xiaogpt  |                     DEBUG    Listening new message, timestamp:     xiaogpt.py:60
xiaogpt  |                              1712937635639                                      
xiaogpt  |                     DEBUG    Polling_event, timestamp:             xiaogpt.py:65
xiaogpt  |                              1712937635639                                      
xiaogpt  |                     DEBUG    Sleep 0.001946, timestamp:            xiaogpt.py:75
xiaogpt  |                              1712937635639                                      
xiaogpt  | [04/12/24 16:00:37] DEBUG    Listening new message, timestamp:     xiaogpt.py:60
xiaogpt  |                              1712937635639                                      
xiaogpt  |                     DEBUG    Polling_event, timestamp:             xiaogpt.py:65
xiaogpt  |                              1712937635639                                      
xiaogpt  |                     DEBUG    Sleep 0.002451, timestamp:            xiaogpt.py:75
xiaogpt  |                              1712937635639                                      
xiaogpt  | [04/12/24 16:00:38] DEBUG    Listening new message, timestamp:     xiaogpt.py:60
xiaogpt  |                              1712937635639                                      
xiaogpt  | [04/12/24 16:00:39] DEBUG    Polling_event, timestamp:             xiaogpt.py:65
xiaogpt  |                              1712937635639                                      
xiaogpt  |                     DEBUG    Sleep 0.002371, timestamp:            xiaogpt.py:75
xiaogpt  |                              1712937635639                                      
xiaogpt  | [04/12/24 16:00:40] DEBUG    Listening new message, timestamp:     xiaogpt.py:60
xiaogpt  |                              1712937635639                                      
xiaogpt  |                     DEBUG    Polling_event, timestamp:             xiaogpt.py:65
xiaogpt  |                              1712937635639                                      
xiaogpt  |                     DEBUG    Sleep 0.002651, timestamp:            xiaogpt.py:75
xiaogpt  |                              1712937635639                                      
xiaogpt  | [04/12/24 16:00:41] DEBUG    Listening new message, timestamp:     xiaogpt.py:60
xiaogpt  |                              1712937635639                                      
xiaogpt  |                     DEBUG    Polling_event, timestamp:             xiaogpt.py:65
xiaogpt  |                              1712937635639                                      
xiaogpt  |                     DEBUG    Sleep 0.002450, timestamp:            xiaogpt.py:75
xiaogpt  |                              1712937635639                                      
xiaogpt  | [04/12/24 16:00:42] DEBUG    Listening new message, timestamp:     xiaogpt.py:60
xiaogpt  |                              1712937635639                                      
xiaogpt  |                     DEBUG    Polling_event, timestamp:             xiaogpt.py:65
xiaogpt  |                              1712937635639                                      
xiaogpt  |                     DEBUG    Sleep 0.001951, timestamp:            xiaogpt.py:75
xiaogpt  |                              1712937635639                                      
xiaogpt  | [04/12/24 16:00:43] DEBUG    Listening new message, timestamp:     xiaogpt.py:60
xiaogpt  |                              1712937635639                                      
xiaogpt  |                     DEBUG    Polling_event, timestamp:             xiaogpt.py:65
xiaogpt  |                              1712937635639                                      
xiaogpt  |                     DEBUG    Sleep 0.002822, timestamp:            xiaogpt.py:75
xiaogpt  |                              1712937635639                                      
xiaogpt  | [04/12/24 16:00:44] DEBUG    Listening new message, timestamp:     xiaogpt.py:60
xiaogpt  |                              1712937635639                                      
xiaogpt  |                     DEBUG    Polling_event, timestamp:             xiaogpt.py:65
xiaogpt  |                              1712937635639                                      
xiaogpt  |                     DEBUG    Sleep 0.003242, timestamp:            xiaogpt.py:75
xiaogpt  |                              1712937635639                                      
xiaogpt  | [04/12/24 16:00:45] DEBUG    Listening new message, timestamp:     xiaogpt.py:60
xiaogpt  |                              1712937635639                                      
xiaogpt  |                     DEBUG    Polling_event, timestamp:             xiaogpt.py:65
xiaogpt  |                              1712937635639                                      
xiaogpt  |                     DEBUG    Sleep 0.002769, timestamp:            xiaogpt.py:75
xiaogpt  |                              1712937635639                                      
xiaogpt  | [04/12/24 16:00:46] DEBUG    Listening new message, timestamp:     xiaogpt.py:60
xiaogpt  |                              1712937635639                                      
xiaogpt  |                     DEBUG    Polling_event, timestamp:             xiaogpt.py:65
xiaogpt  |                              1712937645722                                      
xiaogpt  | --------------------
xiaogpt  | 问题:你是谁?
xiaogpt  |                     DEBUG    Sleep 0.134529, timestamp:            xiaogpt.py:75
xiaogpt  |                              1712937645722                                      
xiaogpt  | 以下是小爱的回答:  是人吧
xiaogpt  | 以下是 ChatGPT 的回答: [04/12/24 16:00:47] DEBUG    Listening new message, timestamp:     xiaogpt.py:60
xiaogpt  |                              1712937645722                                      
xiaogpt  |                     DEBUG    Polling_event, timestamp:             xiaogpt.py:65
xiaogpt  |                              1712937645722                                      
xiaogpt  | 我是一个基于人工智能的文本生成模型,可以帮助解答问题、提供信息和进行创意写作。不
xiaogpt  | 过,我并非Vector的家庭智能音箱语音助手,但我会尽力在100字以内回答你的问题。

看起来没问题,edge 和 openai 能用么?

VectorZhao commented 2 months ago

mi以及edge模式都可以正常语音回复

yihong0618 commented 2 months ago

mi以及edge模式都可以正常语音回复

确保 key 和地理位置正确

VectorZhao commented 2 months ago
"tts": "azure",
"tts_voice": "zh-CN-XiaoxiaoMultilingualNeural",
"azure_tts_speech_key": "9f77c100bff0479ebff74cxxxxxxxxxx",
"azure_tts_service_region": "eastasia",

已经核对多次,日志应该打印请求的结果以便调试跟踪
yihong0618 commented 2 months ago
"tts": "azure",
"tts_voice": "zh-CN-XiaoxiaoMultilingualNeural",
"azure_tts_speech_key": "9f77c100bff0479ebff74cxxxxxxxxxx",
"azure_tts_service_region": "eastasia",

已经核对多次,日志应该打印请求的结果以便调试跟踪

好滴我确定下感谢

yihong0618 commented 2 months ago
"tts": "azure",
"tts_voice": "zh-CN-XiaoxiaoMultilingualNeural",
"azure_tts_speech_key": "9f77c100bff0479ebff74cxxxxxxxxxx",
"azure_tts_service_region": "eastasia",

已经核对多次,日志应该打印请求的结果以便调试跟踪

先更新下代码 试验了,我这里没问题,你不用 config 用 commad args 试试?

VectorZhao commented 2 months ago

command已经不记得咋搞了

yihong0618 commented 2 months ago

command已经不记得咋搞了

python3 xiaogpt.py --hardware LX06 --account xxx -password xxxx --use_chatgpt_api --mute_xiaoai --stream --tts azure --azure_tts_speech_key xxxx --azure_tts_service_region eastasia --api_base xxxxx

VectorZhao commented 2 months ago

python3 xiaogpt.py --hardware LX06 --mi_did xxxxxxxx --account 1xxxxxxxxx -password xxxxxxxxxx --use_chatgpt_api --mute_xiaoai --stream --tts azure --tts_voice zh-CN-XiaoxiaoMultilingualNeural --azure_tts_speech_key 9f77c100bff0479xxxxxxxxxxx --azure_tts_service_region eastasia --api_base https://xxxxx/v1 --openai_key sk-x xxxxxxxxx

Traceback (most recent call last):
  File "/Users/vectorzhao/Downloads/xiaogpt-main/xiaogpt.py", line 2, in <module>
    from xiaogpt.cli import main
  File "/Users/vectorzhao/Downloads/xiaogpt-main/xiaogpt/cli.py", line 5, in <module>
    from xiaogpt.xiaogpt import MiGPT
  File "/Users/vectorzhao/Downloads/xiaogpt-main/xiaogpt/xiaogpt.py", line 18, in <module>
    from xiaogpt.bot import get_bot
  File "/Users/vectorzhao/Downloads/xiaogpt-main/xiaogpt/bot/__init__.py", line 9, in <module>
    from xiaogpt.bot.langchain_bot import LangChainBot
  File "/Users/vectorzhao/Downloads/xiaogpt-main/xiaogpt/bot/langchain_bot.py", line 6, in <module>
    from langchain.memory import ConversationBufferWindowMemory
  File "/opt/homebrew/Caskroom/miniforge/base/lib/python3.10/site-packages/langchain/memory/__init__.py", line 55, in <module>
    from langchain.memory.entity import (
  File "/opt/homebrew/Caskroom/miniforge/base/lib/python3.10/site-packages/langchain/memory/entity.py", line 9, in <module>
    from langchain_core.prompts import BasePromptTemplate
  File "/opt/homebrew/Caskroom/miniforge/base/lib/python3.10/site-packages/langchain_core/prompts/__init__.py", line 27, in <module>
    from langchain_core.prompts.base import (
  File "/opt/homebrew/Caskroom/miniforge/base/lib/python3.10/site-packages/langchain_core/prompts/base.py", line 22, in <module>
    from langchain_core.output_parsers.base import BaseOutputParser
  File "/opt/homebrew/Caskroom/miniforge/base/lib/python3.10/site-packages/langchain_core/output_parsers/__init__.py", line 33, in <module>
    from langchain_core.output_parsers.xml import XMLOutputParser
  File "/opt/homebrew/Caskroom/miniforge/base/lib/python3.10/site-packages/langchain_core/output_parsers/xml.py", line 127, in <module>
    class XMLOutputParser(BaseTransformOutputParser):
  File "pydantic/main.py", line 204, in pydantic.main.ModelMetaclass.__new__
  File "pydantic/fields.py", line 488, in pydantic.fields.ModelField.infer
  File "pydantic/fields.py", line 419, in pydantic.fields.ModelField.__init__
  File "pydantic/fields.py", line 539, in pydantic.fields.ModelField.prepare
  File "pydantic/fields.py", line 801, in pydantic.fields.ModelField.populate_validators
  File "pydantic/validators.py", line 723, in find_validators
RuntimeError: no validator found for <class 're.Pattern'>, see `arbitrary_types_allowed` in Config
yihong0618 commented 2 months ago

python3 xiaogpt.py --hardware LX06 --mi_did xxxxxxxx --account 1xxxxxxxxx -password xxxxxxxxxx --use_chatgpt_api --mute_xiaoai --stream --tts azure --tts_voice zh-CN-XiaoxiaoMultilingualNeural --azure_tts_speech_key 9f77c100bff0479xxxxxxxxxxx --azure_tts_service_region eastasia --api_base https://xxxxx/v1 --openai_key sk-x xxxxxxxxx

Traceback (most recent call last):
  File "/Users/vectorzhao/Downloads/xiaogpt-main/xiaogpt.py", line 2, in <module>
    from xiaogpt.cli import main
  File "/Users/vectorzhao/Downloads/xiaogpt-main/xiaogpt/cli.py", line 5, in <module>
    from xiaogpt.xiaogpt import MiGPT
  File "/Users/vectorzhao/Downloads/xiaogpt-main/xiaogpt/xiaogpt.py", line 18, in <module>
    from xiaogpt.bot import get_bot
  File "/Users/vectorzhao/Downloads/xiaogpt-main/xiaogpt/bot/__init__.py", line 9, in <module>
    from xiaogpt.bot.langchain_bot import LangChainBot
  File "/Users/vectorzhao/Downloads/xiaogpt-main/xiaogpt/bot/langchain_bot.py", line 6, in <module>
    from langchain.memory import ConversationBufferWindowMemory
  File "/opt/homebrew/Caskroom/miniforge/base/lib/python3.10/site-packages/langchain/memory/__init__.py", line 55, in <module>
    from langchain.memory.entity import (
  File "/opt/homebrew/Caskroom/miniforge/base/lib/python3.10/site-packages/langchain/memory/entity.py", line 9, in <module>
    from langchain_core.prompts import BasePromptTemplate
  File "/opt/homebrew/Caskroom/miniforge/base/lib/python3.10/site-packages/langchain_core/prompts/__init__.py", line 27, in <module>
    from langchain_core.prompts.base import (
  File "/opt/homebrew/Caskroom/miniforge/base/lib/python3.10/site-packages/langchain_core/prompts/base.py", line 22, in <module>
    from langchain_core.output_parsers.base import BaseOutputParser
  File "/opt/homebrew/Caskroom/miniforge/base/lib/python3.10/site-packages/langchain_core/output_parsers/__init__.py", line 33, in <module>
    from langchain_core.output_parsers.xml import XMLOutputParser
  File "/opt/homebrew/Caskroom/miniforge/base/lib/python3.10/site-packages/langchain_core/output_parsers/xml.py", line 127, in <module>
    class XMLOutputParser(BaseTransformOutputParser):
  File "pydantic/main.py", line 204, in pydantic.main.ModelMetaclass.__new__
  File "pydantic/fields.py", line 488, in pydantic.fields.ModelField.infer
  File "pydantic/fields.py", line 419, in pydantic.fields.ModelField.__init__
  File "pydantic/fields.py", line 539, in pydantic.fields.ModelField.prepare
  File "pydantic/fields.py", line 801, in pydantic.fields.ModelField.populate_validators
  File "pydantic/validators.py", line 723, in find_validators
RuntimeError: no validator found for <class 're.Pattern'>, see `arbitrary_types_allowed` in Config

seems a bug let us fix it tomorrow @frostming

frostming commented 2 months ago

It was triggered by a single line of code:

from langchain_core.output_parsers.xml import XMLOutputParser

But I can't reproduce it locally.

@VectorZhao what is the version of pydantic installed in your environment?

VectorZhao commented 2 months ago

pydantic

pydantic 1.9.0 pypi_0 pypi pydantic-core 2.10.1 pypi_0 pypi

frostming commented 2 months ago

pydantic 1.9.0 pypi_0 pypi

This version is incompatible and does not meet the dependency version restrictions. How did you install this project? You can try installing this project again

VectorZhao commented 2 months ago

pydantic 1.9.0 pypi_0 pypi

This version is incompatible and does not meet the dependency version restrictions. How did you install this project? You can try installing this project again

I installed it according to the README.

❯ pip install miservice_fork
Requirement already satisfied: miservice_fork in /opt/homebrew/Caskroom/miniforge/base/lib/python3.10/site-packages (2.1.1)
Requirement already satisfied: aiohttp in /opt/homebrew/Caskroom/miniforge/base/lib/python3.10/site-packages (from miservice_fork) (3.8.6)
Requirement already satisfied: aiosignal>=1.1.2 in /opt/homebrew/Caskroom/miniforge/base/lib/python3.10/site-packages (from aiohttp->miservice_fork) (1.3.1)
Requirement already satisfied: charset-normalizer<4.0,>=2.0 in /opt/homebrew/Caskroom/miniforge/base/lib/python3.10/site-packages (from aiohttp->miservice_fork) (3.3.1)
Requirement already satisfied: yarl<2.0,>=1.0 in /opt/homebrew/Caskroom/miniforge/base/lib/python3.10/site-packages (from aiohttp->miservice_fork) (1.9.2)
Requirement already satisfied: multidict<7.0,>=4.5 in /opt/homebrew/Caskroom/miniforge/base/lib/python3.10/site-packages (from aiohttp->miservice_fork) (6.0.4)
Requirement already satisfied: async-timeout<5.0,>=4.0.0a3 in /opt/homebrew/Caskroom/miniforge/base/lib/python3.10/site-packages (from aiohttp->miservice_fork) (4.0.3)
Requirement already satisfied: attrs>=17.3.0 in /opt/homebrew/Caskroom/miniforge/base/lib/python3.10/site-packages (from aiohttp->miservice_fork) (23.1.0)
Requirement already satisfied: frozenlist>=1.1.1 in /opt/homebrew/Caskroom/miniforge/base/lib/python3.10/site-packages (from aiohttp->miservice_fork) (1.4.0)
Requirement already satisfied: idna>=2.0 in /opt/homebrew/Caskroom/miniforge/base/lib/python3.10/site-packages (from yarl<2.0,>=1.0->aiohttp->miservice_fork) (3.4)
VectorZhao commented 2 months ago
❯ pip install langchain
Requirement already satisfied: langchain in /opt/homebrew/Caskroom/miniforge/base/lib/python3.10/site-packages (0.1.16)
Requirement already satisfied: langchain-community<0.1,>=0.0.32 in /opt/homebrew/Caskroom/miniforge/base/lib/python3.10/site-packages (from langchain) (0.0.32)
Requirement already satisfied: langchain-core<0.2.0,>=0.1.42 in /opt/homebrew/Caskroom/miniforge/base/lib/python3.10/site-packages (from langchain) (0.1.42)
Requirement already satisfied: requests<3,>=2 in /opt/homebrew/Caskroom/miniforge/base/lib/python3.10/site-packages (from langchain) (2.31.0)
Requirement already satisfied: PyYAML>=5.3 in /opt/homebrew/Caskroom/miniforge/base/lib/python3.10/site-packages (from langchain) (6.0.1)
Requirement already satisfied: aiohttp<4.0.0,>=3.8.3 in /opt/homebrew/Caskroom/miniforge/base/lib/python3.10/site-packages (from langchain) (3.8.6)
Requirement already satisfied: langchain-text-splitters<0.1,>=0.0.1 in /opt/homebrew/Caskroom/miniforge/base/lib/python3.10/site-packages (from langchain) (0.0.1)
Requirement already satisfied: numpy<2,>=1 in /opt/homebrew/Caskroom/miniforge/base/lib/python3.10/site-packages (from langchain) (1.26.1)
Requirement already satisfied: pydantic<3,>=1 in /opt/homebrew/Caskroom/miniforge/base/lib/python3.10/site-packages (from langchain) (1.9.0)
Requirement already satisfied: dataclasses-json<0.7,>=0.5.7 in /opt/homebrew/Caskroom/miniforge/base/lib/python3.10/site-packages (from langchain) (0.6.4)
Requirement already satisfied: SQLAlchemy<3,>=1.4 in /opt/homebrew/Caskroom/miniforge/base/lib/python3.10/site-packages (from langchain) (2.0.29)
Requirement already satisfied: async-timeout<5.0.0,>=4.0.0 in /opt/homebrew/Caskroom/miniforge/base/lib/python3.10/site-packages (from langchain) (4.0.3)
Requirement already satisfied: jsonpatch<2.0,>=1.33 in /opt/homebrew/Caskroom/miniforge/base/lib/python3.10/site-packages (from langchain) (1.33)
Requirement already satisfied: langsmith<0.2.0,>=0.1.17 in /opt/homebrew/Caskroom/miniforge/base/lib/python3.10/site-packages (from langchain) (0.1.47)
Requirement already satisfied: tenacity<9.0.0,>=8.1.0 in /opt/homebrew/Caskroom/miniforge/base/lib/python3.10/site-packages (from langchain) (8.2.3)
Requirement already satisfied: attrs>=17.3.0 in /opt/homebrew/Caskroom/miniforge/base/lib/python3.10/site-packages (from aiohttp<4.0.0,>=3.8.3->langchain) (23.1.0)
Requirement already satisfied: multidict<7.0,>=4.5 in /opt/homebrew/Caskroom/miniforge/base/lib/python3.10/site-packages (from aiohttp<4.0.0,>=3.8.3->langchain) (6.0.4)
Requirement already satisfied: frozenlist>=1.1.1 in /opt/homebrew/Caskroom/miniforge/base/lib/python3.10/site-packages (from aiohttp<4.0.0,>=3.8.3->langchain) (1.4.0)
Requirement already satisfied: yarl<2.0,>=1.0 in /opt/homebrew/Caskroom/miniforge/base/lib/python3.10/site-packages (from aiohttp<4.0.0,>=3.8.3->langchain) (1.9.2)
Requirement already satisfied: aiosignal>=1.1.2 in /opt/homebrew/Caskroom/miniforge/base/lib/python3.10/site-packages (from aiohttp<4.0.0,>=3.8.3->langchain) (1.3.1)
Requirement already satisfied: charset-normalizer<4.0,>=2.0 in /opt/homebrew/Caskroom/miniforge/base/lib/python3.10/site-packages (from aiohttp<4.0.0,>=3.8.3->langchain) (3.3.1)
Requirement already satisfied: marshmallow<4.0.0,>=3.18.0 in /opt/homebrew/Caskroom/miniforge/base/lib/python3.10/site-packages (from dataclasses-json<0.7,>=0.5.7->langchain) (3.21.1)
Requirement already satisfied: typing-inspect<1,>=0.4.0 in /opt/homebrew/Caskroom/miniforge/base/lib/python3.10/site-packages (from dataclasses-json<0.7,>=0.5.7->langchain) (0.9.0)
Requirement already satisfied: jsonpointer>=1.9 in /opt/homebrew/Caskroom/miniforge/base/lib/python3.10/site-packages (from jsonpatch<2.0,>=1.33->langchain) (2.3)
Requirement already satisfied: packaging<24.0,>=23.2 in /opt/homebrew/Caskroom/miniforge/base/lib/python3.10/site-packages (from langchain-core<0.2.0,>=0.1.42->langchain) (23.2)
Requirement already satisfied: orjson<4.0.0,>=3.9.14 in /opt/homebrew/Caskroom/miniforge/base/lib/python3.10/site-packages (from langsmith<0.2.0,>=0.1.17->langchain) (3.10.0)
Requirement already satisfied: typing-extensions>=3.7.4.3 in /opt/homebrew/Caskroom/miniforge/base/lib/python3.10/site-packages (from pydantic<3,>=1->langchain) (4.8.0)
Requirement already satisfied: urllib3<3,>=1.21.1 in /opt/homebrew/Caskroom/miniforge/base/lib/python3.10/site-packages (from requests<3,>=2->langchain) (1.26.18)
Requirement already satisfied: certifi>=2017.4.17 in /opt/homebrew/Caskroom/miniforge/base/lib/python3.10/site-packages (from requests<3,>=2->langchain) (2023.7.22)
Requirement already satisfied: idna<4,>=2.5 in /opt/homebrew/Caskroom/miniforge/base/lib/python3.10/site-packages (from requests<3,>=2->langchain) (3.4)
Requirement already satisfied: mypy-extensions>=0.3.0 in /opt/homebrew/Caskroom/miniforge/base/lib/python3.10/site-packages (from typing-inspect<1,>=0.4.0->dataclasses-json<0.7,>=0.5.7->langchain) (1.0.0)
VectorZhao commented 2 months ago
❯ sw_vers

ProductName:        macOS
ProductVersion:     14.4.1
BuildVersion:       23E224

❯ sysctl -a | grep machdep.cpu.brand_string

machdep.cpu.brand_string: Apple M1
frostming commented 2 months ago

I mean reinstall xiaogpt, reinstalling langchain is not enough(But the error is triggered directly by langchain's code, there might be a bug with it).

frostming commented 2 months ago

And we also ships a requirements.txt, why not start from it

frostming commented 2 months ago

Because the PR has merged supporting this feature, close it now.

VectorZhao commented 2 months ago

最新版本已修复。

wwfcnu commented 2 months ago

zh-CN-XiaoxiaoMultilingualNeural (Female)怎么配置她的style:比如闲聊、主播之类的

yihong0618 commented 2 months ago

zh-CN-XiaoxiaoMultilingualNeural (Female)怎么配置她的style:比如闲聊、主播之类的

应该可以开个接口 @frostming

frostming commented 2 months ago

请注意 TTS 的方式变更,上个版本支持的 azure key 的配置方式有变化

zh-CN-XiaoxiaoMultilingualNeural (Female)怎么配置她的style:比如闲聊、主播之类的

Azure 变换风格和嗓音的方式是通过 SSML,目前不支持

wwfcnu commented 2 months ago

SDK用不了了,但是api还是可以调用,不知道是为什么

yihong0618 commented 2 months ago

更新到最新版

wwfcnu commented 2 months ago

更新到最新版

用的是最新版的azure-cognitiveservices-speech,前几天我还在用,突然就不行了

rockywangxiaolei commented 2 months ago

更新到最新版

用的是最新版的azure-cognitiveservices-speech,前几天我还在用,突然就不行了

可以用啊,我都在正常使用,设置的分区south east asia,可以看看是不是分区不提供了,改一下看看