From 45a5bd0b8592b850a916244f3e1931aead31ab3e Mon Sep 17 00:00:00 2001 From: walker Date: Tue, 14 May 2024 10:00:22 +0800 Subject: [PATCH] =?UTF-8?q?=E8=AF=AD=E9=9F=B3=E4=BC=9A=E8=AF=9D=E5=9C=BA?= =?UTF-8?q?=E6=99=AF=E8=AF=AD=E9=9F=B3=E8=AF=86=E5=88=AB-=E5=BD=95?= =?UTF-8?q?=E9=9F=B3=E5=A4=84=E7=90=86=E9=80=BB=E8=BE=91=E5=AE=8C=E6=88=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Assets/training_speech/correct.mp3 | Bin 0 -> 17929 bytes Assets/training_speech/correct.mp3.import | 19 +++++ Communication/voice_communication.gd | 83 ++++++++++++---------- UI/station_keys/station_keys_window.tscn | 2 +- project.godot | 4 +- trainings/training1.gd | 4 +- trainings/training1.tscn | 1 - 7 files changed, 68 insertions(+), 45 deletions(-) create mode 100644 Assets/training_speech/correct.mp3 create mode 100644 Assets/training_speech/correct.mp3.import diff --git a/Assets/training_speech/correct.mp3 b/Assets/training_speech/correct.mp3 new file mode 100644 index 0000000000000000000000000000000000000000..49b1de028ee9c5a5ebd3271ff0fb15e8202003c7 GIT binary patch literal 17929 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 VolumeMin or vec.y > VolumeMin: #print("Left channel volume = ", vec.x, ", Right volume = ", vec.y) - hasvoice = true - if hasvoice: - if novoiceTime > LongTimeNoVoice: - novoiceTime = 0 - ## 重新开始录音 - stopRecord() - startRecord() + soundDetected = true + # 检测到声音处理 + if soundDetected: + hasVoice = true + novoiceTime = 0 + # 未检测到声音处理 else: novoiceTime += $Timer.wait_time - if novoiceTime >= LongTimeNoVoice: - print("长时间没有说话: ", novoiceTime) + if hasVoice and novoiceTime >= LongTimeNoVoice: var rcd = effect.get_recording() - stopRecord() - await play_reply(rcd) + if rcd == null: + return + print("音频时长: ", rcd.get_length()) + restartRecord() + #await play_reply(rcd) if rcd.get_length() > 5: + await play_reply(reply_correct) speech_recognition_successed.emit() - else: - startRecord() - #if effect.is_recording_active(): - #recording = effect.get_recording() - #print(recording.data.size(), ", ", recording.format, ", ", recording.loop_mode, ", ", recording.get_length()) - #stopRecord() - #var player = AudioStreamPlayer.new() - #add_child(player) - #player.stream = recording - #player.play() - #player.finished.connect( _on_audio_play_finished.bind(player)) - #startRecord() + #else: + #startRecord() + hasVoice = false + # 长时间无语音输入,重启录音 + if novoiceTime >= LongTimeNoVoice: + print("长时间无声音,重启录音") + restartRecord() + novoiceTime = 0 - -func _on_audio_play_finished(player): - print(player, "播放完成") - player.stop() - player.queue_free() - pass diff --git a/UI/station_keys/station_keys_window.tscn b/UI/station_keys/station_keys_window.tscn index 1471594..b642d0b 100644 --- a/UI/station_keys/station_keys_window.tscn +++ b/UI/station_keys/station_keys_window.tscn @@ -7,7 +7,7 @@ [ext_resource type="PackedScene" uid="uid://bsr40ogx2e2ir" path="res://UI/station_keys/jjtc_key_control.tscn" id="2_cndsv"] [ext_resource type="FontFile" uid="uid://bkbpyidjguavf" path="res://Assets/FeiHuaSongTi-2.ttf" id="2_mlqh2"] [ext_resource type="PackedScene" uid="uid://biwdpy5pifxgi" path="res://UI/station_keys/lcb_key_control.tscn" id="2_xelwb"] -[ext_resource type="PackedScene" uid="uid://blixp06e6vnoe" path="res://UI/station_keys/hsjc_key_control.tscn" id="9_q6qly"] +[ext_resource type="PackedScene" path="res://UI/station_keys/hsjc_key_control.tscn" id="9_q6qly"] [ext_resource type="AudioStream" uid="uid://di5nwer0mdafr" path="res://Assets/music/箭头提示音.mp3" id="10_cspe3"] [sub_resource type="StyleBoxEmpty" id="StyleBoxEmpty_1w22c"] diff --git a/project.godot b/project.godot index 9962b21..cd43a5e 100644 --- a/project.godot +++ b/project.godot @@ -22,8 +22,8 @@ driver/mix_rate.web=16000 [display] -window/size/viewport_width=1920 -window/size/viewport_height=1080 +window/size/viewport_width=1600 +window/size/viewport_height=900 window/size/initial_position_type=0 window/stretch/mode="viewport" diff --git a/trainings/training1.gd b/trainings/training1.gd index e831c0a..f70f3e6 100644 --- a/trainings/training1.gd +++ b/trainings/training1.gd @@ -16,6 +16,4 @@ func _ready(): func _on_training_desc_dialog_start_training(): await $VoiceCommunication.play_reply(a_xt_pslgbztmwx) - #await $VoiceCommunication.play_reply(a_zby_ztmjczc) - #await $VoiceCommunication.play_reply(a_sd) - await $VoiceCommunication.speech_record_check([]) + await $VoiceCommunication.speech_record_check("值班员,上行2号门关门故障,使用LCB关闭站台门") diff --git a/trainings/training1.tscn b/trainings/training1.tscn index 71b1767..8258300 100644 --- a/trainings/training1.tscn +++ b/trainings/training1.tscn @@ -10,7 +10,6 @@ trainingName = "站台单档滑动门关门故障处置" trainingDesc = "列车关门作业,突发单个站台门未正常关闭。" [node name="TrainingDescDialog" parent="." instance=ExtResource("2_oc00d")] -size = Vector2i(400, 300) [node name="VoiceCommunication" parent="." instance=ExtResource("3_ceo1a")]