diff --git a/app/device_logs b/app/device_logs new file mode 160000 index 000000000..0a4f9e8f5 --- /dev/null +++ b/app/device_logs @@ -0,0 +1 @@ +Subproject commit 0a4f9e8f513e3a1e8253942c4cf6922b48259b20 diff --git a/app/language_model b/app/language_model new file mode 160000 index 000000000..cdf6c5656 --- /dev/null +++ b/app/language_model @@ -0,0 +1 @@ +Subproject commit cdf6c56565cb95691ca7fdfeba31cb5a73c1742d diff --git a/app/recordings/app_config.php b/app/recordings/app_config.php index 6ca206625..ab8692345 100644 --- a/app/recordings/app_config.php +++ b/app/recordings/app_config.php @@ -184,6 +184,12 @@ $apps[$x]['db'][$y]['fields'][$z]['search'] = 'true'; $apps[$x]['db'][$y]['fields'][$z]['description']['en-us'] = ""; $z++; + $apps[$x]['db'][$y]['fields'][$z]['name'] = "recording_speed"; + $apps[$x]['db'][$y]['fields'][$z]['type']['pgsql'] = "numeric"; + $apps[$x]['db'][$y]['fields'][$z]['type']['sqlite'] = "text"; + $apps[$x]['db'][$y]['fields'][$z]['type']['mysql'] = "decimal(4,2)"; + $apps[$x]['db'][$y]['fields'][$z]['description']['en-us'] = "Speech speed (0.25 to 4.0, default 1.0)."; + $z++; $apps[$x]['db'][$y]['fields'][$z]['name'] = "recording_message"; $apps[$x]['db'][$y]['fields'][$z]['type'] = "text"; $apps[$x]['db'][$y]['fields'][$z]['search'] = 'true'; diff --git a/app/recordings/app_languages.php b/app/recordings/app_languages.php index ec9f8b9f3..11f3865bd 100644 --- a/app/recordings/app_languages.php +++ b/app/recordings/app_languages.php @@ -648,6 +648,60 @@ $text['description-voice']['zh-cn'] = "选择用于录音的声音。"; $text['description-voice']['ja-jp'] = "録音に使用する音声を選択します。"; $text['description-voice']['ko-kr'] = "녹음에 사용되는 음성을 선택합니다."; +$text['label-speed']['en-us'] = "Speed"; +$text['label-speed']['en-gb'] = "Speed"; +$text['label-speed']['ar-eg'] = "سرعة"; +$text['label-speed']['de-at'] = "Geschwindigkeit"; +$text['label-speed']['de-ch'] = "Geschwindigkeit"; +$text['label-speed']['de-de'] = "Geschwindigkeit"; +$text['label-speed']['el-gr'] = "Ταχύτητα"; +$text['label-speed']['es-cl'] = "Velocidad"; +$text['label-speed']['es-mx'] = "Velocidad"; +$text['label-speed']['fr-ca'] = "Vitesse"; +$text['label-speed']['fr-fr'] = "Vitesse"; +$text['label-speed']['he-il'] = "מהירות"; +$text['label-speed']['it-it'] = "Velocità"; +$text['label-speed']['ka-ge'] = "სიჩქარე"; +$text['label-speed']['nl-nl'] = "Snelheid"; +$text['label-speed']['pl-pl'] = "Prędkość"; +$text['label-speed']['pt-br'] = "Velocidade"; +$text['label-speed']['pt-pt'] = "Velocidade"; +$text['label-speed']['ro-ro'] = "Viteză"; +$text['label-speed']['ru-ru'] = "Скорость"; +$text['label-speed']['sv-se'] = "Hastighet"; +$text['label-speed']['uk-ua'] = "Швидкість"; +$text['label-speed']['tr-tr'] = "Hız"; +$text['label-speed']['zh-cn'] = "速度"; +$text['label-speed']['ja-jp'] = "速度"; +$text['label-speed']['ko-kr'] = "속도"; + +$text['description-speed']['en-us'] = "Select the speech speed (1.0 is normal)."; +$text['description-speed']['en-gb'] = "Select the speech speed (1.0 is normal)."; +$text['description-speed']['ar-eg'] = "حدد سرعة الكلام (1.0 طبيعي)."; +$text['description-speed']['de-at'] = "Wählen Sie die Sprachgeschwindigkeit aus (1.0 ist normal)."; +$text['description-speed']['de-ch'] = "Wählen Sie die Sprachgeschwindigkeit aus (1.0 ist normal)."; +$text['description-speed']['de-de'] = "Wählen Sie die Sprachgeschwindigkeit aus (1.0 ist normal)."; +$text['description-speed']['el-gr'] = "Επιλέξτε την ταχύτητα ομιλίας (1.0 είναι κανονική)."; +$text['description-speed']['es-cl'] = "Seleccione la velocidad de voz (1.0 es normal)."; +$text['description-speed']['es-mx'] = "Seleccione la velocidad de voz (1.0 es normal)."; +$text['description-speed']['fr-ca'] = "Sélectionnez la vitesse de parole (1.0 est normal)."; +$text['description-speed']['fr-fr'] = "Sélectionnez la vitesse de parole (1.0 est normal)."; +$text['description-speed']['he-il'] = "בחר את מהירות הדיבור (1.0 רגיל)."; +$text['description-speed']['it-it'] = "Seleziona la velocità del parlato (1.0 è normale)."; +$text['description-speed']['ka-ge'] = "აირჩიეთ მეტყველების სიჩქარე (1.0 ნორმალურია)."; +$text['description-speed']['nl-nl'] = "Selecteer de spraaksnelheid (1.0 is normaal)."; +$text['description-speed']['pl-pl'] = "Wybierz prędkość mowy (1.0 jest normalna)."; +$text['description-speed']['pt-br'] = "Selecione a velocidade de fala (1.0 é normal)."; +$text['description-speed']['pt-pt'] = "Selecione a velocidade de fala (1.0 é normal)."; +$text['description-speed']['ro-ro'] = "Selectați viteza de vorbire (1.0 este normală)."; +$text['description-speed']['ru-ru'] = "Выберите скорость речи (1.0 — нормальная)."; +$text['description-speed']['sv-se'] = "Välj talhastigheten (1.0 är normal)."; +$text['description-speed']['uk-ua'] = "Виберіть швидкість мовлення (1.0 — нормальна)."; +$text['description-speed']['tr-tr'] = "Konuşma hızını seçin (1.0 normaldir)."; +$text['description-speed']['zh-cn'] = "选择语音速度(1.0 为正常)。"; +$text['description-speed']['ja-jp'] = "音声速度を選択します(1.0 が通常です)。"; +$text['description-speed']['ko-kr'] = "음성 속도를 선택하세요(1.0이 보통)."; + $text['label-message']['en-us'] = "Message"; $text['label-message']['en-gb'] = "Message"; $text['label-message']['ar-eg'] = "رسالة"; diff --git a/app/recordings/recording_edit.php b/app/recordings/recording_edit.php index ab83e9fa8..f1b30ce28 100644 --- a/app/recordings/recording_edit.php +++ b/app/recordings/recording_edit.php @@ -43,7 +43,10 @@ $recording_name = ''; $recording_message = ''; $recording_description = ''; + $recording_speed = '1.0'; $recording_uuid = ''; + $speed_enabled = false; + $speed_options = []; $translate_enabled = false; $language_enabled = false; @@ -64,6 +67,8 @@ $speech = new speech($settings); $voices = $speech->get_voices(); $recording_extension = $speech->get_format(); + $speed_enabled = $speech->is_speed_enabled(); + $speed_options = $speed_enabled ? $speech->get_speed_options() : []; //$speech_models = $speech->get_models(); //$translate_enabled = $speech->get_translate_enabled(); //$language_enabled = $speech->get_language_enabled(); @@ -131,6 +136,8 @@ //$recording_language = $_POST["recording_language"]; //$translate = $_POST["translate"]; $recording_voice = $_POST["recording_voice"]; + $recording_speed_allowed = array_keys($speed_options ?? []); + $recording_speed = (!empty($recording_speed_allowed) && in_array($_POST["recording_speed"] ?? '', $recording_speed_allowed)) ? $_POST["recording_speed"] : '1.0'; $recording_message = $_POST["recording_message"]; $recording_description = $_POST["recording_description"]; @@ -259,6 +266,9 @@ $speech->audio_filename = $recording_filename; //$speech->audio_model = $recording_model ?? ''; $speech->audio_voice = $recording_voice; + if ($speed_enabled) { + $speech->audio_speed = (float)$recording_speed; + } //$speech->audio_language = $recording_language; //$speech->audio_translate = $translate; $speech->audio_message = $recording_message; @@ -276,6 +286,7 @@ } unset($recording_filename_temp); } + } //audio to text - get the transcription from the audio file @@ -296,6 +307,9 @@ } if ($speech_enabled || $transcribe_enabled) { $array['recordings'][0]['recording_voice'] = $recording_voice; + if ($speed_enabled) { + $array['recordings'][0]['recording_speed'] = $recording_speed; + } $array['recordings'][0]['recording_message'] = $recording_message; } $array['recordings'][0]['recording_description'] = $recording_description; @@ -318,7 +332,7 @@ if (!empty($_GET) && empty($_POST["persistformvar"])) { $recording_uuid = $_GET["id"]; $sql = "select recording_name, recording_filename, "; - $sql .= "recording_voice, recording_message, recording_description "; + $sql .= "recording_voice, recording_speed, recording_message, recording_description "; $sql .= "from v_recordings "; $sql .= "where domain_uuid = :domain_uuid "; $sql .= "and recording_uuid = :recording_uuid "; @@ -329,6 +343,7 @@ $recording_filename = $row["recording_filename"]; $recording_name = $row["recording_name"]; $recording_voice = $row["recording_voice"]; + $recording_speed = !empty($row["recording_speed"]) ? $row["recording_speed"] : '1.0'; $recording_message = $row["recording_message"]; $recording_description = $row["recording_description"]; } @@ -478,6 +493,25 @@ echo "\n"; echo "\n"; + //speed + if ($speed_enabled) { + echo "\n"; + echo "\n"; + echo " ".($text['label-speed'] ?? 'Speed')."\n"; + echo "\n"; + echo "\n"; + echo " \n"; + echo "
\n"; + echo ($text['description-speed'] ?? 'Select the speech speed (1.0 is normal).')."\n"; + echo "\n"; + echo "\n"; + } + if ($language_enabled) { echo "\n"; echo "\n"; diff --git a/app/speech b/app/speech new file mode 160000 index 000000000..f33e33f09 --- /dev/null +++ b/app/speech @@ -0,0 +1 @@ +Subproject commit f33e33f09decc7bbf8da658a728bb22ad2d429a9 diff --git a/app/transcribe b/app/transcribe new file mode 160000 index 000000000..5230939cb --- /dev/null +++ b/app/transcribe @@ -0,0 +1 @@ +Subproject commit 5230939cb3142a16e64d4dd667d6477e97959bfa