vLLM+glm-4-9b-chat+chatTTS

colab脚本

https://colab.research.google.com/drive/12ZeWOwPUYqY74WMLqR-0MvBCsP7W5qaK?usp=sharing

安装和配置

conda create -n myenv python=3.9 -y
conda activate myenv
pip install vllm

开启API接口


##通用模型localhost
python -m vllm.entrypoints.openai.api_server --model NousResearch/Meta-Llama-3-8B-Instruct --dtype auto --api-key token-abc123

##通用模型公网访问
python -m vllm.entrypoints.openai.api_server --model NousResearch/Meta-Llama-3-8B-Instruct --dtype auto --api-key token-abc123 --host 0.0.0.0

##glm-4-9b的公网访问 
##需要将 trust_remote_code 选项设置为 True
python -m vllm.entrypoints.openai.api_server --model THUDM/glm-4-9b-chat --dtype auto --api-key token-abc123 --host 0.0.0.0 --trust-remote-code

chatTTS配置

ChatTTS是专门为对话场景设计的文本转语音模型,例如LLM助手对话任务。它支持英文和中文两种语言。最大的模型使用了10万小时以上的中英文数据进行训练。在HuggingFace中开源的版本为4万小时训练且未SFT的版本.


##https://pydigger.com/pypi/chattts-fork

conda create --name chattts -y

conda activate chattts

mkdir chattts
cd chattts

pip install chattts-fork

chattts hello,world

##查看帮助命令
chattts -h

chatTTS在终端中使用

#女性
chattts -s 2 '你好 今天天气怎么样呀.'

#男性
chattts -s 3333 '你好 今天天气怎么样呀.'

男性

Seedagestyle
111youngLiterary
333youngGentle
666middle-agedWhite-collar
7777middle-agedHong Kong-style
9999middle-agedDeep and resonant

女性

Seedagestyle
2youngEmotionally rich
4middle-agedDeeply emotional
1111middle-agedClear and pure
3333middle-agedCalm and serene

chatTTS代码

##项目代码和视频由AI超元域频道原创,禁止盗搬
import subprocess

def run_chattts(text):
    command = f"chattts -s 2 '{text}'"
    try:
        result = subprocess.run(command, shell=True, check=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
        return result.stdout.decode('utf-8')
    except subprocess.CalledProcessError as e:
        print(f"Error: {e}")
        print(f"Output: {e.stdout.decode('utf-8')}")
        print(f"Error: {e.stderr.decode('utf-8')}")
        return None

# 测试
text = "你好 今天天气怎么样呀."
output = run_chattts(text)
if output:
    print(output)

chatTTS调用autogen的代码


##安装autogen
pip install pyautogen
##项目代码和视频由AI超元域频道原创,禁止盗搬
import subprocess
import shlex

def run_chattts(text, output_file, speaker_index):
    # 对文本进行转义和格式化
    escaped_text = shlex.quote(text)
    
    # 根据说话者的索引选择不同的声音参数
    if speaker_index % 2 == 0:
        voice_param = "-s 2"  # 女性声音
    else:
        voice_param = "-s 666"  # 男性声音
    
    command = f"chattts {voice_param} -o {output_file} {escaped_text}"
    try:
        subprocess.run(command, shell=True, check=True)
    except subprocess.CalledProcessError as e:
        print(f"Error: {e}")
        print(f"Output: {e.stdout}")
        print(f"Error: {e.stderr}")

gpt4 = {
    "config_list": [
        {
            "model": "gpt-4",
            "base_url": "https://api.openai.com/v1",

            "api_key": "sk-proj-bw8wKQbsn0NclaecvN6MT3BlbkFJYwnSpU1VcPtkSEP17sGF",
        },
    ],
    "cache_seed": None,  # Disable caching.
}

glm = {
    "config_list": [
        {
            "model": "THUDM/glm-4-9b-chat",
            "base_url": "http://216.81.245.215:8000/v1/",
            "api_key": "token-abc123",
        },
    ],
    "cache_seed": None,  # Disable caching.
}

from autogen import ConversableAgent

Darcy = ConversableAgent(
    "Darcy (glm)",
    llm_config=glm,
    system_message="你是《傲慢与偏见》中的男主角达西先生。你是一位富有、高傲但内心善良的绅士。你对伊丽莎白的智慧和独立性格印象深刻,但又常常被她的言语所挑战。请根据伊丽莎白的发言,以达西的口吻和性格进行回应。",
)
Elizabeth = ConversableAgent(
    "Elizabeth (gpt4)",
    llm_config=gpt4,
    system_message="你是《傲慢与偏见》中的女主角伊丽莎白。你是一位聪慧、独立且性格开朗的年轻女性。你对达西先生的傲慢和自负初impression不佳,但渐渐被他的真诚和善良所吸引。请根据达西先生的发言,以伊丽莎白的口吻和性格进行回应。",
)

chat_result = Elizabeth.initiate_chat(Darcy, message="达西先生,我们在上次的舞会上初次见面,我对您的第一印象是傲慢和自负。您几乎没有和任何女士跳舞,只是站在那里评判别人。我想知道,您为什么给人这样的印象?您真的如此高傲,还是有什么其他的原因?请告诉我您的想法。", max_turns=5)

# 生成音频文件
for i, message in enumerate(chat_result.chat_history):
    text = message["content"]
    output_file = f"output_{i}.wav"
    run_chattts(text, output_file, i)

🔥如有问题请联系我的徽信 stoeng

🔥🔥🔥本项目代码由AI超元域频道制作,观看更多大模型微调视频请访问我的频道⬇

👉👉👉我的哔哩哔哩频道

👉👉👉我的YouTube频道