Skip to content

Commit 9826975

Browse files
committed
feat(model/audio): upgrade audio models use dedicated thread pool
1 parent 50ad052 commit 9826975

4 files changed

Lines changed: 59 additions & 14 deletions

File tree

src/main/java/com/alibaba/dashscope/audio/asr/recognition/Recognition.java

Lines changed: 15 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -104,7 +104,9 @@ public Recognition() {
104104
.task(Task.ASR.getValue())
105105
.function(Function.RECOGNITION.getValue())
106106
.build();
107-
duplexApi = new SynchronizeFullDuplexApi<>(serviceOption);
107+
ConnectionOptions connectionOptions = ConnectionOptions.builder().build();
108+
connectionOptions.setUseDefaultClient(false);
109+
duplexApi = new SynchronizeFullDuplexApi<>(connectionOptions, serviceOption);
108110
}
109111

110112
public Recognition(ConnectionOptions connectionOptions) {
@@ -117,7 +119,12 @@ public Recognition(ConnectionOptions connectionOptions) {
117119
.task(Task.ASR.getValue())
118120
.function(Function.RECOGNITION.getValue())
119121
.build();
120-
duplexApi = new SynchronizeFullDuplexApi<>(connectionOptions, serviceOption);
122+
ConnectionOptions thisOptions = connectionOptions;
123+
if (connectionOptions == null) {
124+
thisOptions = ConnectionOptions.builder().build();
125+
thisOptions.setUseDefaultClient(false);
126+
}
127+
duplexApi = new SynchronizeFullDuplexApi<>(thisOptions, serviceOption);
121128
}
122129

123130
public Recognition(ConnectionOptions connectionOptions, String baseUrl) {
@@ -131,7 +138,12 @@ public Recognition(ConnectionOptions connectionOptions, String baseUrl) {
131138
.baseWebSocketUrl(baseUrl)
132139
.function(Function.RECOGNITION.getValue())
133140
.build();
134-
duplexApi = new SynchronizeFullDuplexApi<>(connectionOptions, serviceOption);
141+
ConnectionOptions thisOptions = connectionOptions;
142+
if (connectionOptions == null) {
143+
thisOptions = ConnectionOptions.builder().build();
144+
thisOptions.setUseDefaultClient(false);
145+
}
146+
duplexApi = new SynchronizeFullDuplexApi<>(thisOptions, serviceOption);
135147
}
136148

137149
public Flowable<RecognitionResult> streamCall(

src/main/java/com/alibaba/dashscope/audio/ttsv2/SpeechSynthesizer.java

Lines changed: 21 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -96,7 +96,12 @@ public SpeechSynthesizer(
9696
.baseWebSocketUrl(baseUrl)
9797
.passTaskStarted(true)
9898
.build();
99-
duplexApi = new SynchronizeFullDuplexApi<>(connectionOptions, serviceOption);
99+
ConnectionOptions thisOptions = connectionOptions;
100+
if (connectionOptions == null) {
101+
thisOptions = ConnectionOptions.builder().build();
102+
thisOptions.setUseDefaultClient(false);
103+
}
104+
duplexApi = new SynchronizeFullDuplexApi<>(thisOptions, serviceOption);
100105
this.callback = callback;
101106
this.asyncCall = this.callback != null;
102107
}
@@ -120,7 +125,12 @@ public SpeechSynthesizer(String baseUrl, ConnectionOptions connectionOptions) {
120125
.baseWebSocketUrl(baseUrl)
121126
.passTaskStarted(true)
122127
.build();
123-
duplexApi = new SynchronizeFullDuplexApi<>(connectionOptions, serviceOption);
128+
ConnectionOptions thisOptions = connectionOptions;
129+
if (connectionOptions == null) {
130+
thisOptions = ConnectionOptions.builder().build();
131+
thisOptions.setUseDefaultClient(false);
132+
}
133+
duplexApi = new SynchronizeFullDuplexApi<>(thisOptions, serviceOption);
124134
this.callback = null;
125135
}
126136

@@ -137,7 +147,9 @@ public SpeechSynthesizer() {
137147
.function(Function.SPEECH_SYNTHESIZER.getValue())
138148
.passTaskStarted(true)
139149
.build();
140-
duplexApi = new SynchronizeFullDuplexApi<>(serviceOption);
150+
ConnectionOptions connectionOptions = ConnectionOptions.builder().build();
151+
connectionOptions.setUseDefaultClient(false);
152+
duplexApi = new SynchronizeFullDuplexApi<>(connectionOptions, serviceOption);
141153
this.callback = null;
142154
}
143155

@@ -186,7 +198,9 @@ public SpeechSynthesizer(
186198
.baseWebSocketUrl(baseUrl)
187199
.passTaskStarted(true)
188200
.build();
189-
duplexApi = new SynchronizeFullDuplexApi<>(serviceOption);
201+
ConnectionOptions connectionOptions = ConnectionOptions.builder().build();
202+
connectionOptions.setUseDefaultClient(false);
203+
duplexApi = new SynchronizeFullDuplexApi<>(connectionOptions, serviceOption);
190204
this.callback = callback;
191205
this.asyncCall = this.callback != null;
192206
}
@@ -215,7 +229,9 @@ public SpeechSynthesizer(
215229
.function(Function.SPEECH_SYNTHESIZER.getValue())
216230
.passTaskStarted(true)
217231
.build();
218-
duplexApi = new SynchronizeFullDuplexApi<>(serviceOption);
232+
ConnectionOptions connectionOptions = ConnectionOptions.builder().build();
233+
connectionOptions.setUseDefaultClient(false);
234+
duplexApi = new SynchronizeFullDuplexApi<>(connectionOptions, serviceOption);
219235
this.callback = callback;
220236
this.asyncCall = this.callback != null;
221237
}

src/main/java/com/alibaba/dashscope/protocol/ConnectionOptions.java

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -93,4 +93,16 @@ public boolean isUseDefaultClient() {
9393
public void setUseDefaultClient(boolean useDefaultClient) {
9494
this.useDefaultClient = useDefaultClient;
9595
}
96+
97+
public boolean hasCustomConnectTimeout() {
98+
return connectTimeout != null;
99+
}
100+
101+
public boolean hasCustomWriteTimeout() {
102+
return writeTimeout != null;
103+
}
104+
105+
public boolean hasCustomReadTimeout() {
106+
return readTimeout != null;
107+
}
96108
}

src/main/java/com/alibaba/dashscope/protocol/okhttp/OkHttpClientFactory.java

Lines changed: 11 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -75,12 +75,17 @@ public static OkHttpClient getOkHttpClient() {
7575
}
7676

7777
public static OkHttpClient getNewOkHttpClient(ConnectionOptions connectionOptions) {
78-
Builder builder =
79-
Holder.INSTANCE
80-
.newBuilder()
81-
.connectTimeout(connectionOptions.getConnectTimeout())
82-
.readTimeout(connectionOptions.getReadTimeout())
83-
.writeTimeout(connectionOptions.getWriteTimeout());
78+
Builder builder = Holder.INSTANCE.newBuilder();
79+
80+
if (connectionOptions.hasCustomConnectTimeout()) {
81+
builder.connectTimeout(connectionOptions.getConnectTimeout());
82+
}
83+
if (connectionOptions.hasCustomReadTimeout()) {
84+
builder.readTimeout(connectionOptions.getReadTimeout());
85+
}
86+
if (connectionOptions.hasCustomWriteTimeout()) {
87+
builder.writeTimeout(connectionOptions.getWriteTimeout());
88+
}
8489

8590
// Configure proxy if available
8691
if (connectionOptions.getProxy() != null) {

0 commit comments

Comments
 (0)