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,
|