文字转语音
This commit is contained in:
78
src/test/java/com/rj/service/SiliconFlowTtsServiceTest.java
Normal file
78
src/test/java/com/rj/service/SiliconFlowTtsServiceTest.java
Normal file
@@ -0,0 +1,78 @@
|
||||
package com.rj.service;
|
||||
|
||||
import com.rj.config.SiliconFlowConfig;
|
||||
import com.rj.dto.SiliconFlowTtsRequest;
|
||||
import com.rj.dto.SiliconFlowTtsResponse;
|
||||
import org.junit.jupiter.api.Test;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.boot.test.context.SpringBootTest;
|
||||
import org.springframework.test.context.TestPropertySource;
|
||||
|
||||
import static org.junit.jupiter.api.Assertions.*;
|
||||
|
||||
/**
|
||||
* SiliconFlow TTS 服务测试类
|
||||
*
|
||||
* @author rj
|
||||
* @date 2025-01-02
|
||||
*/
|
||||
@SpringBootTest
|
||||
@TestPropertySource(properties = {
|
||||
"siliconflow.enabled=true",
|
||||
"siliconflow.api-key=test-api-key",
|
||||
"siliconflow.base-url=https://api.siliconflow.cn/v1"
|
||||
})
|
||||
public class SiliconFlowTtsServiceTest {
|
||||
|
||||
@Autowired
|
||||
private SiliconFlowTtsService ttsService;
|
||||
|
||||
@Autowired
|
||||
private SiliconFlowConfig config;
|
||||
|
||||
@Test
|
||||
public void testServiceConfiguration() {
|
||||
assertNotNull(config);
|
||||
assertTrue(config.isEnabled());
|
||||
assertEquals("https://api.siliconflow.cn/v1", config.getBaseUrl());
|
||||
assertEquals("fnlp/MOSS-TTSD-v0.5", config.getDefaultTtsModel());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testServiceAvailability() {
|
||||
// 注意:这个测试需要真实的API Key才能通过
|
||||
// 在测试环境中,我们主要测试配置是否正确
|
||||
assertNotNull(ttsService);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testTtsRequestCreation() {
|
||||
SiliconFlowTtsRequest request = new SiliconFlowTtsRequest();
|
||||
request.setModel("fnlp/MOSS-TTSD-v0.5");
|
||||
request.setInput("[S1]Hello, how are you today?[S2]I'm doing great, thanks for asking![S1]That's wonderful to hear");
|
||||
// voice参数有默认值,但也可以手动设置
|
||||
|
||||
assertNotNull(request);
|
||||
assertEquals("fnlp/MOSS-TTSD-v0.5", request.getModel());
|
||||
assertNotNull(request.getInput());
|
||||
assertEquals("fnlp/MOSS-TTSD-v0.5:claire", request.getVoice()); // 验证默认voice参数
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testTtsResponseCreation() {
|
||||
SiliconFlowTtsResponse successResponse = SiliconFlowTtsResponse.success(
|
||||
"base64AudioData", "wav", 22050, 5.5
|
||||
);
|
||||
|
||||
assertTrue(successResponse.isSuccess());
|
||||
assertEquals("base64AudioData", successResponse.getAudio());
|
||||
assertEquals("wav", successResponse.getFormat());
|
||||
assertEquals(22050, successResponse.getSampleRate());
|
||||
assertEquals(5.5, successResponse.getDuration());
|
||||
|
||||
SiliconFlowTtsResponse errorResponse = SiliconFlowTtsResponse.error("API调用失败");
|
||||
assertFalse(errorResponse.isSuccess());
|
||||
assertEquals("API调用失败", errorResponse.getMessage());
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user