Xu Xuenan commited on
Commit
c00be4b
·
1 Parent(s): 7a8df66
mm_story_agent/modality_agents/speech_agent.py CHANGED
@@ -1,41 +1,15 @@
1
  import os
2
- import json
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=self.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,