|
@@ -38,7 +38,7 @@ export class AiChatComponentComponent implements OnInit {
|
|
interval: any; // 用于存储定时器的引用
|
|
interval: any; // 用于存储定时器的引用
|
|
elapsedSeconds: number = 0; // 计时器的秒数
|
|
elapsedSeconds: number = 0; // 计时器的秒数
|
|
isLoading: boolean = true; // AI生成文本加载状态,刚开始AI向你打招呼,所以处于加载状态
|
|
isLoading: boolean = true; // AI生成文本加载状态,刚开始AI向你打招呼,所以处于加载状态
|
|
-
|
|
|
|
|
|
+ isVoiceModalOpen=false; // 语音识别modal默认关闭
|
|
|
|
|
|
constructor(private navCtrl: NavController,private alertController: AlertController) {
|
|
constructor(private navCtrl: NavController,private alertController: AlertController) {
|
|
// 初始化语音识别
|
|
// 初始化语音识别
|
|
@@ -59,7 +59,7 @@ initSpeechRecognition() {
|
|
// 处理识别结果
|
|
// 处理识别结果
|
|
this.recognition.onresult = (event: any) => {
|
|
this.recognition.onresult = (event: any) => {
|
|
this.recognizedContent += event.results[event.results.length - 1][0].transcript; // 追加识别结果
|
|
this.recognizedContent += event.results[event.results.length - 1][0].transcript; // 追加识别结果
|
|
- this.userMessage = this.recognizedContent; // 实时更新 userMessage
|
|
|
|
|
|
+
|
|
console.log("识别到的内容:", this.recognizedContent); // 打印识别到的内容
|
|
console.log("识别到的内容:", this.recognizedContent); // 打印识别到的内容
|
|
};
|
|
};
|
|
|
|
|
|
@@ -78,6 +78,7 @@ this.recognition.onresult = (event: any) => {
|
|
|
|
|
|
// 启动语音识别
|
|
// 启动语音识别
|
|
startVoice() {
|
|
startVoice() {
|
|
|
|
+ this.isVoiceModalOpen=true;
|
|
if (this.recognition && this.recognition.state !== 'active') { // 检查识别状态
|
|
if (this.recognition && this.recognition.state !== 'active') { // 检查识别状态
|
|
this.recognition.start(); // 启动语音识别
|
|
this.recognition.start(); // 启动语音识别
|
|
console.log('语音识别启动...');
|
|
console.log('语音识别启动...');
|
|
@@ -87,6 +88,10 @@ startVoice() {
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+cancleVoice() {
|
|
|
|
+ this.isVoiceModalOpen=false;
|
|
|
|
+}
|
|
|
|
+
|
|
// 启动计时器
|
|
// 启动计时器
|
|
startTimer() {
|
|
startTimer() {
|
|
this.elapsedSeconds = 0; // 重置秒数
|
|
this.elapsedSeconds = 0; // 重置秒数
|
|
@@ -112,7 +117,7 @@ cancelVoiceInput() {
|
|
this.timer = '00:00'; // 重置计时器显示
|
|
this.timer = '00:00'; // 重置计时器显示
|
|
this.recognizedContent = ''; // 清空识别内容
|
|
this.recognizedContent = ''; // 清空识别内容
|
|
}
|
|
}
|
|
-
|
|
|
|
|
|
+ this.isVoiceModalOpen=false;
|
|
}
|
|
}
|
|
|
|
|
|
// 发送语音输入
|
|
// 发送语音输入
|
|
@@ -124,10 +129,11 @@ sendVoiceInput() {
|
|
this.timer = '00:00'; // 重置计时器显示
|
|
this.timer = '00:00'; // 重置计时器显示
|
|
|
|
|
|
// 将识别到的内容传到输入框中
|
|
// 将识别到的内容传到输入框中
|
|
- this.userMessage = this.recognizedContent.trim(); // 将识别内容赋值给输入框,并去除多余空格
|
|
|
|
|
|
+ this.userMessage += this.recognizedContent.trim(); // 将识别内容赋值给输入框,并去除多余空格
|
|
|
|
|
|
this.recognizedContent = ''; // 清空识别内容
|
|
this.recognizedContent = ''; // 清空识别内容
|
|
}
|
|
}
|
|
|
|
+ this.isVoiceModalOpen=false;
|
|
}
|
|
}
|
|
goBack() {
|
|
goBack() {
|
|
this.navCtrl.back(); // 返回上一页
|
|
this.navCtrl.back(); // 返回上一页
|
|
@@ -229,10 +235,32 @@ sendVoiceInput() {
|
|
});
|
|
});
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
+
|
|
|
|
+ isEmojiPickerOpen: boolean = false; // 控制表情选择器的打开状态
|
|
|
|
+ emojis: string[] = ['😀', '😃', '😄', '😁', '😆', '😅', '🤣', '😂', '🙂', '🙃', '🫠', '😉', '😊', '😇', '🥰', '😍', '🤩', '😘',
|
|
|
|
+ '😗', '☺️', '😚', '😙', '🥲', '😋', '😛', '😜', '🤪', '😝', '🤑', '🤗', '🤭', '🫢', '🫣', '🤫', '🤔', '🫡', '🤐', '🤨', '😐',
|
|
|
|
+ '😑', '😶', '🫥', '😶🌫️', '😏', '😒', '🙄', '😬', '😮💨', '🤥', '🫨', '🙂↔️', '🙂↕️', '😌', '😔', '😪', '🤤', '😴', '', '😷',
|
|
|
|
+ '🤒', '🤕', '🤢', '🤮', '🤧', '🥵', '🥶', '🥴', '😵', '😵💫', '🤯', '🤠', '🥳', '🥸', '😎', '🤓', '🧐', '😕', '🫤', '😟',
|
|
|
|
+ '🙁', '☹️', '😮', '😯', '😲', '😳', '🥺', '🥹', '😦', '😧', '😨', '😰', '😥', '😢', '😭', '😱', '😖', '😣', '😞', '😓',
|
|
|
|
+ '😩', '😫', '🥱', '😤', '😡', '😠', '🤬', '😈', '👿', '💀', '☠️', '💩', '🤡', '👹', '👺', '👻', '👽', '👾', '🤖', '😺',
|
|
|
|
+ '😸', '😹', '😻', '😼', '😽', '🙀', '😿', '😾', '🙈', '🙉', '🙊', '💌', '💘', '❤️', '🖤', '💋', '💯', '💢', '💥', '💫',
|
|
|
|
+ '💦', '💤']; // 表情数组
|
|
// 打开表情选择器
|
|
// 打开表情选择器
|
|
- openEmojiPicker() {
|
|
|
|
- console.log("打开表情选择器");
|
|
|
|
-
|
|
|
|
- }
|
|
|
|
|
|
+openEmojiPicker() {
|
|
|
|
+ this.isEmojiPickerOpen = true; // 打开模态框
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+// 关闭表情选择器
|
|
|
|
+closeEmojiPicker() {
|
|
|
|
+ this.isEmojiPickerOpen = false; // 关闭模态框
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+// 添加表情到输入框
|
|
|
|
+addEmoji(emoji: string) {
|
|
|
|
+ this.userMessage += emoji; // 将选中的表情添加到输入框
|
|
|
|
+ this.closeEmojiPicker(); // 关闭模态框
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+
|
|
|
|
|
|
}
|
|
}
|