打开/关闭搜索
搜索
打开/关闭菜单
12
16
46
348
【VOCAKEY.WIKI】VOCAKEY愿你唱出心中的歌
导航
首页
最近更改
随机页面
MediaWiki帮助
特殊页面
上传文件
打开/关闭外观设置菜单
通知
打开/关闭个人菜单
未登录
未登录用户的IP地址会在进行任意编辑后公开展示。
user-interface-preferences
个人工具
创建账号
登录
查看“︁Use-v4v3v2lib-on-v5v6”︁的源代码
来自【VOCAKEY.WIKI】VOCAKEY愿你唱出心中的歌
分享此页面
查看
阅读
查看源代码
查看历史
associated-pages
页面
讨论
更多操作
←
Use-v4v3v2lib-on-v5v6
因为以下原因,您没有权限编辑该页面:
您请求的操作仅限属于这些用户组的用户执行:
用户
、
管理员
、editor
您可以查看和复制此页面的源代码。
== VOCALOID5/6不识别V4/3/2声库的解决方案 == === VocaReg === 来源:https://www.reddit.com/r/VocaTorrent/comments/1i9ygzg 作者:Kartoffelkeks87 由于直接分享文件的链接可能频繁失效,这里给出使用源代码自行编译的教程。别担心,这并不复杂。 ==== 1.准备工作 ==== ===== 1.1 获取源代码===== * VocaReg 34: https://pastebin.com/kmH3iLGy<nowiki/>——让V5和V6编辑器读取到V3声库,V3版本的V2声库和V4的声库。'''一般来说,您应该选择这个。''' * VocaReg Legacy 2: https://pastebin.com/GPgn8i5n<nowiki/>——让V5编辑器读取到V2声库(纯V2) * VocaReg Legacy 3: https://pastebin.com/x61rappB<nowiki/>——让V5编辑器读取到V3版本的V2声库 您可以选择访问以上链接或复制此处代码 ===== 以下为源代码(过长 为保证阅读 已经折叠) ===== VocaReg 34 <div class="mw-collapsible mw-collapsed" style="border:1px solid #ddd;padding:4px;"> <pre> ; ; VocaReg 34.au3 ; Version 1.1 ; 25.01.2025 ; Copyright (c) 2025, Kartoffelkeks87 ; ; This file is distributed under the Creative Commons 4.0 CC BY-NC-SA ; https://creativecommons.org/licenses/by-nc-sa/4.0/legalcode ; #RequireAdmin #include <MsgBoxConstants.au3> Global $sScriptTitle = "VocaReg" Global $sKeys[4][3] $sKeys[0][0] = "HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\VOCALOID3\DATABASE\VOICE2" $sKeys[0][1] = "HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\POCALOID3\DATABASE\VOICE2" $sKeys[0][2] = "HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\VCLDASGN3\DATABASE\VOICE2" $sKeys[1][0] = "HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\VOCALOID3\DATABASE\VOICE3" $sKeys[1][1] = "HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\POCALOID3\DATABASE\VOICE3" $sKeys[1][2] = "HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\VCLDASGN3\DATABASE\VOICE3" $sKeys[2][0] = "HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\VOCALOID4\DATABASE" $sKeys[2][1] = "HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\POCALOID4\DATABASE" $sKeys[2][2] = "HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\VCLDFREE4\DATABASE" $sKeys[3][0] = "HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\VOCALOID4\DATABASE41" $sKeys[3][1] = "HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\POCALOID4\DATABASE41" $sKeys[3][2] = "HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\VCLDFREE4\DATABASE41" Global $aRegValueType[12] = ["REG_NONE", "REG_SZ", "REG_EXPAND_SZ", "REG_BINARY", _ "REG_DWORD", "REG_DWORD", "REG_LINK", _ "REG_MULTI_SZ", "REG_RESOURCE_LIST", "REG_FULL_RESOURCE_DESCRIPTOR", _ "REG_RESOURCE_REQUIREMENTS_LIST", "REG_QWORD"] Func ProcessKeys($sSource, $sDest) For $i = 1 To 256 Local $sKey = RegEnumKey($sSource, $i) If @error then ExitLoop ConsoleWrite($sSource & '\' & $sKey & @CRLF) CopyKey($sSource & '\' & $sKey, $sDest & '\' & $sKey) Next EndFunc Func CopyKey($sSourceKey, $sDestKey) Local $sName = RegRead($sSourceKey, "NAME") If @error Then return Local $sPath = RegRead($sSourceKey, "PATH") If @error Then return Local $iInstalled = RegRead($sSourceKey, "INSTALLED") If @error Then return If $iInstalled <> 1 Then return Local $sTime = RegRead($sSourceKey, "TIME") If @error Then $sTime = "BHMN74F9ED86FKAB" Local $sDRP = RegRead($sSourceKey, "DRP") If @error Then $sDRP = "0B0032" Local $sKey = RegRead($sSourceKey & "\KEYS", "default") If @error Then $sKey = "c845cfd4b8a90614d5b0f09eba7144d1" RegWrite($sDestKey, "NAME", "REG_SZ", $sName) RegWrite($sDestKey, "PATH", "REG_SZ", $sPath) RegWrite($sDestKey, "INSTALLED", "REG_DWORD", 1) RegWrite($sDestKey, "TIME", "REG_SZ", $sTime) RegWrite($sDestKey, "DRP", "REG_SZ", $sDRP) RegWrite($sDestKey & "\KEYS", "default", "REG_SZ", $sKey) CloneKeys($sSourceKey & "\Presets", $sDestKey & "\Presets") EndFunc Func CloneKeys($sSource, $sDest) For $i = 1 To 256 Local $sValue = RegEnumVal($sSource, $i) If @error then ExitLoop Local $iType = @extended Local $sData = RegRead($sSource, $sValue) ;ConsoleWrite($aRegValueType[$iType] & ' - ' & $sValue & ': ' & $sData & @CRLF) RegWrite($sDest, $sValue, $aRegValueType[$iType], $sData) If @error Then MsgBox($MB_OK + $MB_ICONERROR, $sScriptTitle, "Error writing registry.") Next For $i = 1 To 256 Local $sKey = RegEnumKey($sSource, $i) If @error then ExitLoop ;ConsoleWrite($sSource & '\' & $sKey & @CRLF) CloneKeys($sSource & '\' & $sKey, $sDest & '\' & $sKey) Next EndFunc If MsgBox($MB_YESNO, $sScriptTitle, "Register all Vocaloid 3/4 FE voices for Vocaloid 5/6?") = $IDYES Then For $iKey = 0 To UBound($sKeys)-1 For $iSubKey = 1 To UBound($sKeys,2)-1 ProcessKeys($sKeys[$iKey][$iSubKey], $sKeys[$iKey][0]) Next Next ConsoleWrite(@CRLF & $sScriptTitle & " by Kartoffelkeks87") MsgBox(0, $sScriptTitle, "Finished!" & @CRLF & @CRLF & $sScriptTitle & " by Kartoffelkeks87") Else ConsoleWrite("Abort by user.") EndIf </pre> </div> VocaReg Legacy 2 <div class="mw-collapsible mw-collapsed" style="border:1px solid #ddd;padding:4px;"> <pre> ; ; VocaReg Legacy 2.au3 ; Version 1.0 ; 27.05.2021 ; Copyright (c) 2021, Kartoffelkeks87 ; ; This file is distributed under the Creative Commons 4.0 CC BY-NC-SA ; https://creativecommons.org/licenses/by-nc-sa/4.0/legalcode ; #RequireAdmin #include <Array.au3> #include <MsgBoxConstants.au3> Global $sScriptTitle = "VocaReg Legacy 2" Global $sSrcKeys2[3] $sSrcKeys2[0] = "HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\VOCALOID2\DATABASE\VOICE\" $sSrcKeys2[1] = "HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\POCALOID2\DATABASE\VOICE\" $sSrcKeys2[2] = "HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\FOCALOID2\DATABASE\VOICE\" Global $sDestKey = "HKEY_LOCAL_MACHINE64\SOFTWARE\VOCALOID5\Voice\Components\" Global $aList[0][6] Global $sList For $iKey = 0 To UBound($sSrcKeys2)-1 For $i = 1 To 256 Local $sKey = RegEnumKey($sSrcKeys2[$iKey], $i) If @error Then ExitLoop Local $sPath = RegRead($sSrcKeys2[$iKey] & $sKey, "INSTALLDIR") If @error Then ContinueLoop Local $sName = RegRead($sSrcKeys2[$iKey] & $sKey, "NAME") If Not @error Then Local $aName = StringRegExp($sName, "(?i)\((.*?)\)", $STR_REGEXPARRAYGLOBALMATCH, 1) If Not @error Then $sName = $aName[0] If UBound($aName) > 1 Then $sName = $sName & " (" & $aName[1] & ")" EndIf Else $sName = $sPath If StringRight($sName, 1) = '\' Then $sName = StringTrimRight($sName, 1) $aName = StringSplit($sName, "\") $sName = $aName[UBound($aName)-1] $sName = StringReplace($sName, "\", " ") EndIf $sName = StringReplace($sName, "_", " ") & " (v2)" Local $sTime = RegRead($sSrcKeys2[$iKey] & $sKey, "TIME") If @error Then $sTime = "BKLHK5E5TNTKW5D6" Local $sDRP = RegRead($sSrcKeys2[$iKey] & $sKey, "DRP") If @error Then $sDRP = "060011" Local $sReg = RegRead($sSrcKeys2[$iKey] & $sKey & "\KEYS", "default") If @error Then $sReg = "65a9e9e2d3076f4d0839f883ad4f20f8" If _ArraySearch($aList, $sKey, 0, 0, 0, 0, 1, 0) = -1 Then _ArrayAdd($aList, $sKey, 0) $aList[UBound($aList)-1][1] = $sName $aList[UBound($aList)-1][2] = $sPath $aList[UBound($aList)-1][3] = $sTime $aList[UBound($aList)-1][4] = $sDRP $aList[UBound($aList)-1][5] = $sReg $sList = $sList & $sName & @CRLF ConsoleWrite($sKey & " " & $sName & " found." & @CRLF) Else ConsoleWrite($sKey & " " & $sName & " already in list." & @CRLF) EndIf Next Next If MsgBox($MB_YESNO, $sScriptTitle, UBound($aList) & " Vocaloid2 voices found:" & @CRLF & @CRLF & $sList & @CRLF & @CRLF & "Register all for Vocaloid5?") = $IDYES Then For $i = 0 To UBound($aList)-1 Local $sID = $aList[$i][0] Local $sName = $aList[$i][1] Local $sPath = $aList[$i][2] Local $sTime = $aList[$i][3] Local $sDRP = $aList[$i][4] Local $sReg = $aList[$i][5] RegWrite($sDestKey & $sID, "Name", "REG_SZ", $sName) If @error Then If @error Then MsgBox($MB_OK + $MB_ICONERROR, $sScriptTitle, "Error writing registry.") EndIf RegWrite($sDestKey & $sID, "BankName", "REG_SZ", $sName) RegWrite($sDestKey & $sID, "Path", "REG_SZ", $sPath) RegWrite($sDestKey & $sID, "Date", "REG_SZ", $sTime) RegWrite($sDestKey & $sID, "DRP", "REG_SZ", $sDRP) RegWrite($sDestKey & $sID, "Key", "REG_SZ", $sReg) RegWrite($sDestKey & $sID & "\Version", "Major", "REG_DWORD", 5) RegWrite($sDestKey & $sID & "\Version", "Minor", "REG_DWORD", 0) RegWrite($sDestKey & $sID & "\Version", "Revision", "REG_DWORD", 1) ConsoleWrite(@error & '>') Next ConsoleWrite(@CRLF & $sScriptTitle & " by Kartoffelkeks87") MsgBox(0, $sScriptTitle, "Finished!" & @CRLF & @CRLF & $sScriptTitle & " by Kartoffelkeks87") Else ConsoleWrite("Abort by user.") EndIf </pre> </div> VocaReg Legacy 3 <div class="mw-collapsible mw-collapsed" style="border:1px solid #ddd;padding:4px;"> <pre> ; ; VocaReg Legacy 3.au3 ; Version 1.0 ; 27.05.2021 ; Copyright (c) 2021, Kartoffelkeks87 ; ; This file is distributed under the Creative Commons 4.0 CC BY-NC-SA ; https://creativecommons.org/licenses/by-nc-sa/4.0/legalcode ; #RequireAdmin #include <Array.au3> #include <MsgBoxConstants.au3> Global $sScriptTitle = "VocaReg Legacy 3" Global $sSrcKeys3[3] $sSrcKeys3[0] = "HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\VOCALOID3\DATABASE\VOICE2\" $sSrcKeys3[1] = "HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\POCALOID3\DATABASE\VOICE2\" $sSrcKeys3[2] = "HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\VCLDASGN3\DATABASE\VOICE2\" Global $sDestKey = "HKEY_LOCAL_MACHINE64\SOFTWARE\VOCALOID5\Voice\Components\" Global $aList[0][6] Global $sList For $iKey = 0 To UBound($sSrcKeys3)-1 For $i = 1 To 256 Local $sKey = RegEnumKey($sSrcKeys3[$iKey], $i) If @error Then ExitLoop Local $sPath = RegRead($sSrcKeys3[$iKey] & $sKey, "PATH") If @error Then ContinueLoop Local $sName = RegRead($sSrcKeys3[$iKey] & $sKey, "NAME") If Not @error Then Local $aName = StringRegExp($sName, "(?i)\((.*?)\)", $STR_REGEXPARRAYGLOBALMATCH, 1) If Not @error Then $sName = $aName[0] If UBound($aName) > 1 Then $sName = $sName & " (" & $aName[1] & ")" $sName = StringReplace($sName, "_", " ") EndIf Else $sName = $sPath If StringRight($sName, 1) = '\' Then $sName = StringTrimRight($sName, 1) $aName = StringSplit($sName, "\") $sName = $aName[UBound($aName)-1] $sName = StringReplace($sName, "\", " ") & " (V2)" EndIf $sName = StringReplace($sName, "_", " ") $sKey = RegRead($sSrcKeys3[$iKey] & $sKey, "ORGID") If @error Then MsgBox($MB_OK + $MB_ICONERROR, $sScriptTitle, "Error reading key.") Local $sTime = RegRead($sSrcKeys3[$iKey] & $sKey, "TIME") If @error Then $sTime = "BKLHK5E5TNTKW5D6" Local $sDRP = RegRead($sSrcKeys3[$iKey] & $sKey, "DRP") If @error Then $sDRP = "060011" Local $sReg = RegRead($sSrcKeys3[$iKey] & $sKey & "\KEYS", "default") If @error Then $sReg = "65a9e9e2d3076f4d0839f883ad4f20f8" If _ArraySearch($aList, $sKey, 0, 0, 0, 0, 1, 0) = -1 Then _ArrayAdd($aList, $sKey, 0) $aList[UBound($aList)-1][1] = $sName $aList[UBound($aList)-1][2] = $sPath $aList[UBound($aList)-1][3] = $sTime $aList[UBound($aList)-1][4] = $sDRP $aList[UBound($aList)-1][5] = $sReg $sList = $sList & $sName & @CRLF ConsoleWrite($sKey & " " & $sName & " found." & @CRLF) Else ConsoleWrite($sKey & " " & $sName & " already in list." & @CRLF) EndIf Next Next If MsgBox($MB_YESNO, $sScriptTitle, UBound($aList) & " Vocaloid3 V2 voices found:" & @CRLF & @CRLF & $sList & @CRLF & @CRLF & "Register all for Vocaloid5?") = $IDYES Then For $i = 0 To UBound($aList)-1 Local $sID = $aList[$i][0] Local $sName = $aList[$i][1] Local $sPath = $aList[$i][2] Local $sTime = $aList[$i][3] Local $sDRP = $aList[$i][4] Local $sReg = $aList[$i][5] RegWrite($sDestKey & $sID, "Name", "REG_SZ", $sName) If @error Then If @error Then MsgBox($MB_OK + $MB_ICONERROR, $sScriptTitle, "Error writing registry.") EndIf RegWrite($sDestKey & $sID, "BankName", "REG_SZ", $sName) RegWrite($sDestKey & $sID, "Path", "REG_SZ", $sPath) RegWrite($sDestKey & $sID, "Date", "REG_SZ", $sTime) RegWrite($sDestKey & $sID, "DRP", "REG_SZ", $sDRP) RegWrite($sDestKey & $sID, "Key", "REG_SZ", $sReg) RegWrite($sDestKey & $sID & "\Version", "Major", "REG_DWORD", 5) RegWrite($sDestKey & $sID & "\Version", "Minor", "REG_DWORD", 0) RegWrite($sDestKey & $sID & "\Version", "Revision", "REG_DWORD", 1) ConsoleWrite(@error & '>') Next ConsoleWrite(@CRLF & $sScriptTitle & " by Kartoffelkeks87") MsgBox(0, $sScriptTitle, "Finished!" & @CRLF & @CRLF & $sScriptTitle & " by Kartoffelkeks87") Else ConsoleWrite("Abort by user.") EndIf </pre> </div> * 如果选择访问链接,您会在网页中看到“download”按钮,点击即可。 * 您也可以新建文本文档然后复制代码并保存。 至此,您应该获得了xx.txt,请将后缀修改为.au3(如VocaReg 34.au3)。 ===== 1.2 获取AutoIt工具 ===== 点击下载<nowiki/>https://www.autoitscript.com/cgi-bin/getfile.pl?autoit3/autoit-v3.zip ,解压到合适的地方。 ==== 2.将源代码编译成exe ==== 解压后您应当可以在图示路径找到Aut2exe_x64.exe<br>https://s2.loli.net/2025/12/02/WaimS4IFdlqK9Mc.png<br>打开后如图设置(文件路径请根据您的实际情况修改),点击Convert<br>https://s2.loli.net/2025/12/02/s7urEm84CwlSWdY.png ==== 3.运行exe ==== 如果一切顺利,它会显示成功了。您可以打开编辑器检查是否有效,然后您可以将刚刚下载的文件全部删除,您不再需要它们了。
返回
Use-v4v3v2lib-on-v5v6
。
查看“︁Use-v4v3v2lib-on-v5v6”︁的源代码
来自【VOCAKEY.WIKI】VOCAKEY愿你唱出心中的歌