Skip to content

Commit a9279bd

Browse files
authored
Merge pull request #4017 from MicrosoftDocs/main
4/9/2025 PM Publish
2 parents cbcdab8 + df9e1b4 commit a9279bd

File tree

11 files changed

+249
-136
lines changed

11 files changed

+249
-136
lines changed

articles/ai-foundry/how-to/develop/simulator-interaction-data.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -117,7 +117,7 @@ You can bring any application endpoint to simulate against by specifying a targe
117117

118118
```python
119119
async def callback(
120-
messages: List[Dict],
120+
messages: Dict,
121121
stream: bool = False,
122122
session_state: Any = None, # noqa: ANN401
123123
context: Optional[Dict[str, Any]] = None,

articles/ai-services/openai/includes/chatgpt-spring.md

Lines changed: 93 additions & 100 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ ms.author: mbullwin
88
ms.date: 11/27/2023
99
---
1010

11-
[Source code](https://github.com/spring-projects-experimental/spring-ai) | [Artifacts (Maven)](https://repo.spring.io/ui/native/snapshot/org/springframework/experimental/ai/spring-ai-openai-spring-boot-starter/0.7.0-SNAPSHOT) | [Sample](https://github.com/rd-1-2022/ai-azure-openai-prompt-roles)
11+
[Source code](https://github.com/spring-projects/spring-ai) | [Artifacts (Maven)](https://repo.spring.io/ui/native/snapshot/org/springframework/experimental/ai/spring-ai-openai-spring-boot-starter/0.7.0-SNAPSHOT) | [Sample](https://github.com/Azure-Samples/spring-ai-samples/tree/main/ai-chat-demo)
1212

1313
## Prerequisites
1414

@@ -75,56 +75,68 @@ ai-chat-demo/
7575
```xml
7676
<?xml version="1.0" encoding="UTF-8"?>
7777
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
78-
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
79-
<modelVersion>4.0.0</modelVersion>
80-
<parent>
81-
<groupId>org.springframework.boot</groupId>
82-
<artifactId>spring-boot-starter-parent</artifactId>
83-
<version>3.2.0</version>
84-
<relativePath/> <!-- lookup parent from repository -->
85-
</parent>
86-
<groupId>com.example</groupId>
87-
<artifactId>ai-chat-demo</artifactId>
88-
<version>0.0.1-SNAPSHOT</version>
89-
<name>AIChat</name>
90-
<description>Demo project for Spring Boot</description>
91-
<properties>
92-
<java.version>17</java.version>
93-
</properties>
94-
<dependencies>
95-
<dependency>
78+
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
79+
<modelVersion>4.0.0</modelVersion>
80+
<parent>
81+
<groupId>org.springframework.boot</groupId>
82+
<artifactId>spring-boot-starter-parent</artifactId>
83+
<version>3.3.4</version>
84+
<relativePath/> <!-- lookup parent from repository -->
85+
</parent>
86+
<groupId>com.example</groupId>
87+
<artifactId>ai-chat-demo</artifactId>
88+
<version>0.0.1-SNAPSHOT</version>
89+
<name>AIChat</name>
90+
<description>Demo project for Spring Boot</description>
91+
<properties>
92+
<java.version>17</java.version>
93+
<spring-ai.version>1.0.0-M5</spring-ai.version>
94+
</properties>
95+
<dependencies>
96+
<dependency>
97+
<groupId>org.springframework.boot</groupId>
98+
<artifactId>spring-boot-starter</artifactId>
99+
</dependency>
100+
<dependency>
101+
<groupId>org.springframework.ai</groupId>
102+
<artifactId>spring-ai-azure-openai-spring-boot-starter</artifactId>
103+
</dependency>
104+
<dependency>
105+
<groupId>org.springframework.boot</groupId>
106+
<artifactId>spring-boot-starter-test</artifactId>
107+
<scope>test</scope>
108+
</dependency>
109+
</dependencies>
110+
<dependencyManagement>
111+
<dependencies>
112+
<dependency>
113+
<groupId>org.springframework.ai</groupId>
114+
<artifactId>spring-ai-bom</artifactId>
115+
<version>${spring-ai.version}</version>
116+
<type>pom</type>
117+
<scope>import</scope>
118+
</dependency>
119+
</dependencies>
120+
</dependencyManagement>
121+
<build>
122+
<plugins>
123+
<plugin>
96124
<groupId>org.springframework.boot</groupId>
97-
<artifactId>spring-boot-starter</artifactId>
98-
</dependency>
99-
<dependency>
100-
<groupId>org.springframework.experimental.ai</groupId>
101-
<artifactId>spring-ai-azure-openai-spring-boot-starter</artifactId>
102-
<version>0.7.0-SNAPSHOT</version>
103-
</dependency>
104-
<dependency>
105-
<groupId>org.springframework.boot</groupId>
106-
<artifactId>spring-boot-starter-test</artifactId>
107-
<scope>test</scope>
108-
</dependency>
109-
</dependencies>
110-
<build>
111-
<plugins>
112-
<plugin>
113-
<groupId>org.springframework.boot</groupId>
114-
<artifactId>spring-boot-maven-plugin</artifactId>
115-
</plugin>
116-
</plugins>
117-
</build>
118-
<repositories>
119-
<repository>
120-
<id>spring-snapshots</id>
121-
<name>Spring Snapshots</name>
122-
<url>https://repo.spring.io/snapshot</url>
123-
<releases>
124-
<enabled>false</enabled>
125-
</releases>
126-
</repository>
127-
</repositories>
125+
<artifactId>spring-boot-maven-plugin</artifactId>
126+
</plugin>
127+
</plugins>
128+
</build>
129+
<repositories>
130+
<repository>
131+
<id>spring-milestones</id>
132+
<name>Spring Milestones</name>
133+
<url>https://repo.spring.io/milestone</url>
134+
<snapshots>
135+
<enabled>false</enabled>
136+
</snapshots>
137+
</repository>
138+
</repositories>
139+
128140
</project>
129141
```
130142

@@ -133,55 +145,36 @@ ai-chat-demo/
133145
```java
134146
package com.example.aichatdemo;
135147

136-
import java.util.ArrayList;
137-
import java.util.List;
138-
139-
import org.springframework.ai.client.AiClient;
140-
import org.springframework.ai.prompt.Prompt;
141-
import org.springframework.ai.prompt.messages.ChatMessage;
142-
import org.springframework.ai.prompt.messages.Message;
143-
import org.springframework.ai.prompt.messages.MessageType;
144-
import org.springframework.beans.factory.annotation.Autowired;
148+
import org.slf4j.Logger;
149+
import org.slf4j.LoggerFactory;
150+
import org.springframework.ai.chat.client.ChatClient;
145151
import org.springframework.boot.CommandLineRunner;
146152
import org.springframework.boot.SpringApplication;
147153
import org.springframework.boot.autoconfigure.SpringBootApplication;
154+
import org.springframework.context.annotation.Bean;
148155

149156
@SpringBootApplication
150-
public class AiChatApplication implements CommandLineRunner
151-
{
152-
private static final String ROLE_INFO_KEY = "role";
153-
154-
@Autowired
155-
private AiClient aiClient;
156-
157-
public static void main(String[] args) {
158-
SpringApplication.run(AiChatApplication.class, args);
159-
}
160-
161-
@Override
162-
public void run(String... args) throws Exception
163-
{
164-
System.out.println(String.format("Sending chat prompts to AI service. One moment please...\r\n"));
165-
166-
final List<Message> msgs = new ArrayList<>();
167-
168-
msgs.add(new ChatMessage(MessageType.SYSTEM, "You are a helpful assistant"));
169-
msgs.add(new ChatMessage(MessageType.USER, "Does Azure OpenAI support customer managed keys?"));
170-
msgs.add(new ChatMessage(MessageType.ASSISTANT, "Yes, customer managed keys are supported by Azure OpenAI?"));
171-
msgs.add(new ChatMessage(MessageType.USER, "Do other Azure AI services support this too?"));
172-
173-
final var resps = aiClient.generate(new Prompt(msgs));
174-
175-
System.out.println(String.format("Prompt created %d generated response(s).", resps.getGenerations().size()));
176-
177-
resps.getGenerations().stream()
178-
.forEach(gen -> {
179-
final var role = gen.getInfo().getOrDefault(ROLE_INFO_KEY, MessageType.ASSISTANT.getValue());
180-
181-
System.out.println(String.format("Generated respose from \"%s\": %s", role, gen.getText()));
182-
});
183-
}
184-
157+
public class AiChatApplication {
158+
159+
private static final Logger log = LoggerFactory.getLogger(AiChatApplication.class);
160+
161+
public static void main(String[] args) {
162+
SpringApplication.run(AiChatApplication.class, args);
163+
}
164+
165+
@Bean
166+
CommandLineRunner commandLineRunner(ChatClient.Builder builder) {
167+
return args -> {
168+
var chatClient = builder.build();
169+
log.info("Sending chat prompts to AI service. One moment please...");
170+
String response = chatClient.prompt()
171+
.user("What was Microsoft's original internal codename for the project that eventually became Azure?")
172+
.call()
173+
.content();
174+
175+
log.info("Response: {}", response);
176+
};
177+
}
185178
}
186179
```
187180

@@ -203,14 +196,14 @@ ai-chat-demo/
203196
\\/ ___)| |_)| | | | | || (_| | ) ) ) )
204197
' |____| .__|_| |_|_| |_\__, | / / / /
205198
=========|_|==============|___/=/_/_/_/
206-
:: Spring Boot :: (v3.1.5)
207199
208-
2023-11-07T13:31:10.884-06:00 INFO 6248 --- [ main] c.example.aichatdemo.AiChatApplication : No active profile set, falling back to 1 default profile: "default"
209-
2023-11-07T13:31:11.595-06:00 INFO 6248 --- [ main] c.example.aichatdemo.AiChatApplication : Started AiChatApplication in 0.994 seconds (process running for 1.28)
210-
Sending chat prompts to AI service. One moment please...
200+
:: Spring Boot :: (v3.3.4)
211201
212-
Prompt created 1 generated response(s).
213-
Generated respose from "assistant": Yes, other Azure AI services also support customer managed keys. Azure AI Services, Azure Machine Learning, and other AI services in Azure provide options for customers to manage and control their encryption keys. This allows customers to have greater control over their data and security.
202+
2025-03-14T13:35:30.145-04:00 INFO 93252 --- [AIChat] [ main] c.example.aichatdemo.AiChatApplication : Starting AiChatApplication using Java 23.0.2 with PID 93252 (/Users/vega/dev/msft/spring-ai-samples/ai-chat-demo/target/classes started by vega in /Users/vega/dev/msft/spring-ai-samples/ai-chat-demo)
203+
2025-03-14T13:35:30.146-04:00 INFO 93252 --- [AIChat] [ main] c.example.aichatdemo.AiChatApplication : No active profile set, falling back to 1 default profile: "default"
204+
2025-03-14T13:35:30.500-04:00 INFO 93252 --- [AIChat] [ main] c.example.aichatdemo.AiChatApplication : Started AiChatApplication in 0.445 seconds (process running for 0.633)
205+
2025-03-14T13:35:30.501-04:00 INFO 93252 --- [AIChat] [ main] c.example.aichatdemo.AiChatApplication : Sending chat prompts to AI service. One moment please...
206+
2025-03-14T13:35:31.950-04:00 INFO 93252 --- [AIChat] [ main] c.example.aichatdemo.AiChatApplication : Response: Microsoft's original internal codename for the project that eventually became Azure was "Project Red Dog." This initiative ultimately led to the development and launch of the Microsoft Azure cloud computing platform.
214207
```
215208

216209

articles/ai-services/speech-service/high-definition-voices.md

Lines changed: 37 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -8,14 +8,12 @@ ms.reviewer: eur
88
manager: nitinme
99
ms.service: azure-ai-speech
1010
ms.topic: overview
11-
ms.date: 10/9/2024
11+
ms.date: 4/8/2025
1212
ms.custom: references_regions
1313
#customer intent: As a user who implements text to speech, I want to understand the options and differences between available neural text to speech HD voices in Azure AI Speech.
1414
---
1515

16-
# What are high definition voices? (Preview)
17-
18-
[!INCLUDE [Feature preview](../includes/preview-feature.md)]
16+
# What are high definition voices?
1917

2018
Azure AI Speech continues to advance in the field of text to speech technology with the introduction of neural text to speech high definition (HD) voices. The HD voices can understand the content, automatically detect emotions in the input text, and adjust the speaking tone in real-time to match the sentiment. HD voices maintain a consistent voice persona from their neural (and non HD) counterparts, and deliver even more value through enhanced features.
2119

@@ -29,7 +27,6 @@ The following are the key features of Azure AI Speech HD voices:
2927
| **Conversational** | Neural text to speech HD voices can replicate natural speech patterns, including spontaneous pauses and emphasis. When given conversational text, the model can reproduce common phonemes like pauses and filler words. The generated voice sounds as if someone is conversing directly with you. |
3028
| **Prosody variations** | Neural text to speech HD voices introduce slight variations in each output to enhance realism. These variations make the speech sound more natural, as human voices naturally exhibit variation. |
3129
| **High fidelity** | The primary objective of neural text to speech HD voices is to generate high-fidelity audio. The synthetic speech produced by our system can closely mimic human speech in both quality and naturalness. |
32-
| **Version control** | With neural text to speech HD voices, we release different versions of the same voice, each with a unique base model size and recipe. This offers you the opportunity to experience new voice variations or continue using a specific version of a voice. |
3330

3431
## Comparison of Azure AI Speech HD voices to other Azure text to speech voices
3532

@@ -61,21 +58,41 @@ For example, for the persona `en-US-Ava` you can specify the following HD voice
6158

6259
The following table lists the Azure AI Speech HD voices that are currently available.
6360

64-
| Neural voice persona | HD voices |
65-
|----------------------|-----------|
66-
| de-DE-Seraphina | de-DE-Seraphina:DragonHDLatestNeural|
67-
| en-US-Andrew | en-US-Andrew:DragonHDLatestNeural|
68-
| en-US-Andrew2 | en-US-Andrew2:DragonHDLatestNeural|
69-
| en-US-Aria | en-US-Aria:DragonHDLatestNeural |
70-
| en-US-Ava | en-US-Ava:DragonHDLatestNeural|
71-
| en-US-Brian | en-US-Brian:DragonHDLatestNeural|
72-
| en-US-Davis | en-US-Davis:DragonHDLatestNeural|
73-
| en-US-Emma | en-US-Emma:DragonHDLatestNeural |
74-
| en-US-Emma2 | en-US-Emma2:DragonHDLatestNeural |
75-
| en-US-Jenny | en-US-Jenny:DragonHDLatestNeural |
76-
| en-US-Steffan | en-US-Steffan:DragonHDLatestNeural |
77-
| ja-JP-Masaru | ja-JP-Masaru:DragonHDLatestNeural|
78-
| zh-CN-Xiaochen | zh-CN-Xiaochen:DragonHDLatestNeural |
61+
| Persona | Full Name | Status |
62+
|-----------|-----------|--------|
63+
| de-DE-Florian | de-DE-Florian:DragonHDLatestNeural | GA |
64+
| de-DE-Seraphina | de-DE-Seraphina:DragonHDLatestNeural | GA |
65+
| en-US-Adam | en-US-Adam:DragonHDLatestNeural | GA |
66+
| en-US-Andrew | en-US-Andrew:DragonHDLatestNeural | GA |
67+
| en-US-Andrew2 | en-US-Andrew2:DragonHDLatestNeural | GA |
68+
| en-US-Ava | en-US-Ava:DragonHDLatestNeural | GA |
69+
| en-US-Brian | en-US-Brian:DragonHDLatestNeural | GA |
70+
| en-US-Davis | en-US-Davis:DragonHDLatestNeural | GA |
71+
| en-US-Emma | en-US-Emma:DragonHDLatestNeural | GA |
72+
| en-US-Emma | en-US-Emma2:DragonHDLatestNeural | GA |
73+
| en-US-Steffan | en-US-Steffan:DragonHDLatestNeural | GA |
74+
| en-US-Alloy | en-US-Alloy:DragonHDLatestNeural | Preview |
75+
| en-US-Andrew | en-US-Andrew3:DragonHDLatestNeural | Preview |
76+
| en-US-Aria | en-US-Aria:DragonHDLatestNeural | Preview |
77+
| en-US-Ava | en-US-Ava3:DragonHDLatestNeural | Preview |
78+
| en-US-Jenny | en-US-Jenny:DragonHDLatestNeural | Preview |
79+
| en-US-MultiTalker-Ava-Andrew | en-US-MultiTalker-Ava-Andrew:DragonHDLatestNeural | Preview |
80+
| en-US-Nova | en-US-Nova:DragonHDLatestNeural | Preview |
81+
| en-US-Phoebe | en-US-Phoebe:DragonHDLatestNeural | Preview |
82+
| en-US-Serena | en-US-Serena:DragonHDLatestNeural | Preview |
83+
| es-ES-Tristan | es-ES-Tristan:DragonHDLatestNeural | GA |
84+
| es-ES-Ximena | es-ES-Ximena:DragonHDLatestNeural | GA |
85+
| fr-FR-Remy | fr-FR-Remy:DragonHDLatestNeural | GA |
86+
| fr-FR-Vivienne | fr-FR-Vivienne:DragonHDLatestNeural | GA |
87+
| ja-JP-Masaru | ja-JP-Masaru:DragonHDLatestNeural | GA |
88+
| ja-JP-Nanami | ja-JP-Nanami:DragonHDLatestNeural | GA |
89+
| zh-CN-Xiaochen | zh-CN-Xiaochen:DragonHDFlashLatestNeural | Preview |
90+
| zh-CN-Xiaoxiao | zh-CN-Xiaoxiao:DragonHDFlashLatestNeural | Preview |
91+
| zh-CN-Xiaoxiao2 | zh-CN-Xiaoxiao2:DragonHDFlashLatestNeural | Preview |
92+
| zh-CN-Yunxiao | zh-CN-Yunxiao:DragonHDFlashLatestNeural | Preview |
93+
| zh-CN-Yunyi | zh-CN-Yunyi:DragonHDFlashLatestNeural | Preview |
94+
| zh-CN-Xiaochen | zh-CN-Xiaochen:DragonHDLatestNeural | GA |
95+
| zh-CN-Yunfan | zh-CN-Yunfan:DragonHDLatestNeural | GA |
7996

8097
## How to use Azure AI Speech HD voices
8198

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
---
2+
author: eric-urban
3+
ms.service: azure-ai-speech
4+
ms.date: 4/8/2025
5+
ms.topic: include
6+
ms.author: eur
7+
---
8+
9+
| Locale (BCP-47) | Language | Text to speech voices |
10+
| ----- | ----- | ----- |
11+
| `en-US` | English (United States) |
12+
| `en-US-MultiTalker-Ava-Andrew:DragonHDLatestNeural`<sup>1</sup> (Neutral) |
13+
14+
<sup>1</sup> The neural voice is available in public preview. Voices and styles in public preview are only available in these service [regions](../../regions.md): East US, West Europe, and Southeast Asia.
15+

0 commit comments

Comments
 (0)