### Get Available Digital Human Information
Source: https://context7.com/mobvoibackend/openapi-sdk-java/llms.txt
Requests a list of available digital humans, specifying pagination and custom type. This is typically the first step before composing a video.
```java
import com.mobvoi.openapi.model.video.GetManInfoRequest;
// 1. 获取可用的数字人列表
GetManInfoRequest manInfoRequest = GetManInfoRequest.builder()
.current(1) // 页码
.size(10) // 每页数量
.customType("sys") // 类型:sys(系统)/ self(定制)
.speakerName(null) // 按名称搜索(可选)
.build();
String manInfoResult = videoClient.getManInfo(manInfoRequest);
System.out.println("数字人列表: " + manInfoResult);
```
--------------------------------
### Get Available Typeface List
Source: https://context7.com/mobvoibackend/openapi-sdk-java/llms.txt
Fetches a list of available typefaces that can be used in video synthesis. This requires a TypefaceRequest object.
```java
import com.mobvoi.openapi.model.video.TypefaceRequest;
// 4. 获取可用字体列表
TypefaceRequest typefaceRequest = new TypefaceRequest();
String typefaceResult = videoClient.getTypeface(typefaceRequest);
System.out.println("字体列表: " + typefaceResult);
```
--------------------------------
### Initialize VideoClient for Digital Human Video Synthesis
Source: https://context7.com/mobvoibackend/openapi-sdk-java/llms.txt
Creates an instance of VideoClient using application credentials. This client is used to interact with the digital human video synthesis service.
```java
import com.mobvoi.openapi.client.video.VideoClient;
// 创建视频客户端
VideoClient videoClient = new VideoClient("your_app_key", "your_app_secret");
```
--------------------------------
### Client Configuration
Source: https://context7.com/mobvoibackend/openapi-sdk-java/llms.txt
Configure the SDK client with your application's credentials and connection settings.
```APIDOC
## Client Configuration
### Description
`ClientConfig` is used to configure client connection parameters, including authentication, timeouts, and retry policies. It supports the Builder pattern for chained calls.
### Method
```java
import com.mobvoi.openapi.client.ClientConfig;
import com.mobvoi.openapi.signature.Md5Signature;
// Basic configuration
ClientConfig config = ClientConfig.builder()
.appKey("your_app_key")
.appSecret("your_app_secret")
.signature(Md5Signature.getInstance())
.connectTimeout(10) // Connection timeout (seconds), default 10 seconds
.readTimeout(10) // Read timeout (seconds), default 10 seconds
.writeTimeout(10) // Write timeout (seconds), default 10 seconds
.pingInterval(0) // WebSocket heartbeat interval (seconds)
.retryOnConnectionFailure(true) // Retry on connection failure
.build();
```
```
--------------------------------
### Configure Client Settings
Source: https://context7.com/mobvoibackend/openapi-sdk-java/llms.txt
Use the ClientConfig builder to set authentication credentials, timeouts, and connection policies.
```java
import com.mobvoi.openapi.client.ClientConfig;
import com.mobvoi.openapi.signature.Md5Signature;
// 基础配置
ClientConfig config = ClientConfig.builder()
.appKey("your_app_key")
.appSecret("your_app_secret")
.signature(Md5Signature.getInstance())
.connectTimeout(10) // 连接超时(秒),默认10秒
.readTimeout(10) // 读取超时(秒),默认10秒
.writeTimeout(10) // 写入超时(秒),默认10秒
.pingInterval(0) // WebSocket心跳间隔(秒)
.retryOnConnectionFailure(true) // 连接失败是否重试
.build();
```
--------------------------------
### Implement Real-time ASR with AsrSentenceClient
Source: https://context7.com/mobvoibackend/openapi-sdk-java/llms.txt
Uses WebSocket for real-time audio streaming and recognition. Requires an app key and secret for client initialization.
```java
import com.mobvoi.openapi.client.asr.AsrSentenceClient;
import com.mobvoi.openapi.model.asr.AsrSentenceStartRequest;
import com.mobvoi.openapi.constant.AsrSentenceResultType;
import okhttp3.WebSocket;
import okhttp3.WebSocketListener;
import okhttp3.Response;
import java.io.File;
// 创建实时识别客户端
AsrSentenceClient sentenceClient = new AsrSentenceClient("your_app_key", "your_app_secret");
// 配置识别参数
AsrSentenceStartRequest request = AsrSentenceStartRequest.builder()
.contentType("audio/x-wav;codec=pcm;bit=16;rate=16000") // 音频格式配置
.partial_result("enable") // 启用中间结果(实时显示)
.silence_detection("enable") // 启用静音检测
.build();
// 创建WebSocket监听器
WebSocketListener listener = new WebSocketListener() {
@Override
public void onOpen(WebSocket webSocket, Response response) {
System.out.println("WebSocket连接已建立");
}
@Override
public void onMessage(WebSocket webSocket, String text) {
System.out.println("收到消息: " + text);
// 消息类型判断
// AsrSentenceResultType.READY - 服务器就绪
// AsrSentenceResultType.PARTIAL - 中间识别结果
// AsrSentenceResultType.END - 语音结束,最终结果
// AsrSentenceResultType.SILENCE - 检测到静音
// AsrSentenceResultType.ERROR - 服务器错误
}
@Override
public void onFailure(WebSocket webSocket, Throwable t, Response response) {
System.err.println("连接失败: " + t.getMessage());
}
@Override
public void onClosed(WebSocket webSocket, int code, String reason) {
System.out.println("连接已关闭: " + reason);
}
};
// 建立WebSocket连接
WebSocket webSocket = sentenceClient.connect(request, listener);
// 发送音频数据(文件方式)
sentenceClient.send(new File("/path/to/audio.pcm"));
// 发送结束信号(主动结束本轮交互,获取剩余结果)
sentenceClient.sendEndSignal();
// 或发送取消信号(取消本轮交互,不返回结果)
// sentenceClient.sendCancelSignal();
// 关闭WebSocket连接
sentenceClient.closeWebsocket();
```
--------------------------------
### Create and Use OneboxClient for Smart Search
Source: https://context7.com/mobvoibackend/openapi-sdk-java/llms.txt
Initializes the OneboxClient with app credentials and constructs a search request for specific domains like restaurants. Ensure correct coordinates and API version are used.
```java
import com.mobvoi.openapi.client.onebox.OneboxClient;
import com.mobvoi.openapi.model.onebox.SearchRequest;
// 创建Onebox客户端
OneboxClient oneboxClient = new OneboxClient("your_app_key", "your_app_secret");
// 构建搜索请求
SearchRequest request = SearchRequest.builder()
.query("附近有什么好吃的餐厅") // 查询语句
.address("中国,北京市,北京市,海淀区,中关村,1号,39.9,116.3") // 用户位置(百度坐标系)
.output("lite") // 输出模式,默认lite
.version("43000") // API版本
.task("public.restaurant") // 指定domain(可选)
.user_id("user_123") // 用户ID
.ignore_context(false) // 是否忽略多轮上下文
.debug(false) // 是否显示调试信息
.build();
// 执行搜索
String result = oneboxClient.search(request);
System.out.println("搜索结果: " + result);
// 支持的domain类型:
// - public.weather:天气查询
// - public.restaurant:餐厅搜索
// - public.music:音乐搜索
// - public.movie:电影搜索
// 等等...
```
--------------------------------
### Add Maven Dependency
Source: https://context7.com/mobvoibackend/openapi-sdk-java/llms.txt
Include the SDK in your project by adding this dependency to your pom.xml file.
```xml
com.mobvoi
openapi-sdk-java
1.0.0
```
--------------------------------
### Maven Dependency
Source: https://context7.com/mobvoibackend/openapi-sdk-java/llms.txt
Add the Mobvoi Open API SDK for Java to your project using Maven.
```APIDOC
## Maven Dependency
### Description
Add the Mobvoi Open API SDK for Java to your project using Maven.
### Code
```xml
com.mobvoi
openapi-sdk-java
1.0.0
```
```
--------------------------------
### Perform Short Audio Recognition
Source: https://context7.com/mobvoibackend/openapi-sdk-java/llms.txt
Use AsrClient to process audio files up to 512KB in wav, mp3, or pcm formats.
```java
import com.mobvoi.openapi.client.asr.AsrClient;
import com.mobvoi.openapi.model.asr.AsrRequest;
import java.io.File;
// 创建ASR客户端
AsrClient asrClient = new AsrClient("your_app_key", "your_app_secret");
// 构建识别请求
AsrRequest request = AsrRequest.builder()
.audioFile(new File("/path/to/audio.wav")) // 音频文件,最大512KB
.type("audio/x-wav") // 音频格式类型
.user_id("user_123") // 用户ID(可选)
.device_id("device_456") // 设备ID(可选)
.build();
// 执行语音识别
String result = asrClient.asr(request);
System.out.println("识别结果: " + result);
// 返回示例:
// {"status":"OK","result":"今天天气怎么样"}
```
--------------------------------
### Compose Digital Human Video with Text-to-Speech
Source: https://context7.com/mobvoibackend/openapi-sdk-java/llms.txt
Configures and initiates a digital human video synthesis task using text-to-speech. Specify TTS parameters, digital human ID, background, video resolution, and callback URL.
```java
import com.mobvoi.openapi.model.video.ComposeVideoRequest;
import com.mobvoi.openapi.model.video.Style;
import com.alibaba.fastjson2.JSONObject;
JSONObject ttsParam = new JSONObject();
ttsParam.put("text", "大家好,我是数字人主播,今天为大家带来最新资讯。");
ttsParam.put("speaker", "cissy_meet");
ttsParam.put("speed", 1.0);
Style style = new Style();
// 设置数字人位置和大小参数
ComposeVideoRequest composeRequest = ComposeVideoRequest.builder()
.wetaSpeakerId(12345L) // 数字人ID
.ttsParam(ttsParam) // TTS参数(文本合成)
// .audioUrl("https://example.com/audio.mp3") // 或使用音频URL
.videoName("新闻播报视频") // 视频名称
.backUrl("https://example.com/background.jpg") // 自定义背景
.width(1080) // 横向分辨率
.height(1920) // 纵向分辨率
.fps(30) // 帧率:15/20/25/30
.bitRate("5M") // 码率:1M-16M
.videoFormat("mp4") // 视频格式
.resultType("video") // 合成类型
.callbackUrl("https://your-domain.com/callback") // 完成回调地址
.style(style) // 样式配置
.build();
String composeResult = videoClient.composeVideo(composeRequest);
System.out.println("合成任务创建结果: " + composeResult);
```
--------------------------------
### Short Audio Recognition (ASR)
Source: https://context7.com/mobvoibackend/openapi-sdk-java/llms.txt
Perform speech recognition on short audio files using the AsrClient.
```APIDOC
## Short Audio Recognition (ASR)
### Description
`AsrClient` is used for recognizing short audio files (max 512KB), supporting wav, mp3, and pcm formats. It is suitable for short command recognition scenarios.
### Method
```java
import com.mobvoi.openapi.client.asr.AsrClient;
import com.mobvoi.openapi.model.asr.AsrRequest;
import java.io.File;
// Create ASR client
AsrClient asrClient = new AsrClient("your_app_key", "your_app_secret");
// Build recognition request
AsrRequest request = AsrRequest.builder()
.audioFile(new File("/path/to/audio.wav")) // Audio file, max 512KB
.type("audio/x-wav") // Audio format type
.user_id("user_123") // User ID (optional)
.device_id("device_456") // Device ID (optional)
.build();
// Execute speech recognition
String result = asrClient.asr(request);
System.out.println("Recognition result: " + result);
// Example response:
// {"status":"OK","result":"今天天气怎么样"}
```
```
--------------------------------
### Analyze Natural Language with NlpClient
Source: https://context7.com/mobvoibackend/openapi-sdk-java/llms.txt
Parses user queries to extract intent and slot information. Returns a JSON-formatted string result.
```java
import com.mobvoi.openapi.client.nlp.NlpClient;
import com.mobvoi.openapi.model.nlp.NlpRequest;
// 创建NLP客户端
NlpClient nlpClient = new NlpClient("your_app_key", "your_app_secret");
// 构建NLP请求
NlpRequest request = NlpRequest.builder()
.query("明天北京的天气怎么样") // 查询语句
.context("public.weather") // 强制指定意图域(可选)
.build();
// 执行语义分析
String result = nlpClient.nlp(request);
System.out.println("语义分析结果: " + result);
// 返回示例:
// {
// "status": "OK",
// "domain": "public.weather",
// "intent": "query_weather",
// "slots": {
// "location": "北京",
// "date": "明天"
// }
// }
```
--------------------------------
### Perform Text-to-Speech with TtsClient
Source: https://context7.com/mobvoibackend/openapi-sdk-java/llms.txt
Converts text to audio and saves the output stream to a file. Supports various audio formats and voice parameters.
```java
import com.mobvoi.openapi.client.tts.TtsClient;
import com.mobvoi.openapi.model.tts.TtsRequest;
import okhttp3.Response;
import java.io.InputStream;
import java.io.FileOutputStream;
// 创建TTS客户端
TtsClient ttsClient = new TtsClient("your_app_key", "your_app_secret");
// 构建合成请求
TtsRequest request = TtsRequest.builder()
.text("你好,欢迎使用出门问问语音合成服务") // 要合成的文本,最大1000字符
.speaker("cissy_meet") // 发音人,默认cissy_meet
.audio_type("mp3") // 输出格式:mp3/pcm/speex-wb-10/wav
.speed(1.0f) // 语速:0.5-2.0
.volume(1.0f) // 音量:0.1-1.0
.pitch(0f) // 语调:-10到10
.rate(16000L) // 采样率:8000/16000/24000
.gen_srt(false) // 是否生成srt字幕文件
.merge_symbol(true) // 粗粒度合成,更接近真人效果
.ignore_limit(false) // 是否忽略字符数限制
.build();
// 执行语音合成
Response response = ttsClient.tts(request);
// 获取音频流并保存到文件
if (response.isSuccessful() && response.body() != null) {
try (InputStream inputStream = response.body().byteStream();
FileOutputStream fos = new FileOutputStream("output.mp3")) {
byte[] buffer = new byte[4096];
int bytesRead;
while ((bytesRead = inputStream.read(buffer)) != -1) {
fos.write(buffer, 0, bytesRead);
}
System.out.println("音频文件已保存");
}
// 如果启用了gen_srt,可从响应头获取字幕文件地址
String srtUrl = response.header("srt-address");
if (srtUrl != null) {
Response srtResponse = ttsClient.srt(srtUrl);
// 处理字幕内容
}
}
response.close();
```
--------------------------------
### Transcribe Long Audio Files
Source: https://context7.com/mobvoibackend/openapi-sdk-java/llms.txt
Use AsrFileClient to create asynchronous transcription tasks for long audio files via URL and poll for results.
```java
import com.mobvoi.openapi.client.asr.AsrFileClient;
import com.mobvoi.openapi.model.asr.AsrFileCreateTaskRequest;
import com.mobvoi.openapi.model.asr.AsrFileGetTaskRequest;
import com.mobvoi.openapi.constant.AsrFileTaskStatus;
import java.util.Arrays;
// 创建文件转写客户端
AsrFileClient asrFileClient = new AsrFileClient("your_app_key", "your_app_secret");
// 创建转写任务
AsrFileCreateTaskRequest createRequest = AsrFileCreateTaskRequest.builder()
.audio_url("https://example.com/audio/meeting.mp3") // 音频文件URL(需公网可访问)
.language("zh_cn") // 语言:zh_cn(中文)
.enable_punctuation(true) // 启用标点
.filler_words(Arrays.asList("嗯", "啊", "呃")) // 语气词过滤列表
.callbackUrl("https://your-domain.com/callback") // 完成后回调地址
.build();
String taskResult = asrFileClient.createTask(createRequest);
System.out.println("任务创建结果: " + taskResult);
// 返回示例:{"code":200,"taskId":"task_123456"}
// 查询任务结果
AsrFileGetTaskRequest getRequest = new AsrFileGetTaskRequest();
getRequest.setAppkey("your_app_key");
// 设置任务ID等参数
String taskStatus = asrFileClient.getTask(getRequest);
System.out.println("任务状态: " + taskStatus);
// 任务状态枚举
// AsrFileTaskStatus.SUBMIT (1) - 提交中
// AsrFileTaskStatus.SUCCESS (2) - 成功
// AsrFileTaskStatus.FAIL (3) - 失败
```
--------------------------------
### Add Mobvoi OpenAPI Java SDK Dependency
Source: https://github.com/mobvoibackend/openapi-sdk-java/blob/main/README.md
Include this Maven dependency in your project to use the Mobvoi OpenAPI Java SDK. Replace '1.0.0' with the latest stable version.
```xml
com.mobvoi
openapi-sdk-java
1.0.0
```
--------------------------------
### Long Audio File Transcription (ASR)
Source: https://context7.com/mobvoibackend/openapi-sdk-java/llms.txt
Transcribe long audio files asynchronously using the AsrFileClient.
```APIDOC
## Long Audio File Transcription (ASR)
### Description
`AsrFileClient` is used for asynchronous transcription of long audio files. It works by creating a task and polling for results, supporting callback notifications.
### Method
```java
import com.mobvoi.openapi.client.asr.AsrFileClient;
import com.mobvoi.openapi.model.asr.AsrFileCreateTaskRequest;
import com.mobvoi.openapi.model.asr.AsrFileGetTaskRequest;
import com.mobvoi.openapi.constant.AsrFileTaskStatus;
import java.util.Arrays;
// Create file transcription client
AsrFileClient asrFileClient = new AsrFileClient("your_app_key", "your_app_secret");
// Create transcription task
AsrFileCreateTaskRequest createRequest = AsrFileCreateTaskRequest.builder()
.audio_url("https://example.com/audio/meeting.mp3") // Audio file URL (must be publicly accessible)
.language("zh_cn") // Language: zh_cn (Chinese)
.enable_punctuation(true) // Enable punctuation
.filler_words(Arrays.asList("嗯", "啊", "呃")) // Filtered filler words list
.callbackUrl("https://your-domain.com/callback") // Callback URL upon completion
.build();
String taskResult = asrFileClient.createTask(createRequest);
System.out.println("Task creation result: " + taskResult);
// Example response: {"code":200,"taskId":"task_123456"}
// Query task status
AsrFileGetTaskRequest getRequest = new AsrFileGetTaskRequest();
getRequest.setAppkey("your_app_key");
// Set task ID and other parameters
String taskStatus = asrFileClient.getTask(getRequest);
System.out.println("Task status: " + taskStatus);
// Task status enumeration:
// AsrFileTaskStatus.SUBMIT (1) - Submitting
// AsrFileTaskStatus.SUCCESS (2) - Success
// AsrFileTaskStatus.FAIL (3) - Failed
```
```
--------------------------------
### Query Digital Human Video Synthesis Status
Source: https://context7.com/mobvoibackend/openapi-sdk-java/llms.txt
Retrieves the status of a digital human video synthesis task. Requires a ComposeResultRequest object, typically containing the task ID.
```java
import com.mobvoi.openapi.model.video.ComposeResultRequest;
// 3. 查询合成结果
ComposeResultRequest resultRequest = new ComposeResultRequest();
// 设置任务ID等参数
String statusResult = videoClient.getComposeResult(resultRequest);
System.out.println("合成状态: " + statusResult);
// 合成状态枚举
// VideoComposeStatus.ING ("ing") - 处理中
// VideoComposeStatus.SUCCESS ("suc") - 成功
// VideoComposeStatus.FAIL ("fail") - 失败
```
=== COMPLETE CONTENT === This response contains all available snippets from this library. No additional content exists. Do not make further requests.