def
exchange(select_workbook,lst_endKeyword,p):
wb_exchange
=
openpyxl.load_workbook(select_workbook
+
'.xlsx'
)
ws_sure
=
wb_exchange[
'确定'
]
ws_prologue
=
wb_exchange[
'引导作用语句'
]
lst_prologue
=
[]
for
eachPrologue
in
ws_prologue[
'A'
]:
if
str
(eachPrologue.value) !
=
'开场白'
:
lst_prologue.append(
str
(eachPrologue.value))
repMessage
=
random.choice(lst_prologue)
p.put(
'女朋友:'
+
repMessage)
writting2speech(repMessage,PER,writting2speechToken)
playRecord()
classEqualIntention
=
False
while
True
:
autoRecord(setvoice)
wav2pcm()
newMessage
=
speech2writting(speech2writtingToken)
p.put(
'吴彦祖:'
+
newMessage)
endKeyword
=
False
for
eachEndKeyword
in
lst_endKeyword:
lst_word
=
[i
for
i
in
eachEndKeyword.split(
'|'
)
if
i !
=
'']
count_word
=
0
for
eachWord
in
lst_word:
if
eachWord
in
newMessage:
count_word
=
count_word
+
1
if
count_word
=
=
len
(lst_word):
endKeyword
=
True
if
endKeyword !
=
False
:
return
'bye'
intention
=
False
for
eachFeature
in
ws_sure[
'D'
]:
if
str
(eachFeature.value) !
=
'特征'
:
lst_featureKeyword
=
[i
for
i
in
str
(eachFeature.value).split(
'|'
)
if
i !
=
'']
for
eachFeatureKeyword
in
lst_featureKeyword:
if
eachFeatureKeyword
in
newMessage
or
str
(ws_sure.cell(eachFeature.row,
1
).value)
in
newMessage:
row_feature
=
eachFeature.row
for
eachKeyword
in
ws_sure[
str
(row_feature)]:
if
eachKeyword.column >
=
5
:
lst_word
=
[i
for
i
in
str
(eachKeyword.value).split(
'|'
)
if
i !
=
'']
count_word
=
0
for
eachWord
in
lst_word:
if
eachWord
in
newMessage:
count_word
=
count_word
+
1
if
count_word
=
=
len
(lst_word):
repMessage
=
random.choice([i
for
i
in
str
(ws_sure.cell(row_feature,
3
).value).split(
'|'
)
if
i !
=
''])
p.put(
'女朋友:'
+
repMessage)
writting2speech(repMessage,PER,writting2speechToken)
playRecord()
intention
=
str
(ws_sure.cell(row_feature,
1
).value)
return
intention
if
intention
=
=
False
:
dct_class
=
{}
for
eachClass
in
ws_sure[
'B'
]:
if
str
(eachClass.value) !
=
'分类'
:
if
str
(eachClass.value)
in
dct_class.keys():
dct_class[
str
(eachClass.value)].append(
str
(ws_sure.cell(eachClass.row,
1
).value))
else
:
dct_class[
str
(eachClass.value)]
=
[]
dct_class[
str
(eachClass.value)].append(
str
(ws_sure.cell(eachClass.row,
1
).value))
lst_leadClass
=
[]
for
eachLeadClass
in
ws_prologue[
'B'
]:
if
str
(eachLeadClass.value) !
=
'引导到类语句'
and
str
(eachLeadClass.value) !
=
'None'
:
lst_leadClass.append(
str
(eachLeadClass.value))
str_class
=
''
for
eachClass
in
dct_class.keys():
str_class
=
str_class
+
eachClass
+
','
repMessage
=
random.choice(lst_leadClass)
repMessage
=
re.sub(
'\\{format\\}'
,str_class[:
-
1
],repMessage)
p.put(
'女朋友:'
+
repMessage)
for
eachClass
in
dct_class.keys():
if
eachClass
in
dct_class[eachClass]:
classEqualIntention
=
True
else
:
classEqualIntention
=
False
break
writting2speech(repMessage,PER,writting2speechToken)
playRecord()
if
classEqualIntention
=
=
False
:
autoRecord(setvoice)
wav2pcm()
newMessage
=
speech2writting(speech2writtingToken)
p.put(
'吴彦祖:'
+
newMessage)
endKeyword
=
False
for
eachEndKeyword
in
lst_endKeyword:
lst_word
=
[i
for
i
in
eachEndKeyword.split(
'|'
)
if
i !
=
'']
count_word
=
0
for
eachWord
in
lst_word:
if
eachWord
in
newMessage:
count_word
=
count_word
+
1
if
count_word
=
=
len
(lst_word):
endKeyword
=
True
if
endKeyword !
=
False
:
return
'bye'
for
eachClass
in
dct_class.keys():
if
eachClass
in
newMessage:
lst_intention
=
[]
for
eachLeadIntention
in
ws_prologue[
'C'
]:
if
str
(eachLeadIntention.value) !
=
'引导到意图语句'
and
str
(eachLeadIntention.value) !
=
'None'
:
lst_intention.append(
str
(eachLeadIntention.value))
str_intention
=
''
for
eachIntetion
in
dct_class[eachClass]:
str_intention
=
str_intention
+
eachIntetion
+
','
repMessage
=
random.choice(lst_intention)
repMessage
=
re.sub(
'\\{format\\}'
,str_intention[:
-
1
],repMessage)
p.put(
'女朋友:'
+
repMessage)
writting2speech(repMessage,PER,writting2speechToken)
playRecord()
break