哈喽,大家好,我是了不起。 最近小说推文的项目很火,主要路径是通过抖音视频为知乎盐选专栏小说导流,赚取推广费。前面文章介绍了用代码文本转语音,但是合成的语音比较生硬,没有抖音小姐姐的声音柔和动听,这里给大家介绍如何控制配音神器批量转语音。
webdriver是一种用于web应用程序的自动化测试工具,它提供了一套友好的API,Webdriver完全就是一套类库,不依赖与任何测试框架,除了必要的浏览器驱动,不需要启动其他进程或安装其他程序。 1、安装第三方库
import?pyautogui
import?pyperclip
2、注册配音神器会员 使用比较方便,有app也有网页端,有包月包年的不同产品,其中限时98元,终身会员最实惠,普通主播的无限次导出基本够用,如果需要超级主播的声音,大家可以另外选择。
首先通过把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)
由于配音神器对字数有限制,不超过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])
这样就批量得到了小说音频,可以分别保存到不同文件,方便后续制作。