Spaces:
Sleeping
Sleeping
Xu Xuenan
commited on
Commit
·
c00be4b
1
Parent(s):
7a8df66
Remove AK
Browse files
mm_story_agent/modality_agents/speech_agent.py
CHANGED
@@ -1,41 +1,15 @@
|
|
1 |
import os
|
2 |
-
import
|
3 |
from pathlib import Path
|
4 |
from typing import List
|
5 |
|
6 |
-
from aliyunsdkcore.client import AcsClient
|
7 |
-
from aliyunsdkcore.request import CommonRequest
|
8 |
import nls
|
9 |
|
10 |
|
11 |
class CosyVoiceSynthesizer:
|
12 |
|
13 |
def __init__(self) -> None:
|
14 |
-
self.access_key_id = os.environ.get('ALIYUN_ACCESS_KEY_ID')
|
15 |
-
self.access_key_secret = os.environ.get('ALIYUN_ACCESS_KEY_SECRET')
|
16 |
self.app_key = os.environ.get('ALIYUN_APP_KEY')
|
17 |
-
self.setup_token()
|
18 |
-
|
19 |
-
def setup_token(self):
|
20 |
-
client = AcsClient(self.access_key_id, self.access_key_secret,
|
21 |
-
'cn-shanghai')
|
22 |
-
request = CommonRequest()
|
23 |
-
request.set_method('POST')
|
24 |
-
request.set_domain('nls-meta.cn-shanghai.aliyuncs.com')
|
25 |
-
request.set_version('2019-02-28')
|
26 |
-
request.set_action_name('CreateToken')
|
27 |
-
|
28 |
-
try:
|
29 |
-
response = client.do_action_with_exception(request)
|
30 |
-
jss = json.loads(response)
|
31 |
-
if 'Token' in jss and 'Id' in jss['Token']:
|
32 |
-
token = jss['Token']['Id']
|
33 |
-
self.token = token
|
34 |
-
except Exception as e:
|
35 |
-
import traceback
|
36 |
-
raise RuntimeError(
|
37 |
-
f'Request token failed with error: {e}, with detail {traceback.format_exc()}'
|
38 |
-
)
|
39 |
|
40 |
def call(self, save_file, transcript, voice="longyuan", sample_rate=16000):
|
41 |
writer = open(save_file, "wb")
|
@@ -55,9 +29,11 @@ class CosyVoiceSynthesizer:
|
|
55 |
if writer is not None:
|
56 |
writer.close()
|
57 |
|
|
|
|
|
58 |
sdk = nls.NlsStreamInputTtsSynthesizer(
|
59 |
url='wss://nls-gateway-cn-beijing.aliyuncs.com/ws/v1',
|
60 |
-
token=
|
61 |
appkey=self.app_key,
|
62 |
on_data=write_data,
|
63 |
on_error=raise_error,
|
|
|
1 |
import os
|
2 |
+
import requests
|
3 |
from pathlib import Path
|
4 |
from typing import List
|
5 |
|
|
|
|
|
6 |
import nls
|
7 |
|
8 |
|
9 |
class CosyVoiceSynthesizer:
|
10 |
|
11 |
def __init__(self) -> None:
|
|
|
|
|
12 |
self.app_key = os.environ.get('ALIYUN_APP_KEY')
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
13 |
|
14 |
def call(self, save_file, transcript, voice="longyuan", sample_rate=16000):
|
15 |
writer = open(save_file, "wb")
|
|
|
29 |
if writer is not None:
|
30 |
writer.close()
|
31 |
|
32 |
+
response = requests.get("https://alice-open.oss-cn-zhangjiakou.aliyuncs.com/nls_token.txt")
|
33 |
+
token = response.text.strip()
|
34 |
sdk = nls.NlsStreamInputTtsSynthesizer(
|
35 |
url='wss://nls-gateway-cn-beijing.aliyuncs.com/ws/v1',
|
36 |
+
token=token,
|
37 |
appkey=self.app_key,
|
38 |
on_data=write_data,
|
39 |
on_error=raise_error,
|