重构
This commit is contained in:
@@ -0,0 +1,66 @@
|
||||
from gradio_client import Client, file, handle_file
|
||||
import asyncio
|
||||
import base64
|
||||
import io
|
||||
import json
|
||||
import os
|
||||
from datetime import datetime
|
||||
from nonebot import logger
|
||||
from PIL import Image, ImageOps, ImageDraw, ImageFont
|
||||
from nonebot.internal.params import ArgPlainText
|
||||
from nonebot.params import CommandArg
|
||||
from nonebot.typing import T_State
|
||||
from playwright.async_api import async_playwright
|
||||
from nonebot import on_command
|
||||
from nonebot.adapters.onebot.v11 import MessageEvent, Bot, MessageSegment, GroupMessageEvent, Message
|
||||
from nonebot.plugin import PluginMetadata
|
||||
from typing import Optional, Union
|
||||
from nonebot.matcher import Matcher
|
||||
|
||||
__plugin_meta__ = PluginMetadata(
|
||||
name="语音合成",
|
||||
description="太好玩了",
|
||||
usage="语音合成",
|
||||
type="application",
|
||||
extra={
|
||||
|
||||
}
|
||||
)
|
||||
|
||||
voice = on_command("voice", aliases={"语音合成"})
|
||||
|
||||
|
||||
@voice.handle()
|
||||
async def make_voice(ev: MessageEvent, rgs: Message = CommandArg()):
|
||||
text = rgs.extract_plain_text()
|
||||
if text is None:
|
||||
await voice.finish("缺少文本")
|
||||
return
|
||||
await voice.send("生成中...请耐心等待")
|
||||
client = Client("http://localhost:9872/")
|
||||
result = client.predict(
|
||||
text=f"{text}",
|
||||
text_lang="中文",
|
||||
ref_audio_path=handle_file(
|
||||
"D:\RVC\LJ\雷军_年度演讲.wav"),
|
||||
aux_ref_audio_paths=[],
|
||||
prompt_text="全球今天的消费者买手机,每六个人至少有一个人买的是小米手机",
|
||||
prompt_lang="中文",
|
||||
top_k=15,
|
||||
top_p=1,
|
||||
temperature=1,
|
||||
text_split_method="按标点符号切",
|
||||
batch_size=20,
|
||||
speed_factor=1,
|
||||
ref_text_free=False,
|
||||
split_bucket=True,
|
||||
fragment_interval=0.25,
|
||||
seed=-1,
|
||||
keep_random=True,
|
||||
parallel_infer=True,
|
||||
repetition_penalty=1.35,
|
||||
api_name="/inference"
|
||||
)
|
||||
audio_path = result[0]
|
||||
message = MessageSegment.record(audio_path)
|
||||
await voice.finish(message)
|
||||
Reference in New Issue
Block a user