小说推文之自动配音神器

1 前言

哈喽,大家好,我是了不起。 最近小说推文的项目很火,主要路径是通过抖音视频为知乎盐选专栏小说导流,赚取推广费。前面文章介绍了用代码文本转语音,但是合成的语音比较生硬,没有抖音小姐姐的声音柔和动听,这里给大家介绍如何控制配音神器批量转语音。

2 准备

webdriver是一种用于web应用程序的自动化测试工具,它提供了一套友好的API,Webdriver完全就是一套类库,不依赖与任何测试框架,除了必要的浏览器驱动,不需要启动其他进程或安装其他程序。 1、安装第三方库

import pyautogui
import pyperclip

2、注册配音神器会员 使用比较方便,有app也有网页端,有包月包年的不同产品,其中限时98元,终身会员最实惠,普通主播的无限次导出基本够用,如果需要超级主播的声音,大家可以另外选择。

3 模拟鼠标

首先通过把pyautogui.PAUSE设置成float或int时间(秒),可以为所有的PyAutoGUI函数增加延迟。默认延迟时间是0.1秒。我们一般设置为0.5秒。先在任务栏切换当前页面到浏览器。

def task_area():
    # 将鼠标移动至(100,200)任务栏
    pyautogui.moveTo(51, 125)
    pyautogui.leftClick()

鼠标先移动到左上角输入框的位置,左键单击,Ctrl+a全选,删除后,将剪贴板中的小说名称复制。这里字母Ctrl+a和Ctrl+v中字母必须是小写,如果是大写时,则会带上shift,在浏览器中Ctrl+Shift+A是搜索标签页的快捷键,不能进入全选。

def peiyin(name, text):
    pyautogui.moveTo(360, 188)
    pyautogui.leftClick()
    # 字母是大写时,则会带上shift
    pyautogui.hotkey('Ctrl', 'a', interval=0.1)
    pyautogui.press("Delete")
    pyperclip.copy(name)
    pyautogui.hotkey('Ctrl', 'v')

    pyautogui.moveTo(600, 600)
    pyautogui.leftClick()
    pyautogui.hotkey('Ctrl', 'a', interval=0.1)
    pyautogui.press("Delete")
    pyperclip.copy(text)
    pyautogui.hotkey('Ctrl', 'v')

    pyautogui.moveTo(1690, 178)
    pyautogui.leftClick()
    time.sleep(40)
    pyautogui.moveTo(1777, 176)
    pyautogui.leftClick()
    time.sleep(10)

4 切分文本

由于配音神器对字数有限制,不超过5000字,对较长的小说文本需要先拆分。通常拆成三段,且需要以句号结尾,保证是完整的断句。

def split_file(file_str,num):
        if file_str.__len__() <= 0: return
        i = 0
        len = int(file_str.__len__() / num)
        sub = []
        while i < num:
            substr = file_str[0:len]
            index = substr.rfind('。')
            if index <= 0 :
                print("。 is not exist")
                return
            substr = file_str[0:index+ 1]
            sub.append(substr)
            file_str = file_str[(index + 1):]
            i = i + 1
            if(file_str.__len__() < len):
                break
        return sub

按sub长度循环,获取每一段文本,调用前面的peiyin()方法,下载音频文件。

sub = string_util.split_file(text, 3)
     for i in range(sub.__len__()):
            gui_util.peiyin(name + '({})'.format(i+1), sub[i])

这样就批量得到了小说音频,可以分别保存到不同文件,方便后续制作。

posted @ 2024-02-01 08:04  木头左  阅读(40)  评论(0编辑  收藏  举报