### 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.