Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
L
live-management-web
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
haojie
live-management-web
Commits
43a0654c
Commit
43a0654c
authored
Aug 15, 2023
by
haojie
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
v2最后一次提交
parent
ee229ea4
Hide whitespace changes
Inline
Side-by-side
Showing
11 changed files
with
241 additions
and
34 deletions
+241
-34
src/assets/svg/home/action.svg
+11
-0
src/constants/token.ts
+7
-0
src/pages/createAction/index.vue
+7
-0
src/pages/createLive/components/ChoseDigitalPerson.vue
+11
-0
src/pages/createLive/components/scripts.vue
+4
-8
src/pages/createLive/index.vue
+115
-8
src/pages/home/index.vue
+18
-0
src/router/tool.ts
+4
-0
src/service/CreateLive.ts
+17
-0
src/utils/polyfills.ts
+18
-18
src/utils/tool.ts
+29
-0
No files found.
src/assets/svg/home/action.svg
0 → 100644
View file @
43a0654c
<svg
width=
"33"
height=
"33"
viewBox=
"0 0 33 33"
fill=
"none"
xmlns=
"http://www.w3.org/2000/svg"
xmlns:xlink=
"http://www.w3.org/1999/xlink"
>
<rect
width=
"33"
height=
"33"
fill=
"url(#pattern0)"
/>
<defs>
<pattern
id=
"pattern0"
patternContentUnits=
"objectBoundingBox"
width=
"1"
height=
"1"
>
<use
xlink:href=
"#image0_1587_656"
transform=
"scale(0.00195312)"
/>
</pattern>
<image
id=
"image0_1587_656"
width=
"512"
height=
"512"
xlink:href=
"data:image/png;base64,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"
/>
</defs>
</svg>
\ No newline at end of file
src/constants/token.ts
View file @
43a0654c
...
...
@@ -99,6 +99,13 @@ export const getRoutes = () => {
component
:
()
=>
import
(
'@/pages/VocalCustomization/index.vue'
),
meta
:
{
title
:
'snowhome'
,
keepAlive
:
true
},
},
// 动作创建
{
path
:
routerConfig
.
createAction
.
path
,
name
:
routerConfig
.
createAction
.
name
,
component
:
()
=>
import
(
'@/pages/createAction/index.vue'
),
meta
:
{
title
:
'snowhome'
,
keepAlive
:
true
},
},
];
}
};
...
...
src/pages/createAction/index.vue
0 → 100644
View file @
43a0654c
<
template
>
<div
class=
""
></div>
</
template
>
<
script
lang=
"ts"
setup
></
script
>
<
style
lang=
"less"
scoped
></
style
>
src/pages/createLive/components/ChoseDigitalPerson.vue
View file @
43a0654c
...
...
@@ -163,13 +163,16 @@ const digitalList = reactive({
const
findIdinList
=
()
=>
{
if
(
route
.
query
.
id
)
{
let
status
=
0
;
// 找到对应的id
let
index1
=
digitalList
.
my
.
findIndex
((
item
:
any
)
=>
item
.
id
==
route
.
query
.
id
);
if
(
index1
!==
-
1
)
{
status
=
1
;
currentCard
.
value
=
digitalList
.
my
[
index1
].
id
;
}
let
index2
=
digitalList
.
admin
.
findIndex
((
item
:
any
)
=>
item
.
id
==
route
.
query
.
id
);
if
(
index2
!==
-
1
)
{
status
=
2
;
currentCard
.
value
=
digitalList
.
admin
[
index2
].
id
;
}
if
(
currentCard
.
value
)
{
...
...
@@ -177,6 +180,14 @@ const findIdinList = () => {
[
createLiveKeys
.
id
]:
currentCard
.
value
,
};
commitInfo
(
params
);
let
row
=
{};
if
(
status
==
1
)
{
row
=
digitalList
.
my
.
find
((
item
:
any
)
=>
item
.
id
==
currentCard
.
value
);
}
else
if
(
status
==
2
)
{
row
=
digitalList
.
admin
.
find
((
item
:
any
)
=>
item
.
id
==
currentCard
.
value
);
}
// 更新右侧的视频
getVideoPath
(
row
);
}
}
};
...
...
src/pages/createLive/components/scripts.vue
View file @
43a0654c
...
...
@@ -29,13 +29,7 @@
>
测试文案
</Button
>
</
template
>
<div
class=
"right-chose-tones"
:style=
"{
width: !lists.soundColor.length ? '120px' : '',
}"
v-show=
"currentOption === scriptTypeText"
>
<div
class=
"right-chose-tones"
v-show=
"currentOption === scriptTypeText"
>
<div
@
click=
"tonesVisible = true"
class=
"default-label"
>
<SelectionPopup
v-model=
"tonesVisible"
...
...
@@ -632,7 +626,6 @@ onMounted(async () => {
align-items
:
center
;
flex
:
0
0
auto
;
.right-chose-tones
{
width
:
245px
;
height
:
50px
;
border-radius
:
6px
;
border
:
1px
solid
#0dd
;
...
...
@@ -645,6 +638,9 @@ onMounted(async () => {
font-weight
:
600
;
font-size
:
@
size-14
;
cursor
:
pointer
;
height
:
100%
;
.dja();
width
:
120px
;
}
.default-add
{
color
:
rgb
(
180
,
180
,
180
);
...
...
src/pages/createLive/index.vue
View file @
43a0654c
...
...
@@ -73,7 +73,15 @@ import HomeSvg from '@/assets/svg/createLive/home.svg';
import
InteractSvg
from
'@/assets/svg/createLive/interact.svg'
;
import
ScriptsSvg
from
'@/assets/svg/createLive/scripts.svg'
;
import
{
computed
,
onBeforeMount
,
ref
,
onBeforeUnmount
,
onActivated
}
from
'vue'
;
import
{
getElBounding
,
show_message
,
DataType
,
dimensionalConvert
,
ecursionDeepCopy
,
getFile
}
from
'@/utils/tool'
;
import
{
getElBounding
,
show_message
,
DataType
,
dimensionalConvert
,
ecursionDeepCopy
,
getFile
,
getFileSuffixInUrl
,
}
from
'@/utils/tool'
;
import
{
getDurationOfAudioFile
}
from
'@/utils/audio'
;
import
{
useStore
}
from
'vuex'
;
import
{
...
...
@@ -83,11 +91,12 @@ import {
mergeSameAudio
,
filterFiled
,
getAudioUrl
,
getAudioUrlKey
,
}
from
'@/service/CreateLive'
;
import
{
getLiveTaskInfo
,
createDrafts
,
getDraftsDetail
,
liveTts
,
createLiveTask
}
from
'@/utils/api/userApi'
;
import
{
useRoute
,
onBeforeRouteLeave
}
from
'vue-router'
;
import
routerConfig
from
'@/router/tool'
;
import
{
onUpdateLiveTask
}
from
'@/service/Common'
;
import
{
onUpdateLiveTask
,
getUploadConfig
}
from
'@/service/Common'
;
import
{
callPyjsInWindow
,
writeLog
,
injectWindow
}
from
'@/utils/pyqt'
;
import
{
useLiveInfoSubmit
}
from
'@/hooks/useStoreCommit'
;
import
{
processTextCallback
}
from
'@/hooks/useScript'
;
...
...
@@ -129,6 +138,8 @@ const toolHeight = ref(0);
const
videoPlay
=
ref
<
HTMLVideoElement
>
();
// 统计本次音频转换任务总数
const
audioConvertTaskTotal
=
ref
(
0
);
// 统计本次音频切割任务总数
const
audioSplitTaskTotal
=
ref
(
0
);
...
...
@@ -409,7 +420,7 @@ const editAudioSave = async () => {
await
audioScriptEditSubmit
();
}
else
{
// v2
audio
SplitV2
(
'update'
);
audio
Convert
(
'update'
);
}
}
catch
(
e
)
{
writeLog
({
...
...
@@ -505,7 +516,7 @@ const audioSplit = async () => {
// 开始切割前先判断文件类型
let
result
=
await
splitAudio
(
row
.
file
.
raw
,
audioSplitNum
);
if
(
result
.
length
)
{
// 上传阿里云
// 上传阿里云
--加个判断,没有长度抛出异常
let
alyList
=
await
uploadToAly
(
result
);
let
list
=
[];
alyList
.
forEach
((
aly
:
any
)
=>
{
...
...
@@ -523,6 +534,43 @@ const audioSplit = async () => {
}
};
// python转换音频回调
const
convertCallback
=
(
convertInfo
:
any
)
=>
{
console
.
log
(
'转换回调'
,
convertInfo
);
let
num
=
0
;
if
(
'url'
in
convertInfo
&&
'new_url'
in
convertInfo
&&
'type'
in
convertInfo
)
{
let
audioScriptList
=
createLiveInfo
.
value
[
createLiveKeys
.
audioScriptList
];
// 根据切割前的链接匹配更新
for
(
let
i
=
0
;
i
<
audioScriptList
.
length
;
i
++
)
{
let
item
=
audioScriptList
[
i
];
for
(
let
j
=
0
;
j
<
item
.
data
.
length
;
j
++
)
{
let
row
=
item
.
data
[
j
];
if
(
getAudioUrl
(
row
)
==
convertInfo
.
url
)
{
// 更新url
let
key
=
getAudioUrlKey
(
row
);
row
[
key
]
=
convertInfo
.
new_url
;
row
.
py_convert
=
true
;
}
// 统计完成数量
if
(
row
.
py_convert
)
{
num
+=
1
;
}
}
}
if
(
audioConvertTaskTotal
.
value
===
num
)
{
console
.
log
(
'所有转换已经处理完成,开始切割'
);
audioSplitV2
(
convertInfo
.
type
);
}
}
else
{
//
console
.
log
(
'转换回调错误'
);
writeLog
({
name
:
'python convert callback error'
,
value
:
convertInfo
,
});
}
};
// python切割回调
const
splitCallback
=
(
splitInfo
:
any
)
=>
{
console
.
log
(
splitInfo
);
...
...
@@ -568,13 +616,60 @@ const splitCallback = (splitInfo: any) => {
}
};
// 音频转换提交到python
const
audioConvertToPython
=
async
(
row
:
any
,
type
:
string
)
=>
{
let
config
=
await
getUploadConfig
();
// 通知python合并
callPyjsInWindow
(
'audioConvert'
,
{
url
:
getAudioUrl
(
row
),
id
:
route
.
query
.
id
,
type
:
type
,
config
:
config
,
});
// 更新状态
row
.
py_convert
=
false
;
// 统计总次数
audioConvertTaskTotal
.
value
+=
1
;
};
// 音频转换
const
audioConvert
=
async
(
type
:
string
)
=>
{
let
list
=
createLiveInfo
.
value
[
createLiveKeys
.
audioScriptList
];
// 清空总任务数
audioConvertTaskTotal
.
value
=
0
;
for
(
let
i
=
0
;
i
<
list
.
length
;
i
++
)
{
let
item
=
list
[
i
];
for
(
let
j
=
0
;
j
<
item
.
data
.
length
;
j
++
)
{
let
row
=
item
.
data
[
j
];
if
(
row
.
children
&&
row
.
children
.
length
>
1
)
{
// 编辑时没有修改参数
continue
;
}
// 判断文件后缀
let
audio_url
=
getAudioUrl
(
row
);
let
suffix
=
getFileSuffixInUrl
(
audio_url
);
if
(
suffix
===
'wav'
)
{
console
.
log
(
'是wav文件,开始转换'
,
audio_url
);
audioConvertToPython
(
row
,
type
);
}
else
{
console
.
log
(
'不是wav'
,
audio_url
);
}
}
}
if
(
audioConvertTaskTotal
.
value
===
0
)
{
// 没有要转换的,直接切割
audioSplitV2
(
type
);
}
};
// 音频切割v2
const
audioSplitV2
=
async
(
type
:
string
)
=>
{
// 先将所有的音频转换成MP3
let
list
=
createLiveInfo
.
value
[
createLiveKeys
.
audioScriptList
];
// 清空总次数
audioSplitTaskTotal
.
value
=
0
;
for
(
let
i
=
0
;
i
<
createLiveInfo
.
value
[
createLiveKeys
.
audioScriptList
]
.
length
;
i
++
)
{
let
item
=
createLiveInfo
.
value
[
createLiveKeys
.
audioScriptList
]
[
i
];
for
(
let
i
=
0
;
i
<
list
.
length
;
i
++
)
{
let
item
=
list
[
i
];
for
(
let
j
=
0
;
j
<
item
.
data
.
length
;
j
++
)
{
let
row
=
item
.
data
[
j
];
if
(
row
.
children
&&
row
.
children
.
length
>
1
)
{
...
...
@@ -617,6 +712,16 @@ const audioSplitV2 = async (type: string) => {
}
}
}
if
(
audioSplitTaskTotal
.
value
===
0
)
{
// 没有要切割的,直接提交
if
(
type
==
'create'
)
{
// 创建
audioScriptLiveTaskSubmit
();
}
else
{
// 更新
audioScriptEditSubmit
();
}
}
};
// 音频脚本直播创建
...
...
@@ -646,7 +751,7 @@ const audioSubmit = async () => {
await
audioScriptLiveTaskSubmit
();
}
else
{
// v2版本,提交到python处理
audio
SplitV2
(
'create'
);
audio
Convert
(
'create'
);
}
}
catch
(
e
)
{
writeLog
({
...
...
@@ -727,6 +832,8 @@ onActivated(() => {
enterPageEvent
();
// 注入切割回调
injectWindow
(
'splitAudioCallback'
,
splitCallback
);
// 转换回调
injectWindow
(
'convertCallback'
,
convertCallback
);
});
// 路由离开前保存query
...
...
src/pages/home/index.vue
View file @
43a0654c
...
...
@@ -82,6 +82,7 @@ import Button from '@/components/Button.vue';
import
{
callPyjsInWindow
,
injectWindow
}
from
'@/utils/pyqt'
;
import
{
jumpToCreateLivePage
}
from
'@/router/jump'
;
import
{
useStore
}
from
'vuex'
;
import
{
getFileSuffixInUrl
}
from
'@/utils/tool'
;
const
router
=
useRouter
();
const
store
=
useStore
();
...
...
@@ -102,6 +103,7 @@ const imgs = {
profile
:
new
URL
(
'../../assets/svg/home/profile.svg'
,
import
.
meta
.
url
).
href
,
speaking
:
new
URL
(
'../../assets/svg/home/speaking.svg'
,
import
.
meta
.
url
).
href
,
interaction
:
new
URL
(
'../../assets/svg/home/interaction.svg'
,
import
.
meta
.
url
).
href
,
action
:
new
URL
(
'../../assets/svg/home/action.svg'
,
import
.
meta
.
url
).
href
,
};
const
toolList
=
[
{
...
...
@@ -122,6 +124,12 @@ const toolList = [
path
:
routerConfig
.
createInteract
.
path
,
name
:
routerConfig
.
createInteract
.
name
,
},
// {
// label: '动作创建',
// icon: imgs.action,
// path: routerConfig.createAction.path,
// name: routerConfig.createAction.name,
// },
];
// 刷新我的数字人
...
...
@@ -212,6 +220,16 @@ const startTest = async () => {
// duration: audioSplitDuration,
// id: 1,
// });
console
.
log
(
getFileSuffixInUrl
(
'http://yunyi-live.oss-cn-hangzhou.aliyuncs.com/upload/1/2023-08-11dd2372d8-73ff-4526-bf59-b1618a3f218f.mp3'
,
),
);
console
.
log
(
getFileSuffixInUrl
(
'http://nls-cloud-cn-shanghai.oss-cn-shanghai.aliyuncs.com/jupiter-flow/tmp/ad08fa0a70ae4ea88d11ad5e394ce045.wav?Expires=1692149777&OSSAccessKeyId=LTAIUpwNp2H7pBG5&Signature=D93qMT1DovslSOVa9oufV2cGZxE%3D'
,
),
);
};
onMounted
(()
=>
{
...
...
src/router/tool.ts
View file @
43a0654c
...
...
@@ -44,4 +44,8 @@ export default {
path
:
'/VocalCustomization'
,
name
:
'VocalCustomization'
,
},
createAction
:
{
path
:
'/createAction'
,
name
:
'createAction'
,
},
};
src/service/CreateLive.ts
View file @
43a0654c
...
...
@@ -174,6 +174,23 @@ export const getAudioUrl = (item: any) => {
return
item
.
url
;
}
else
if
(
item
.
audio_url
)
{
return
item
.
url
;
}
else
if
(
item
.
old_content
)
{
return
item
.
old_content
;
}
else
if
(
item
.
content
)
{
return
item
.
content
;
}
};
// 获取音频链接的key
export
const
getAudioUrlKey
=
(
item
:
any
)
=>
{
if
(
item
.
url
)
{
return
'url'
;
}
else
if
(
item
.
audio_url
)
{
return
'audio_url'
;
}
else
if
(
item
.
old_content
)
{
return
'old_content'
;
}
else
if
(
item
.
content
)
{
return
'content'
;
}
};
...
...
src/utils/polyfills.ts
View file @
43a0654c
import
Lame
from
'lamejs/src/js/Lame'
;
import
Presets
from
'lamejs/src/js/Presets'
;
import
GainAnalysis
from
'lamejs/src/js/GainAnalysis'
;
import
QuantizePVT
from
'lamejs/src/js/QuantizePVT'
;
import
Quantize
from
'lamejs/src/js/Quantize'
;
import
Reservoir
from
'lamejs/src/js/Reservoir'
;
import
Takehiro
from
'lamejs/src/js/Takehiro'
;
import
MPEGMode
from
'lamejs/src/js/MPEGMode'
;
import
BitStream
from
'lamejs/src/js/BitStream'
;
//
import Lame from 'lamejs/src/js/Lame';
//
import Presets from 'lamejs/src/js/Presets';
//
import GainAnalysis from 'lamejs/src/js/GainAnalysis';
//
import QuantizePVT from 'lamejs/src/js/QuantizePVT';
//
import Quantize from 'lamejs/src/js/Quantize';
//
import Reservoir from 'lamejs/src/js/Reservoir';
//
import Takehiro from 'lamejs/src/js/Takehiro';
//
import MPEGMode from 'lamejs/src/js/MPEGMode';
//
import BitStream from 'lamejs/src/js/BitStream';
window
.
Lame
=
Lame
;
window
.
Presets
=
Presets
;
window
.
GainAnalysis
=
GainAnalysis
;
window
.
QuantizePVT
=
QuantizePVT
;
window
.
Quantize
=
Quantize
;
window
.
Reservoir
=
Reservoir
;
window
.
Takehiro
=
Takehiro
;
window
.
MPEGMode
=
MPEGMode
;
window
.
BitStream
=
BitStream
;
//
window.Lame = Lame;
//
window.Presets = Presets;
//
window.GainAnalysis = GainAnalysis;
//
window.QuantizePVT = QuantizePVT;
//
window.Quantize = Quantize;
//
window.Reservoir = Reservoir;
//
window.Takehiro = Takehiro;
//
window.MPEGMode = MPEGMode;
//
window.BitStream = BitStream;
src/utils/tool.ts
View file @
43a0654c
...
...
@@ -234,6 +234,10 @@ export const alyOssUpload = (
});
}
else
{
UploadErrorCallback
(
fileName
);
writeLog
({
name
:
'阿里云上传失败-res!=200 res!= ""'
,
value
:
res
,
});
reject
({
status
:
'error'
,
response
:
''
,
...
...
@@ -242,6 +246,10 @@ export const alyOssUpload = (
})
.
catch
((
e
)
=>
{
console
.
log
(
e
);
writeLog
({
name
:
'tool aly upload error'
,
value
:
e
,
});
reject
({
status
:
'error'
,
response
:
''
,
...
...
@@ -271,6 +279,27 @@ export const getFileSuffix = (file: any) => {
}
};
// 根据url获取文件后缀
export
const
getFileSuffixInUrl
=
(
url
:
string
)
=>
{
let
dotIndex
=
url
.
lastIndexOf
(
'.'
);
if
(
dotIndex
!==
-
1
)
{
let
suffix
=
url
.
slice
(
dotIndex
+
1
,
url
.
length
).
toLowerCase
();
// 遇到第一个问号就暂停
if
(
suffix
.
indexOf
(
'?'
)
!==
-
1
)
{
let
regex
=
/^.*
(?=\?)
/
;
let
match
=
suffix
.
match
(
regex
);
// 匹配成功
if
(
match
)
{
return
match
[
0
];
}
return
suffix
;
}
return
suffix
;
}
else
{
return
''
;
}
};
// 二进制文件下载
export
const
downloadBlobFile
=
(
blob
:
Blob
,
name
:
string
=
'test'
)
=>
{
// 创建下载链接
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment