Spaces:
Running
Running
Upgrade to elevenlabs v3 and added emotion tags
Browse files
reachy_f1_commentator/config/enhanced_templates.json
CHANGED
|
@@ -942,7 +942,7 @@
|
|
| 942 |
"event_type": "overtake",
|
| 943 |
"excitement_level": "excited",
|
| 944 |
"perspective": "dramatic",
|
| 945 |
-
"template_text": "{driver1} makes the move! {pronoun} gets past {driver2} for {position}, and that's a crucial overtake!",
|
| 946 |
"required_placeholders": [
|
| 947 |
"driver1",
|
| 948 |
"driver2",
|
|
@@ -958,7 +958,7 @@
|
|
| 958 |
"event_type": "overtake",
|
| 959 |
"excitement_level": "excited",
|
| 960 |
"perspective": "dramatic",
|
| 961 |
-
"template_text": "What a move by {driver1}! {pronoun} sweeps around {driver2} to take {position}!",
|
| 962 |
"required_placeholders": [
|
| 963 |
"driver1",
|
| 964 |
"driver2",
|
|
@@ -974,7 +974,7 @@
|
|
| 974 |
"event_type": "overtake",
|
| 975 |
"excitement_level": "excited",
|
| 976 |
"perspective": "dramatic",
|
| 977 |
-
"template_text": "{driver1} goes for it! {pronoun} overtakes {driver2} for {position} with a brilliant maneuver!",
|
| 978 |
"required_placeholders": [
|
| 979 |
"driver1",
|
| 980 |
"driver2",
|
|
@@ -990,7 +990,7 @@
|
|
| 990 |
"event_type": "overtake",
|
| 991 |
"excitement_level": "excited",
|
| 992 |
"perspective": "dramatic",
|
| 993 |
-
"template_text": "Fantastic overtake! {driver1} gets by {driver2} to claim {position}!",
|
| 994 |
"required_placeholders": [
|
| 995 |
"driver1",
|
| 996 |
"driver2",
|
|
@@ -1004,7 +1004,7 @@
|
|
| 1004 |
"event_type": "overtake",
|
| 1005 |
"excitement_level": "excited",
|
| 1006 |
"perspective": "dramatic",
|
| 1007 |
-
"template_text": "{driver1} makes it stick! {pronoun} passes {driver2} for {position} after an intense battle!",
|
| 1008 |
"required_placeholders": [
|
| 1009 |
"driver1",
|
| 1010 |
"driver2",
|
|
@@ -1020,7 +1020,7 @@
|
|
| 1020 |
"event_type": "overtake",
|
| 1021 |
"excitement_level": "excited",
|
| 1022 |
"perspective": "dramatic",
|
| 1023 |
-
"template_text": "Brilliant move! {driver1} overtakes {driver2} into {position}, and {driver2} has no answer!",
|
| 1024 |
"required_placeholders": [
|
| 1025 |
"driver1",
|
| 1026 |
"driver2",
|
|
@@ -1034,7 +1034,7 @@
|
|
| 1034 |
"event_type": "overtake",
|
| 1035 |
"excitement_level": "excited",
|
| 1036 |
"perspective": "dramatic",
|
| 1037 |
-
"template_text": "{driver1} seizes the moment! {pronoun} gets past {driver2} for {position} with a daring move!",
|
| 1038 |
"required_placeholders": [
|
| 1039 |
"driver1",
|
| 1040 |
"driver2",
|
|
@@ -1050,7 +1050,7 @@
|
|
| 1050 |
"event_type": "overtake",
|
| 1051 |
"excitement_level": "excited",
|
| 1052 |
"perspective": "dramatic",
|
| 1053 |
-
"template_text": "Superb overtake by {driver1}! {pronoun} takes {position} from {driver2} with authority!",
|
| 1054 |
"required_placeholders": [
|
| 1055 |
"driver1",
|
| 1056 |
"driver2",
|
|
@@ -1066,7 +1066,7 @@
|
|
| 1066 |
"event_type": "overtake",
|
| 1067 |
"excitement_level": "excited",
|
| 1068 |
"perspective": "dramatic",
|
| 1069 |
-
"template_text": "{driver1} makes the breakthrough! {pronoun} finally gets by {driver2} for {position}!",
|
| 1070 |
"required_placeholders": [
|
| 1071 |
"driver1",
|
| 1072 |
"driver2",
|
|
@@ -1082,7 +1082,7 @@
|
|
| 1082 |
"event_type": "overtake",
|
| 1083 |
"excitement_level": "excited",
|
| 1084 |
"perspective": "dramatic",
|
| 1085 |
-
"template_text": "Excellent move! {driver1} overtakes {driver2} to take {position}, and that's a big moment!",
|
| 1086 |
"required_placeholders": [
|
| 1087 |
"driver1",
|
| 1088 |
"driver2",
|
|
@@ -1096,7 +1096,7 @@
|
|
| 1096 |
"event_type": "overtake",
|
| 1097 |
"excitement_level": "dramatic",
|
| 1098 |
"perspective": "dramatic",
|
| 1099 |
-
"template_text": "{driver1} MAKES THE MOVE! {pronoun} OVERTAKES {driver2} FOR {position}! WHAT A MOMENT!",
|
| 1100 |
"required_placeholders": [
|
| 1101 |
"driver1",
|
| 1102 |
"driver2",
|
|
@@ -1112,7 +1112,7 @@
|
|
| 1112 |
"event_type": "overtake",
|
| 1113 |
"excitement_level": "dramatic",
|
| 1114 |
"perspective": "dramatic",
|
| 1115 |
-
"template_text": "INCREDIBLE! {driver1} GETS PAST {driver2} TO TAKE {position}! THIS IS MASSIVE!",
|
| 1116 |
"required_placeholders": [
|
| 1117 |
"driver1",
|
| 1118 |
"driver2",
|
|
@@ -1126,7 +1126,7 @@
|
|
| 1126 |
"event_type": "overtake",
|
| 1127 |
"excitement_level": "dramatic",
|
| 1128 |
"perspective": "dramatic",
|
| 1129 |
-
"template_text": "{driver1} GOES FOR IT AND MAKES IT STICK! {pronoun} TAKES {position} FROM {driver2}!",
|
| 1130 |
"required_placeholders": [
|
| 1131 |
"driver1",
|
| 1132 |
"driver2",
|
|
@@ -1142,7 +1142,7 @@
|
|
| 1142 |
"event_type": "overtake",
|
| 1143 |
"excitement_level": "dramatic",
|
| 1144 |
"perspective": "dramatic",
|
| 1145 |
-
"template_text": "SENSATIONAL OVERTAKE! {driver1} SWEEPS AROUND {driver2} FOR {position}!",
|
| 1146 |
"required_placeholders": [
|
| 1147 |
"driver1",
|
| 1148 |
"driver2",
|
|
@@ -1156,7 +1156,7 @@
|
|
| 1156 |
"event_type": "overtake",
|
| 1157 |
"excitement_level": "dramatic",
|
| 1158 |
"perspective": "dramatic",
|
| 1159 |
-
"template_text": "{driver1} MAKES THE BREAKTHROUGH! {pronoun} FINALLY GETS BY {driver2} FOR {position}!",
|
| 1160 |
"required_placeholders": [
|
| 1161 |
"driver1",
|
| 1162 |
"driver2",
|
|
@@ -1172,7 +1172,7 @@
|
|
| 1172 |
"event_type": "overtake",
|
| 1173 |
"excitement_level": "dramatic",
|
| 1174 |
"perspective": "dramatic",
|
| 1175 |
-
"template_text": "WHAT A MOVE! {driver1} OVERTAKES {driver2} TO CLAIM {position}! ABSOLUTELY BRILLIANT!",
|
| 1176 |
"required_placeholders": [
|
| 1177 |
"driver1",
|
| 1178 |
"driver2",
|
|
@@ -1186,7 +1186,7 @@
|
|
| 1186 |
"event_type": "overtake",
|
| 1187 |
"excitement_level": "dramatic",
|
| 1188 |
"perspective": "dramatic",
|
| 1189 |
-
"template_text": "{driver1} SEIZES THE OPPORTUNITY! {pronoun} PASSES {driver2} FOR {position}! INCREDIBLE RACING!",
|
| 1190 |
"required_placeholders": [
|
| 1191 |
"driver1",
|
| 1192 |
"driver2",
|
|
@@ -1202,7 +1202,7 @@
|
|
| 1202 |
"event_type": "overtake",
|
| 1203 |
"excitement_level": "dramatic",
|
| 1204 |
"perspective": "dramatic",
|
| 1205 |
-
"template_text": "FANTASTIC! {driver1} GETS PAST {driver2} FOR {position}! THIS CHANGES EVERYTHING!",
|
| 1206 |
"required_placeholders": [
|
| 1207 |
"driver1",
|
| 1208 |
"driver2",
|
|
@@ -1216,7 +1216,7 @@
|
|
| 1216 |
"event_type": "overtake",
|
| 1217 |
"excitement_level": "dramatic",
|
| 1218 |
"perspective": "dramatic",
|
| 1219 |
-
"template_text": "{driver1} MAKES IT HAPPEN! {pronoun} OVERTAKES {driver2} INTO {position}! WHAT DRAMA!",
|
| 1220 |
"required_placeholders": [
|
| 1221 |
"driver1",
|
| 1222 |
"driver2",
|
|
@@ -1232,7 +1232,7 @@
|
|
| 1232 |
"event_type": "overtake",
|
| 1233 |
"excitement_level": "dramatic",
|
| 1234 |
"perspective": "dramatic",
|
| 1235 |
-
"template_text": "BRILLIANT MOVE BY {driver1}! {pronoun} TAKES {position} FROM {driver2}! ABSOLUTELY STUNNING!",
|
| 1236 |
"required_placeholders": [
|
| 1237 |
"driver1",
|
| 1238 |
"driver2",
|
|
@@ -1720,7 +1720,7 @@
|
|
| 1720 |
"event_type": "fastest_lap",
|
| 1721 |
"excitement_level": "excited",
|
| 1722 |
"perspective": "dramatic",
|
| 1723 |
-
"template_text": "Brilliant lap from {driver}! A {lap_time}, and that's the fastest of the race!",
|
| 1724 |
"required_placeholders": [
|
| 1725 |
"driver"
|
| 1726 |
],
|
|
@@ -1736,7 +1736,7 @@
|
|
| 1736 |
"event_type": "fastest_lap",
|
| 1737 |
"excitement_level": "excited",
|
| 1738 |
"perspective": "dramatic",
|
| 1739 |
-
"template_text": "{driver} goes purple! A stunning {lap_time} to take the fastest lap!",
|
| 1740 |
"required_placeholders": [
|
| 1741 |
"driver"
|
| 1742 |
],
|
|
@@ -1752,7 +1752,7 @@
|
|
| 1752 |
"event_type": "fastest_lap",
|
| 1753 |
"excitement_level": "excited",
|
| 1754 |
"perspective": "dramatic",
|
| 1755 |
-
"template_text": "What a lap by {driver}! {pronoun} sets a {lap_time}, the fastest we've seen today!",
|
| 1756 |
"required_placeholders": [
|
| 1757 |
"driver"
|
| 1758 |
],
|
|
@@ -1769,7 +1769,7 @@
|
|
| 1769 |
"event_type": "fastest_lap",
|
| 1770 |
"excitement_level": "excited",
|
| 1771 |
"perspective": "dramatic",
|
| 1772 |
-
"template_text": "Fantastic pace from {driver}! A {lap_time} for the fastest lap!",
|
| 1773 |
"required_placeholders": [
|
| 1774 |
"driver"
|
| 1775 |
],
|
|
@@ -1785,7 +1785,7 @@
|
|
| 1785 |
"event_type": "fastest_lap",
|
| 1786 |
"excitement_level": "excited",
|
| 1787 |
"perspective": "dramatic",
|
| 1788 |
-
"template_text": "{driver} delivers! A {lap_time}, and that's a new fastest lap!",
|
| 1789 |
"required_placeholders": [
|
| 1790 |
"driver"
|
| 1791 |
],
|
|
@@ -1801,7 +1801,7 @@
|
|
| 1801 |
"event_type": "fastest_lap",
|
| 1802 |
"excitement_level": "excited",
|
| 1803 |
"perspective": "dramatic",
|
| 1804 |
-
"template_text": "Superb lap from {driver}! {pronoun} clocks a {lap_time} for the fastest lap!",
|
| 1805 |
"required_placeholders": [
|
| 1806 |
"driver"
|
| 1807 |
],
|
|
@@ -1818,7 +1818,7 @@
|
|
| 1818 |
"event_type": "fastest_lap",
|
| 1819 |
"excitement_level": "excited",
|
| 1820 |
"perspective": "dramatic",
|
| 1821 |
-
"template_text": "{driver} shows the pace! A brilliant {lap_time} to go fastest!",
|
| 1822 |
"required_placeholders": [
|
| 1823 |
"driver"
|
| 1824 |
],
|
|
@@ -1834,7 +1834,7 @@
|
|
| 1834 |
"event_type": "fastest_lap",
|
| 1835 |
"excitement_level": "excited",
|
| 1836 |
"perspective": "dramatic",
|
| 1837 |
-
"template_text": "Excellent lap by {driver}! A {lap_time}, and that's the quickest of the day!",
|
| 1838 |
"required_placeholders": [
|
| 1839 |
"driver"
|
| 1840 |
],
|
|
@@ -1850,7 +1850,7 @@
|
|
| 1850 |
"event_type": "fastest_lap",
|
| 1851 |
"excitement_level": "excited",
|
| 1852 |
"perspective": "dramatic",
|
| 1853 |
-
"template_text": "{driver} goes fastest! A stunning {lap_time}, purple in all three sectors!",
|
| 1854 |
"required_placeholders": [
|
| 1855 |
"driver"
|
| 1856 |
],
|
|
@@ -1866,7 +1866,7 @@
|
|
| 1866 |
"event_type": "fastest_lap",
|
| 1867 |
"excitement_level": "excited",
|
| 1868 |
"perspective": "dramatic",
|
| 1869 |
-
"template_text": "Brilliant from {driver}! {pronoun} sets a {lap_time} for the fastest lap!",
|
| 1870 |
"required_placeholders": [
|
| 1871 |
"driver"
|
| 1872 |
],
|
|
@@ -1883,7 +1883,7 @@
|
|
| 1883 |
"event_type": "incident",
|
| 1884 |
"excitement_level": "dramatic",
|
| 1885 |
"perspective": "dramatic",
|
| 1886 |
-
"template_text": "INCIDENT FOR {driver}! {pronoun} GOES OFF AT TURN {corner}! THIS IS A MAJOR MOMENT!",
|
| 1887 |
"required_placeholders": [
|
| 1888 |
"driver"
|
| 1889 |
],
|
|
@@ -1898,7 +1898,7 @@
|
|
| 1898 |
"event_type": "incident",
|
| 1899 |
"excitement_level": "dramatic",
|
| 1900 |
"perspective": "dramatic",
|
| 1901 |
-
"template_text": "CONTACT! {driver1} AND {driver2} MAKE CONTACT! BOTH CARS DAMAGED!",
|
| 1902 |
"required_placeholders": [
|
| 1903 |
"driver1",
|
| 1904 |
"driver2"
|
|
@@ -1911,7 +1911,7 @@
|
|
| 1911 |
"event_type": "incident",
|
| 1912 |
"excitement_level": "dramatic",
|
| 1913 |
"perspective": "dramatic",
|
| 1914 |
-
"template_text": "SPIN FOR {driver}! {pronoun} LOSES CONTROL AND GOES OFF! WHAT A DISASTER!",
|
| 1915 |
"required_placeholders": [
|
| 1916 |
"driver"
|
| 1917 |
],
|
|
@@ -1925,7 +1925,7 @@
|
|
| 1925 |
"event_type": "incident",
|
| 1926 |
"excitement_level": "dramatic",
|
| 1927 |
"perspective": "dramatic",
|
| 1928 |
-
"template_text": "CRASH! {driver} HITS THE BARRIER! THE SAFETY CAR IS OUT!",
|
| 1929 |
"required_placeholders": [
|
| 1930 |
"driver"
|
| 1931 |
],
|
|
@@ -1937,7 +1937,7 @@
|
|
| 1937 |
"event_type": "incident",
|
| 1938 |
"excitement_level": "dramatic",
|
| 1939 |
"perspective": "dramatic",
|
| 1940 |
-
"template_text": "COLLISION! {driver1} AND {driver2} COME TOGETHER! THIS IS HUGE!",
|
| 1941 |
"required_placeholders": [
|
| 1942 |
"driver1",
|
| 1943 |
"driver2"
|
|
@@ -1950,7 +1950,7 @@
|
|
| 1950 |
"event_type": "incident",
|
| 1951 |
"excitement_level": "dramatic",
|
| 1952 |
"perspective": "dramatic",
|
| 1953 |
-
"template_text": "INCIDENT! {driver} IS IN THE GRAVEL! {pronoun} RACE IS IN JEOPARDY!",
|
| 1954 |
"required_placeholders": [
|
| 1955 |
"driver"
|
| 1956 |
],
|
|
@@ -1964,7 +1964,7 @@
|
|
| 1964 |
"event_type": "incident",
|
| 1965 |
"excitement_level": "dramatic",
|
| 1966 |
"perspective": "dramatic",
|
| 1967 |
-
"template_text": "CONTACT BETWEEN {driver1} AND {driver2}! BOTH CARS AFFECTED! DRAMA!",
|
| 1968 |
"required_placeholders": [
|
| 1969 |
"driver1",
|
| 1970 |
"driver2"
|
|
@@ -1977,7 +1977,7 @@
|
|
| 1977 |
"event_type": "incident",
|
| 1978 |
"excitement_level": "dramatic",
|
| 1979 |
"perspective": "dramatic",
|
| 1980 |
-
"template_text": "SPIN! {driver} LOSES IT AT TURN {corner}! {pronoun} DROPS DOWN THE ORDER!",
|
| 1981 |
"required_placeholders": [
|
| 1982 |
"driver"
|
| 1983 |
],
|
|
@@ -1992,7 +1992,7 @@
|
|
| 1992 |
"event_type": "incident",
|
| 1993 |
"excitement_level": "dramatic",
|
| 1994 |
"perspective": "dramatic",
|
| 1995 |
-
"template_text": "CRASH FOR {driver}! {pronoun} HITS THE WALL! RED FLAG CONDITIONS!",
|
| 1996 |
"required_placeholders": [
|
| 1997 |
"driver"
|
| 1998 |
],
|
|
@@ -2006,7 +2006,7 @@
|
|
| 2006 |
"event_type": "incident",
|
| 2007 |
"excitement_level": "dramatic",
|
| 2008 |
"perspective": "dramatic",
|
| 2009 |
-
"template_text": "INCIDENT! {driver1} AND {driver2} COLLIDE! THIS CHANGES EVERYTHING!",
|
| 2010 |
"required_placeholders": [
|
| 2011 |
"driver1",
|
| 2012 |
"driver2"
|
|
@@ -2019,7 +2019,7 @@
|
|
| 2019 |
"event_type": "lead_change",
|
| 2020 |
"excitement_level": "dramatic",
|
| 2021 |
"perspective": "dramatic",
|
| 2022 |
-
"template_text": "{driver1} TAKES THE LEAD! {pronoun} OVERTAKES {driver2} FOR P1! WHAT A MOMENT!",
|
| 2023 |
"required_placeholders": [
|
| 2024 |
"driver1",
|
| 2025 |
"driver2"
|
|
@@ -2034,7 +2034,7 @@
|
|
| 2034 |
"event_type": "lead_change",
|
| 2035 |
"excitement_level": "dramatic",
|
| 2036 |
"perspective": "dramatic",
|
| 2037 |
-
"template_text": "WE HAVE A NEW LEADER! {driver1} GETS PAST {driver2} FOR THE LEAD!",
|
| 2038 |
"required_placeholders": [
|
| 2039 |
"driver1",
|
| 2040 |
"driver2"
|
|
@@ -2047,7 +2047,7 @@
|
|
| 2047 |
"event_type": "lead_change",
|
| 2048 |
"excitement_level": "dramatic",
|
| 2049 |
"perspective": "dramatic",
|
| 2050 |
-
"template_text": "{driver1} GOES FOR IT! {pronoun} TAKES THE LEAD FROM {driver2}! INCREDIBLE!",
|
| 2051 |
"required_placeholders": [
|
| 2052 |
"driver1",
|
| 2053 |
"driver2"
|
|
@@ -2062,7 +2062,7 @@
|
|
| 2062 |
"event_type": "lead_change",
|
| 2063 |
"excitement_level": "dramatic",
|
| 2064 |
"perspective": "dramatic",
|
| 2065 |
-
"template_text": "LEAD CHANGE! {driver1} OVERTAKES {driver2} FOR P1! THIS IS MASSIVE!",
|
| 2066 |
"required_placeholders": [
|
| 2067 |
"driver1",
|
| 2068 |
"driver2"
|
|
@@ -2075,7 +2075,7 @@
|
|
| 2075 |
"event_type": "lead_change",
|
| 2076 |
"excitement_level": "dramatic",
|
| 2077 |
"perspective": "dramatic",
|
| 2078 |
-
"template_text": "{driver1} MAKES THE MOVE FOR THE LEAD! {pronoun} GETS PAST {driver2}! SENSATIONAL!",
|
| 2079 |
"required_placeholders": [
|
| 2080 |
"driver1",
|
| 2081 |
"driver2"
|
|
@@ -2090,7 +2090,7 @@
|
|
| 2090 |
"event_type": "lead_change",
|
| 2091 |
"excitement_level": "dramatic",
|
| 2092 |
"perspective": "dramatic",
|
| 2093 |
-
"template_text": "NEW LEADER! {driver1} SWEEPS PAST {driver2} TO TAKE P1! WHAT DRAMA!",
|
| 2094 |
"required_placeholders": [
|
| 2095 |
"driver1",
|
| 2096 |
"driver2"
|
|
@@ -2103,7 +2103,7 @@
|
|
| 2103 |
"event_type": "lead_change",
|
| 2104 |
"excitement_level": "dramatic",
|
| 2105 |
"perspective": "dramatic",
|
| 2106 |
-
"template_text": "{driver1} SEIZES THE LEAD! {pronoun} OVERTAKES {driver2}! ABSOLUTELY BRILLIANT!",
|
| 2107 |
"required_placeholders": [
|
| 2108 |
"driver1",
|
| 2109 |
"driver2"
|
|
@@ -2118,7 +2118,7 @@
|
|
| 2118 |
"event_type": "lead_change",
|
| 2119 |
"excitement_level": "dramatic",
|
| 2120 |
"perspective": "dramatic",
|
| 2121 |
-
"template_text": "LEAD CHANGE! {driver1} GETS BY {driver2} FOR P1! THIS IS HUGE!",
|
| 2122 |
"required_placeholders": [
|
| 2123 |
"driver1",
|
| 2124 |
"driver2"
|
|
@@ -2131,7 +2131,7 @@
|
|
| 2131 |
"event_type": "lead_change",
|
| 2132 |
"excitement_level": "dramatic",
|
| 2133 |
"perspective": "dramatic",
|
| 2134 |
-
"template_text": "{driver1} TAKES P1! {pronoun} OVERTAKES {driver2} FOR THE LEAD! INCREDIBLE RACING!",
|
| 2135 |
"required_placeholders": [
|
| 2136 |
"driver1",
|
| 2137 |
"driver2"
|
|
@@ -2146,7 +2146,7 @@
|
|
| 2146 |
"event_type": "lead_change",
|
| 2147 |
"excitement_level": "dramatic",
|
| 2148 |
"perspective": "dramatic",
|
| 2149 |
-
"template_text": "WE HAVE A NEW RACE LEADER! {driver1} PASSES {driver2} FOR P1! WHAT A MOVE!",
|
| 2150 |
"required_placeholders": [
|
| 2151 |
"driver1",
|
| 2152 |
"driver2"
|
|
@@ -2159,7 +2159,7 @@
|
|
| 2159 |
"event_type": "overtake",
|
| 2160 |
"excitement_level": "engaged",
|
| 2161 |
"perspective": "technical",
|
| 2162 |
-
"template_text": "{driver1} makes a strong move on {driver2} for {position}, with {drs_status} and good speed.",
|
| 2163 |
"required_placeholders": [
|
| 2164 |
"driver1",
|
| 2165 |
"driver2",
|
|
@@ -2175,7 +2175,7 @@
|
|
| 2175 |
"event_type": "overtake",
|
| 2176 |
"excitement_level": "engaged",
|
| 2177 |
"perspective": "technical",
|
| 2178 |
-
"template_text": "{driver1} gets past {driver2} into {position}, showing better pace on the straights.",
|
| 2179 |
"required_placeholders": [
|
| 2180 |
"driver1",
|
| 2181 |
"driver2",
|
|
@@ -2189,7 +2189,7 @@
|
|
| 2189 |
"event_type": "overtake",
|
| 2190 |
"excitement_level": "engaged",
|
| 2191 |
"perspective": "technical",
|
| 2192 |
-
"template_text": "{driver1} overtakes {driver2} for {position}, using {drs_status} effectively.",
|
| 2193 |
"required_placeholders": [
|
| 2194 |
"driver1",
|
| 2195 |
"driver2",
|
|
@@ -2205,7 +2205,7 @@
|
|
| 2205 |
"event_type": "overtake",
|
| 2206 |
"excitement_level": "engaged",
|
| 2207 |
"perspective": "technical",
|
| 2208 |
-
"template_text": "{driver1} passes {driver2} to take {position}, with superior straight-line speed.",
|
| 2209 |
"required_placeholders": [
|
| 2210 |
"driver1",
|
| 2211 |
"driver2",
|
|
@@ -2219,7 +2219,7 @@
|
|
| 2219 |
"event_type": "overtake",
|
| 2220 |
"excitement_level": "engaged",
|
| 2221 |
"perspective": "technical",
|
| 2222 |
-
"template_text": "{driver1} moves past {driver2} into {position}, carrying {speed_trap} km/h through the trap.",
|
| 2223 |
"required_placeholders": [
|
| 2224 |
"driver1",
|
| 2225 |
"driver2",
|
|
@@ -2237,7 +2237,7 @@
|
|
| 2237 |
"event_type": "overtake",
|
| 2238 |
"excitement_level": "engaged",
|
| 2239 |
"perspective": "technical",
|
| 2240 |
-
"template_text": "{driver1} completes the overtake on {driver2} for {position}, with {drs_status} helping.",
|
| 2241 |
"required_placeholders": [
|
| 2242 |
"driver1",
|
| 2243 |
"driver2",
|
|
@@ -2253,7 +2253,7 @@
|
|
| 2253 |
"event_type": "overtake",
|
| 2254 |
"excitement_level": "engaged",
|
| 2255 |
"perspective": "technical",
|
| 2256 |
-
"template_text": "{driver1} gets by {driver2} into {position}, showing good pace through the lap.",
|
| 2257 |
"required_placeholders": [
|
| 2258 |
"driver1",
|
| 2259 |
"driver2",
|
|
@@ -2267,7 +2267,7 @@
|
|
| 2267 |
"event_type": "overtake",
|
| 2268 |
"excitement_level": "engaged",
|
| 2269 |
"perspective": "technical",
|
| 2270 |
-
"template_text": "{driver1} overtakes {driver2} for {position}, with a clear speed advantage.",
|
| 2271 |
"required_placeholders": [
|
| 2272 |
"driver1",
|
| 2273 |
"driver2",
|
|
@@ -2281,7 +2281,7 @@
|
|
| 2281 |
"event_type": "overtake",
|
| 2282 |
"excitement_level": "engaged",
|
| 2283 |
"perspective": "technical",
|
| 2284 |
-
"template_text": "{driver1} passes {driver2} to take {position}, executing a good move with {drs_status}.",
|
| 2285 |
"required_placeholders": [
|
| 2286 |
"driver1",
|
| 2287 |
"driver2",
|
|
@@ -2297,7 +2297,7 @@
|
|
| 2297 |
"event_type": "overtake",
|
| 2298 |
"excitement_level": "engaged",
|
| 2299 |
"perspective": "technical",
|
| 2300 |
-
"template_text": "{driver1} moves into {position}, getting past {driver2} with better performance.",
|
| 2301 |
"required_placeholders": [
|
| 2302 |
"driver1",
|
| 2303 |
"driver2",
|
|
|
|
| 942 |
"event_type": "overtake",
|
| 943 |
"excitement_level": "excited",
|
| 944 |
"perspective": "dramatic",
|
| 945 |
+
"template_text": "[excited] {driver1} makes the move! {pronoun} gets past {driver2} for {position}, and that's a crucial overtake!",
|
| 946 |
"required_placeholders": [
|
| 947 |
"driver1",
|
| 948 |
"driver2",
|
|
|
|
| 958 |
"event_type": "overtake",
|
| 959 |
"excitement_level": "excited",
|
| 960 |
"perspective": "dramatic",
|
| 961 |
+
"template_text": "[excited] What a move by {driver1}! {pronoun} sweeps around {driver2} to take {position}!",
|
| 962 |
"required_placeholders": [
|
| 963 |
"driver1",
|
| 964 |
"driver2",
|
|
|
|
| 974 |
"event_type": "overtake",
|
| 975 |
"excitement_level": "excited",
|
| 976 |
"perspective": "dramatic",
|
| 977 |
+
"template_text": "[excited] {driver1} goes for it! {pronoun} overtakes {driver2} for {position} with a brilliant maneuver!",
|
| 978 |
"required_placeholders": [
|
| 979 |
"driver1",
|
| 980 |
"driver2",
|
|
|
|
| 990 |
"event_type": "overtake",
|
| 991 |
"excitement_level": "excited",
|
| 992 |
"perspective": "dramatic",
|
| 993 |
+
"template_text": "[excited] Fantastic overtake! {driver1} gets by {driver2} to claim {position}!",
|
| 994 |
"required_placeholders": [
|
| 995 |
"driver1",
|
| 996 |
"driver2",
|
|
|
|
| 1004 |
"event_type": "overtake",
|
| 1005 |
"excitement_level": "excited",
|
| 1006 |
"perspective": "dramatic",
|
| 1007 |
+
"template_text": "[excited] {driver1} makes it stick! {pronoun} passes {driver2} for {position} after an intense battle!",
|
| 1008 |
"required_placeholders": [
|
| 1009 |
"driver1",
|
| 1010 |
"driver2",
|
|
|
|
| 1020 |
"event_type": "overtake",
|
| 1021 |
"excitement_level": "excited",
|
| 1022 |
"perspective": "dramatic",
|
| 1023 |
+
"template_text": "[excited] Brilliant move! {driver1} overtakes {driver2} into {position}, and {driver2} has no answer!",
|
| 1024 |
"required_placeholders": [
|
| 1025 |
"driver1",
|
| 1026 |
"driver2",
|
|
|
|
| 1034 |
"event_type": "overtake",
|
| 1035 |
"excitement_level": "excited",
|
| 1036 |
"perspective": "dramatic",
|
| 1037 |
+
"template_text": "[excited] {driver1} seizes the moment! {pronoun} gets past {driver2} for {position} with a daring move!",
|
| 1038 |
"required_placeholders": [
|
| 1039 |
"driver1",
|
| 1040 |
"driver2",
|
|
|
|
| 1050 |
"event_type": "overtake",
|
| 1051 |
"excitement_level": "excited",
|
| 1052 |
"perspective": "dramatic",
|
| 1053 |
+
"template_text": "[excited] Superb overtake by {driver1}! {pronoun} takes {position} from {driver2} with authority!",
|
| 1054 |
"required_placeholders": [
|
| 1055 |
"driver1",
|
| 1056 |
"driver2",
|
|
|
|
| 1066 |
"event_type": "overtake",
|
| 1067 |
"excitement_level": "excited",
|
| 1068 |
"perspective": "dramatic",
|
| 1069 |
+
"template_text": "[excited] {driver1} makes the breakthrough! {pronoun} finally gets by {driver2} for {position}!",
|
| 1070 |
"required_placeholders": [
|
| 1071 |
"driver1",
|
| 1072 |
"driver2",
|
|
|
|
| 1082 |
"event_type": "overtake",
|
| 1083 |
"excitement_level": "excited",
|
| 1084 |
"perspective": "dramatic",
|
| 1085 |
+
"template_text": "[excited] Excellent move! {driver1} overtakes {driver2} to take {position}, and that's a big moment!",
|
| 1086 |
"required_placeholders": [
|
| 1087 |
"driver1",
|
| 1088 |
"driver2",
|
|
|
|
| 1096 |
"event_type": "overtake",
|
| 1097 |
"excitement_level": "dramatic",
|
| 1098 |
"perspective": "dramatic",
|
| 1099 |
+
"template_text": "[excited] {driver1} MAKES THE MOVE! {pronoun} OVERTAKES {driver2} FOR {position}! WHAT A MOMENT!",
|
| 1100 |
"required_placeholders": [
|
| 1101 |
"driver1",
|
| 1102 |
"driver2",
|
|
|
|
| 1112 |
"event_type": "overtake",
|
| 1113 |
"excitement_level": "dramatic",
|
| 1114 |
"perspective": "dramatic",
|
| 1115 |
+
"template_text": "[excited] INCREDIBLE! {driver1} GETS PAST {driver2} TO TAKE {position}! THIS IS MASSIVE!",
|
| 1116 |
"required_placeholders": [
|
| 1117 |
"driver1",
|
| 1118 |
"driver2",
|
|
|
|
| 1126 |
"event_type": "overtake",
|
| 1127 |
"excitement_level": "dramatic",
|
| 1128 |
"perspective": "dramatic",
|
| 1129 |
+
"template_text": "[excited] {driver1} GOES FOR IT AND MAKES IT STICK! {pronoun} TAKES {position} FROM {driver2}!",
|
| 1130 |
"required_placeholders": [
|
| 1131 |
"driver1",
|
| 1132 |
"driver2",
|
|
|
|
| 1142 |
"event_type": "overtake",
|
| 1143 |
"excitement_level": "dramatic",
|
| 1144 |
"perspective": "dramatic",
|
| 1145 |
+
"template_text": "[excited] SENSATIONAL OVERTAKE! {driver1} SWEEPS AROUND {driver2} FOR {position}!",
|
| 1146 |
"required_placeholders": [
|
| 1147 |
"driver1",
|
| 1148 |
"driver2",
|
|
|
|
| 1156 |
"event_type": "overtake",
|
| 1157 |
"excitement_level": "dramatic",
|
| 1158 |
"perspective": "dramatic",
|
| 1159 |
+
"template_text": "[excited] {driver1} MAKES THE BREAKTHROUGH! {pronoun} FINALLY GETS BY {driver2} FOR {position}!",
|
| 1160 |
"required_placeholders": [
|
| 1161 |
"driver1",
|
| 1162 |
"driver2",
|
|
|
|
| 1172 |
"event_type": "overtake",
|
| 1173 |
"excitement_level": "dramatic",
|
| 1174 |
"perspective": "dramatic",
|
| 1175 |
+
"template_text": "[excited] WHAT A MOVE! {driver1} OVERTAKES {driver2} TO CLAIM {position}! ABSOLUTELY BRILLIANT!",
|
| 1176 |
"required_placeholders": [
|
| 1177 |
"driver1",
|
| 1178 |
"driver2",
|
|
|
|
| 1186 |
"event_type": "overtake",
|
| 1187 |
"excitement_level": "dramatic",
|
| 1188 |
"perspective": "dramatic",
|
| 1189 |
+
"template_text": "[excited] {driver1} SEIZES THE OPPORTUNITY! {pronoun} PASSES {driver2} FOR {position}! INCREDIBLE RACING!",
|
| 1190 |
"required_placeholders": [
|
| 1191 |
"driver1",
|
| 1192 |
"driver2",
|
|
|
|
| 1202 |
"event_type": "overtake",
|
| 1203 |
"excitement_level": "dramatic",
|
| 1204 |
"perspective": "dramatic",
|
| 1205 |
+
"template_text": "[excited] FANTASTIC! {driver1} GETS PAST {driver2} FOR {position}! THIS CHANGES EVERYTHING!",
|
| 1206 |
"required_placeholders": [
|
| 1207 |
"driver1",
|
| 1208 |
"driver2",
|
|
|
|
| 1216 |
"event_type": "overtake",
|
| 1217 |
"excitement_level": "dramatic",
|
| 1218 |
"perspective": "dramatic",
|
| 1219 |
+
"template_text": "[excited] {driver1} MAKES IT HAPPEN! {pronoun} OVERTAKES {driver2} INTO {position}! WHAT DRAMA!",
|
| 1220 |
"required_placeholders": [
|
| 1221 |
"driver1",
|
| 1222 |
"driver2",
|
|
|
|
| 1232 |
"event_type": "overtake",
|
| 1233 |
"excitement_level": "dramatic",
|
| 1234 |
"perspective": "dramatic",
|
| 1235 |
+
"template_text": "[excited] BRILLIANT MOVE BY {driver1}! {pronoun} TAKES {position} FROM {driver2}! ABSOLUTELY STUNNING!",
|
| 1236 |
"required_placeholders": [
|
| 1237 |
"driver1",
|
| 1238 |
"driver2",
|
|
|
|
| 1720 |
"event_type": "fastest_lap",
|
| 1721 |
"excitement_level": "excited",
|
| 1722 |
"perspective": "dramatic",
|
| 1723 |
+
"template_text": "[excited] Brilliant lap from {driver}! A {lap_time}, and that's the fastest of the race!",
|
| 1724 |
"required_placeholders": [
|
| 1725 |
"driver"
|
| 1726 |
],
|
|
|
|
| 1736 |
"event_type": "fastest_lap",
|
| 1737 |
"excitement_level": "excited",
|
| 1738 |
"perspective": "dramatic",
|
| 1739 |
+
"template_text": "[excited] {driver} goes purple! A stunning {lap_time} to take the fastest lap!",
|
| 1740 |
"required_placeholders": [
|
| 1741 |
"driver"
|
| 1742 |
],
|
|
|
|
| 1752 |
"event_type": "fastest_lap",
|
| 1753 |
"excitement_level": "excited",
|
| 1754 |
"perspective": "dramatic",
|
| 1755 |
+
"template_text": "[excited] What a lap by {driver}! {pronoun} sets a {lap_time}, the fastest we've seen today!",
|
| 1756 |
"required_placeholders": [
|
| 1757 |
"driver"
|
| 1758 |
],
|
|
|
|
| 1769 |
"event_type": "fastest_lap",
|
| 1770 |
"excitement_level": "excited",
|
| 1771 |
"perspective": "dramatic",
|
| 1772 |
+
"template_text": "[excited] Fantastic pace from {driver}! A {lap_time} for the fastest lap!",
|
| 1773 |
"required_placeholders": [
|
| 1774 |
"driver"
|
| 1775 |
],
|
|
|
|
| 1785 |
"event_type": "fastest_lap",
|
| 1786 |
"excitement_level": "excited",
|
| 1787 |
"perspective": "dramatic",
|
| 1788 |
+
"template_text": "[excited] {driver} delivers! A {lap_time}, and that's a new fastest lap!",
|
| 1789 |
"required_placeholders": [
|
| 1790 |
"driver"
|
| 1791 |
],
|
|
|
|
| 1801 |
"event_type": "fastest_lap",
|
| 1802 |
"excitement_level": "excited",
|
| 1803 |
"perspective": "dramatic",
|
| 1804 |
+
"template_text": "[excited] Superb lap from {driver}! {pronoun} clocks a {lap_time} for the fastest lap!",
|
| 1805 |
"required_placeholders": [
|
| 1806 |
"driver"
|
| 1807 |
],
|
|
|
|
| 1818 |
"event_type": "fastest_lap",
|
| 1819 |
"excitement_level": "excited",
|
| 1820 |
"perspective": "dramatic",
|
| 1821 |
+
"template_text": "[excited] {driver} shows the pace! A brilliant {lap_time} to go fastest!",
|
| 1822 |
"required_placeholders": [
|
| 1823 |
"driver"
|
| 1824 |
],
|
|
|
|
| 1834 |
"event_type": "fastest_lap",
|
| 1835 |
"excitement_level": "excited",
|
| 1836 |
"perspective": "dramatic",
|
| 1837 |
+
"template_text": "[excited] Excellent lap by {driver}! A {lap_time}, and that's the quickest of the day!",
|
| 1838 |
"required_placeholders": [
|
| 1839 |
"driver"
|
| 1840 |
],
|
|
|
|
| 1850 |
"event_type": "fastest_lap",
|
| 1851 |
"excitement_level": "excited",
|
| 1852 |
"perspective": "dramatic",
|
| 1853 |
+
"template_text": "[excited] {driver} goes fastest! A stunning {lap_time}, purple in all three sectors!",
|
| 1854 |
"required_placeholders": [
|
| 1855 |
"driver"
|
| 1856 |
],
|
|
|
|
| 1866 |
"event_type": "fastest_lap",
|
| 1867 |
"excitement_level": "excited",
|
| 1868 |
"perspective": "dramatic",
|
| 1869 |
+
"template_text": "[excited] Brilliant from {driver}! {pronoun} sets a {lap_time} for the fastest lap!",
|
| 1870 |
"required_placeholders": [
|
| 1871 |
"driver"
|
| 1872 |
],
|
|
|
|
| 1883 |
"event_type": "incident",
|
| 1884 |
"excitement_level": "dramatic",
|
| 1885 |
"perspective": "dramatic",
|
| 1886 |
+
"template_text": "[surprised] INCIDENT FOR {driver}! {pronoun} GOES OFF AT TURN {corner}! THIS IS A MAJOR MOMENT!",
|
| 1887 |
"required_placeholders": [
|
| 1888 |
"driver"
|
| 1889 |
],
|
|
|
|
| 1898 |
"event_type": "incident",
|
| 1899 |
"excitement_level": "dramatic",
|
| 1900 |
"perspective": "dramatic",
|
| 1901 |
+
"template_text": "[surprised] CONTACT! {driver1} AND {driver2} MAKE CONTACT! BOTH CARS DAMAGED!",
|
| 1902 |
"required_placeholders": [
|
| 1903 |
"driver1",
|
| 1904 |
"driver2"
|
|
|
|
| 1911 |
"event_type": "incident",
|
| 1912 |
"excitement_level": "dramatic",
|
| 1913 |
"perspective": "dramatic",
|
| 1914 |
+
"template_text": "[surprised] SPIN FOR {driver}! {pronoun} LOSES CONTROL AND GOES OFF! WHAT A DISASTER!",
|
| 1915 |
"required_placeholders": [
|
| 1916 |
"driver"
|
| 1917 |
],
|
|
|
|
| 1925 |
"event_type": "incident",
|
| 1926 |
"excitement_level": "dramatic",
|
| 1927 |
"perspective": "dramatic",
|
| 1928 |
+
"template_text": "[surprised] CRASH! {driver} HITS THE BARRIER! THE SAFETY CAR IS OUT!",
|
| 1929 |
"required_placeholders": [
|
| 1930 |
"driver"
|
| 1931 |
],
|
|
|
|
| 1937 |
"event_type": "incident",
|
| 1938 |
"excitement_level": "dramatic",
|
| 1939 |
"perspective": "dramatic",
|
| 1940 |
+
"template_text": "[surprised] COLLISION! {driver1} AND {driver2} COME TOGETHER! THIS IS HUGE!",
|
| 1941 |
"required_placeholders": [
|
| 1942 |
"driver1",
|
| 1943 |
"driver2"
|
|
|
|
| 1950 |
"event_type": "incident",
|
| 1951 |
"excitement_level": "dramatic",
|
| 1952 |
"perspective": "dramatic",
|
| 1953 |
+
"template_text": "[surprised] INCIDENT! {driver} IS IN THE GRAVEL! {pronoun} RACE IS IN JEOPARDY!",
|
| 1954 |
"required_placeholders": [
|
| 1955 |
"driver"
|
| 1956 |
],
|
|
|
|
| 1964 |
"event_type": "incident",
|
| 1965 |
"excitement_level": "dramatic",
|
| 1966 |
"perspective": "dramatic",
|
| 1967 |
+
"template_text": "[surprised] CONTACT BETWEEN {driver1} AND {driver2}! BOTH CARS AFFECTED! DRAMA!",
|
| 1968 |
"required_placeholders": [
|
| 1969 |
"driver1",
|
| 1970 |
"driver2"
|
|
|
|
| 1977 |
"event_type": "incident",
|
| 1978 |
"excitement_level": "dramatic",
|
| 1979 |
"perspective": "dramatic",
|
| 1980 |
+
"template_text": "[surprised] SPIN! {driver} LOSES IT AT TURN {corner}! {pronoun} DROPS DOWN THE ORDER!",
|
| 1981 |
"required_placeholders": [
|
| 1982 |
"driver"
|
| 1983 |
],
|
|
|
|
| 1992 |
"event_type": "incident",
|
| 1993 |
"excitement_level": "dramatic",
|
| 1994 |
"perspective": "dramatic",
|
| 1995 |
+
"template_text": "[surprised] CRASH FOR {driver}! {pronoun} HITS THE WALL! RED FLAG CONDITIONS!",
|
| 1996 |
"required_placeholders": [
|
| 1997 |
"driver"
|
| 1998 |
],
|
|
|
|
| 2006 |
"event_type": "incident",
|
| 2007 |
"excitement_level": "dramatic",
|
| 2008 |
"perspective": "dramatic",
|
| 2009 |
+
"template_text": "[surprised] INCIDENT! {driver1} AND {driver2} COLLIDE! THIS CHANGES EVERYTHING!",
|
| 2010 |
"required_placeholders": [
|
| 2011 |
"driver1",
|
| 2012 |
"driver2"
|
|
|
|
| 2019 |
"event_type": "lead_change",
|
| 2020 |
"excitement_level": "dramatic",
|
| 2021 |
"perspective": "dramatic",
|
| 2022 |
+
"template_text": "[excited] {driver1} TAKES THE LEAD! {pronoun} OVERTAKES {driver2} FOR P1! WHAT A MOMENT!",
|
| 2023 |
"required_placeholders": [
|
| 2024 |
"driver1",
|
| 2025 |
"driver2"
|
|
|
|
| 2034 |
"event_type": "lead_change",
|
| 2035 |
"excitement_level": "dramatic",
|
| 2036 |
"perspective": "dramatic",
|
| 2037 |
+
"template_text": "[excited] WE HAVE A NEW LEADER! {driver1} GETS PAST {driver2} FOR THE LEAD!",
|
| 2038 |
"required_placeholders": [
|
| 2039 |
"driver1",
|
| 2040 |
"driver2"
|
|
|
|
| 2047 |
"event_type": "lead_change",
|
| 2048 |
"excitement_level": "dramatic",
|
| 2049 |
"perspective": "dramatic",
|
| 2050 |
+
"template_text": "[excited] {driver1} GOES FOR IT! {pronoun} TAKES THE LEAD FROM {driver2}! INCREDIBLE!",
|
| 2051 |
"required_placeholders": [
|
| 2052 |
"driver1",
|
| 2053 |
"driver2"
|
|
|
|
| 2062 |
"event_type": "lead_change",
|
| 2063 |
"excitement_level": "dramatic",
|
| 2064 |
"perspective": "dramatic",
|
| 2065 |
+
"template_text": "[excited] LEAD CHANGE! {driver1} OVERTAKES {driver2} FOR P1! THIS IS MASSIVE!",
|
| 2066 |
"required_placeholders": [
|
| 2067 |
"driver1",
|
| 2068 |
"driver2"
|
|
|
|
| 2075 |
"event_type": "lead_change",
|
| 2076 |
"excitement_level": "dramatic",
|
| 2077 |
"perspective": "dramatic",
|
| 2078 |
+
"template_text": "[excited] {driver1} MAKES THE MOVE FOR THE LEAD! {pronoun} GETS PAST {driver2}! SENSATIONAL!",
|
| 2079 |
"required_placeholders": [
|
| 2080 |
"driver1",
|
| 2081 |
"driver2"
|
|
|
|
| 2090 |
"event_type": "lead_change",
|
| 2091 |
"excitement_level": "dramatic",
|
| 2092 |
"perspective": "dramatic",
|
| 2093 |
+
"template_text": "[excited] NEW LEADER! {driver1} SWEEPS PAST {driver2} TO TAKE P1! WHAT DRAMA!",
|
| 2094 |
"required_placeholders": [
|
| 2095 |
"driver1",
|
| 2096 |
"driver2"
|
|
|
|
| 2103 |
"event_type": "lead_change",
|
| 2104 |
"excitement_level": "dramatic",
|
| 2105 |
"perspective": "dramatic",
|
| 2106 |
+
"template_text": "[excited] {driver1} SEIZES THE LEAD! {pronoun} OVERTAKES {driver2}! ABSOLUTELY BRILLIANT!",
|
| 2107 |
"required_placeholders": [
|
| 2108 |
"driver1",
|
| 2109 |
"driver2"
|
|
|
|
| 2118 |
"event_type": "lead_change",
|
| 2119 |
"excitement_level": "dramatic",
|
| 2120 |
"perspective": "dramatic",
|
| 2121 |
+
"template_text": "[excited] LEAD CHANGE! {driver1} GETS BY {driver2} FOR P1! THIS IS HUGE!",
|
| 2122 |
"required_placeholders": [
|
| 2123 |
"driver1",
|
| 2124 |
"driver2"
|
|
|
|
| 2131 |
"event_type": "lead_change",
|
| 2132 |
"excitement_level": "dramatic",
|
| 2133 |
"perspective": "dramatic",
|
| 2134 |
+
"template_text": "[excited] {driver1} TAKES P1! {pronoun} OVERTAKES {driver2} FOR THE LEAD! INCREDIBLE RACING!",
|
| 2135 |
"required_placeholders": [
|
| 2136 |
"driver1",
|
| 2137 |
"driver2"
|
|
|
|
| 2146 |
"event_type": "lead_change",
|
| 2147 |
"excitement_level": "dramatic",
|
| 2148 |
"perspective": "dramatic",
|
| 2149 |
+
"template_text": "[excited] WE HAVE A NEW RACE LEADER! {driver1} PASSES {driver2} FOR P1! WHAT A MOVE!",
|
| 2150 |
"required_placeholders": [
|
| 2151 |
"driver1",
|
| 2152 |
"driver2"
|
|
|
|
| 2159 |
"event_type": "overtake",
|
| 2160 |
"excitement_level": "engaged",
|
| 2161 |
"perspective": "technical",
|
| 2162 |
+
"template_text": "[excited] {driver1} makes a strong move on {driver2} for {position}, with {drs_status} and good speed.",
|
| 2163 |
"required_placeholders": [
|
| 2164 |
"driver1",
|
| 2165 |
"driver2",
|
|
|
|
| 2175 |
"event_type": "overtake",
|
| 2176 |
"excitement_level": "engaged",
|
| 2177 |
"perspective": "technical",
|
| 2178 |
+
"template_text": "[excited] {driver1} gets past {driver2} into {position}, showing better pace on the straights.",
|
| 2179 |
"required_placeholders": [
|
| 2180 |
"driver1",
|
| 2181 |
"driver2",
|
|
|
|
| 2189 |
"event_type": "overtake",
|
| 2190 |
"excitement_level": "engaged",
|
| 2191 |
"perspective": "technical",
|
| 2192 |
+
"template_text": "[excited] {driver1} overtakes {driver2} for {position}, using {drs_status} effectively.",
|
| 2193 |
"required_placeholders": [
|
| 2194 |
"driver1",
|
| 2195 |
"driver2",
|
|
|
|
| 2205 |
"event_type": "overtake",
|
| 2206 |
"excitement_level": "engaged",
|
| 2207 |
"perspective": "technical",
|
| 2208 |
+
"template_text": "[excited] {driver1} passes {driver2} to take {position}, with superior straight-line speed.",
|
| 2209 |
"required_placeholders": [
|
| 2210 |
"driver1",
|
| 2211 |
"driver2",
|
|
|
|
| 2219 |
"event_type": "overtake",
|
| 2220 |
"excitement_level": "engaged",
|
| 2221 |
"perspective": "technical",
|
| 2222 |
+
"template_text": "[excited] {driver1} moves past {driver2} into {position}, carrying {speed_trap} km/h through the trap.",
|
| 2223 |
"required_placeholders": [
|
| 2224 |
"driver1",
|
| 2225 |
"driver2",
|
|
|
|
| 2237 |
"event_type": "overtake",
|
| 2238 |
"excitement_level": "engaged",
|
| 2239 |
"perspective": "technical",
|
| 2240 |
+
"template_text": "[excited] {driver1} completes the overtake on {driver2} for {position}, with {drs_status} helping.",
|
| 2241 |
"required_placeholders": [
|
| 2242 |
"driver1",
|
| 2243 |
"driver2",
|
|
|
|
| 2253 |
"event_type": "overtake",
|
| 2254 |
"excitement_level": "engaged",
|
| 2255 |
"perspective": "technical",
|
| 2256 |
+
"template_text": "[excited] {driver1} gets by {driver2} into {position}, showing good pace through the lap.",
|
| 2257 |
"required_placeholders": [
|
| 2258 |
"driver1",
|
| 2259 |
"driver2",
|
|
|
|
| 2267 |
"event_type": "overtake",
|
| 2268 |
"excitement_level": "engaged",
|
| 2269 |
"perspective": "technical",
|
| 2270 |
+
"template_text": "[excited] {driver1} overtakes {driver2} for {position}, with a clear speed advantage.",
|
| 2271 |
"required_placeholders": [
|
| 2272 |
"driver1",
|
| 2273 |
"driver2",
|
|
|
|
| 2281 |
"event_type": "overtake",
|
| 2282 |
"excitement_level": "engaged",
|
| 2283 |
"perspective": "technical",
|
| 2284 |
+
"template_text": "[excited] {driver1} passes {driver2} to take {position}, executing a good move with {drs_status}.",
|
| 2285 |
"required_placeholders": [
|
| 2286 |
"driver1",
|
| 2287 |
"driver2",
|
|
|
|
| 2297 |
"event_type": "overtake",
|
| 2298 |
"excitement_level": "engaged",
|
| 2299 |
"perspective": "technical",
|
| 2300 |
+
"template_text": "[excited] {driver1} moves into {position}, getting past {driver2} with better performance.",
|
| 2301 |
"required_placeholders": [
|
| 2302 |
"driver1",
|
| 2303 |
"driver2",
|
reachy_f1_commentator/src/commentary_generator.py
CHANGED
|
@@ -21,16 +21,16 @@ logger = logging.getLogger(__name__)
|
|
| 21 |
|
| 22 |
|
| 23 |
# ============================================================================
|
| 24 |
-
# Commentary Templates
|
| 25 |
# ============================================================================
|
| 26 |
|
| 27 |
OVERTAKE_TEMPLATES = [
|
| 28 |
-
"{driver1} makes a brilliant move on {driver2} for P{position}!",
|
| 29 |
-
"And {driver1} is through! That's P{position} now for {driver1}!",
|
| 30 |
-
"{driver1} overtakes {driver2} - what a move!",
|
| 31 |
-
"Fantastic overtake by {driver1} on {driver2}, now in P{position}!",
|
| 32 |
-
"{driver1} gets past {driver2}! Up to P{position}!",
|
| 33 |
-
"There it is! {driver1} takes P{position} from {driver2}!",
|
| 34 |
]
|
| 35 |
|
| 36 |
PIT_STOP_TEMPLATES = [
|
|
@@ -43,36 +43,36 @@ PIT_STOP_TEMPLATES = [
|
|
| 43 |
]
|
| 44 |
|
| 45 |
LEAD_CHANGE_TEMPLATES = [
|
| 46 |
-
"{new_leader} takes the lead! {old_leader} drops to P2!",
|
| 47 |
-
"We have a new race leader - it's {new_leader}!",
|
| 48 |
-
"{new_leader} is now leading the race ahead of {old_leader}!",
|
| 49 |
-
"Change at the front! {new_leader} leads from {old_leader}!",
|
| 50 |
-
"{new_leader} moves into the lead, {old_leader} now second!",
|
| 51 |
-
"And {new_leader} takes P1! {old_leader} slips to second place!",
|
| 52 |
]
|
| 53 |
|
| 54 |
FASTEST_LAP_TEMPLATES = [
|
| 55 |
-
"{driver} sets the fastest lap! {lap_time:.3f} seconds!",
|
| 56 |
-
"Fastest lap of the race goes to {driver} - {lap_time:.3f}!",
|
| 57 |
-
"{driver} with a blistering lap time of {lap_time:.3f}!",
|
| 58 |
-
"New fastest lap! {driver} with {lap_time:.3f} seconds!",
|
| 59 |
-
"{driver} goes purple! Fastest lap at {lap_time:.3f}!",
|
| 60 |
]
|
| 61 |
|
| 62 |
INCIDENT_TEMPLATES = [
|
| 63 |
-
"Incident reported! {description}",
|
| 64 |
-
"We have an incident on track - {description}",
|
| 65 |
-
"Trouble on track! {description}",
|
| 66 |
"Race control reports an incident: {description}",
|
| 67 |
-
"Drama! {description}",
|
| 68 |
]
|
| 69 |
|
| 70 |
SAFETY_CAR_TEMPLATES = [
|
| 71 |
-
"Safety car deployed! {reason}",
|
| 72 |
-
"The safety car is out on track - {reason}",
|
| 73 |
-
"Safety car! Race neutralized due to {reason}",
|
| 74 |
-
"Yellow flags and safety car - {reason}",
|
| 75 |
-
"Safety car period begins - {reason}",
|
| 76 |
]
|
| 77 |
|
| 78 |
FLAG_TEMPLATES = [
|
|
@@ -82,14 +82,12 @@ FLAG_TEMPLATES = [
|
|
| 82 |
"Race control shows {flag_type} flag",
|
| 83 |
]
|
| 84 |
|
| 85 |
-
RACE_START_TEMPLATE = "And it's lights out, and away they go!"
|
| 86 |
|
| 87 |
STARTING_GRID_TEMPLATES = [
|
| 88 |
-
"After qualification, the grid looks as follows: {grid_list} And on pole position, {pole_driver}!",
|
| 89 |
]
|
| 90 |
|
| 91 |
-
RACE_START_TEMPLATE = "And it's lights out, and away they go!"
|
| 92 |
-
|
| 93 |
POSITION_UPDATE_TEMPLATES = [
|
| 94 |
"Current positions: {positions}",
|
| 95 |
"The order is: {positions}",
|
|
|
|
| 21 |
|
| 22 |
|
| 23 |
# ============================================================================
|
| 24 |
+
# Commentary Templates with ElevenLabs Emotion Tags
|
| 25 |
# ============================================================================
|
| 26 |
|
| 27 |
OVERTAKE_TEMPLATES = [
|
| 28 |
+
"[excited] {driver1} makes a brilliant move on {driver2} for P{position}!",
|
| 29 |
+
"[excited] And {driver1} is through! That's P{position} now for {driver1}!",
|
| 30 |
+
"[excited] {driver1} overtakes {driver2} - what a move!",
|
| 31 |
+
"[excited] Fantastic overtake by {driver1} on {driver2}, now in P{position}!",
|
| 32 |
+
"[excited] {driver1} gets past {driver2}! Up to P{position}!",
|
| 33 |
+
"[excited] There it is! {driver1} takes P{position} from {driver2}!",
|
| 34 |
]
|
| 35 |
|
| 36 |
PIT_STOP_TEMPLATES = [
|
|
|
|
| 43 |
]
|
| 44 |
|
| 45 |
LEAD_CHANGE_TEMPLATES = [
|
| 46 |
+
"[excited] {new_leader} takes the lead! {old_leader} drops to P2!",
|
| 47 |
+
"[excited] We have a new race leader - it's {new_leader}!",
|
| 48 |
+
"[excited] {new_leader} is now leading the race ahead of {old_leader}!",
|
| 49 |
+
"[excited] Change at the front! {new_leader} leads from {old_leader}!",
|
| 50 |
+
"[excited] {new_leader} moves into the lead, {old_leader} now second!",
|
| 51 |
+
"[excited] And {new_leader} takes P1! {old_leader} slips to second place!",
|
| 52 |
]
|
| 53 |
|
| 54 |
FASTEST_LAP_TEMPLATES = [
|
| 55 |
+
"[excited] {driver} sets the fastest lap! {lap_time:.3f} seconds!",
|
| 56 |
+
"[excited] Fastest lap of the race goes to {driver} - {lap_time:.3f}!",
|
| 57 |
+
"[excited] {driver} with a blistering lap time of {lap_time:.3f}!",
|
| 58 |
+
"[excited] New fastest lap! {driver} with {lap_time:.3f} seconds!",
|
| 59 |
+
"[excited] {driver} goes purple! Fastest lap at {lap_time:.3f}!",
|
| 60 |
]
|
| 61 |
|
| 62 |
INCIDENT_TEMPLATES = [
|
| 63 |
+
"[surprised] Incident reported! {description}",
|
| 64 |
+
"[surprised] We have an incident on track - {description}",
|
| 65 |
+
"[surprised] Trouble on track! {description}",
|
| 66 |
"Race control reports an incident: {description}",
|
| 67 |
+
"[surprised] Drama! {description}",
|
| 68 |
]
|
| 69 |
|
| 70 |
SAFETY_CAR_TEMPLATES = [
|
| 71 |
+
"[serious] Safety car deployed! {reason}",
|
| 72 |
+
"[serious] The safety car is out on track - {reason}",
|
| 73 |
+
"[serious] Safety car! Race neutralized due to {reason}",
|
| 74 |
+
"[serious] Yellow flags and safety car - {reason}",
|
| 75 |
+
"[serious] Safety car period begins - {reason}",
|
| 76 |
]
|
| 77 |
|
| 78 |
FLAG_TEMPLATES = [
|
|
|
|
| 82 |
"Race control shows {flag_type} flag",
|
| 83 |
]
|
| 84 |
|
| 85 |
+
RACE_START_TEMPLATE = "[excited] And it's lights out, and away they go!"
|
| 86 |
|
| 87 |
STARTING_GRID_TEMPLATES = [
|
| 88 |
+
"After qualification, the grid looks as follows: {grid_list} [excited] And on pole position, {pole_driver}!",
|
| 89 |
]
|
| 90 |
|
|
|
|
|
|
|
| 91 |
POSITION_UPDATE_TEMPLATES = [
|
| 92 |
"Current positions: {positions}",
|
| 93 |
"The order is: {positions}",
|
reachy_f1_commentator/src/enhanced_commentary_generator.py
CHANGED
|
@@ -156,7 +156,7 @@ class EnhancedCommentaryGenerator:
|
|
| 156 |
else:
|
| 157 |
logger.warning("No data cache available - placeholder resolution will be limited")
|
| 158 |
# Create a minimal data cache
|
| 159 |
-
from src.openf1_data_cache import OpenF1DataCache
|
| 160 |
minimal_cache = OpenF1DataCache(self.openf1_client, self.config) if self.openf1_client else None
|
| 161 |
if minimal_cache:
|
| 162 |
self.placeholder_resolver = PlaceholderResolver(minimal_cache)
|
|
|
|
| 156 |
else:
|
| 157 |
logger.warning("No data cache available - placeholder resolution will be limited")
|
| 158 |
# Create a minimal data cache
|
| 159 |
+
from reachy_f1_commentator.src.openf1_data_cache import OpenF1DataCache
|
| 160 |
minimal_cache = OpenF1DataCache(self.openf1_client, self.config) if self.openf1_client else None
|
| 161 |
if minimal_cache:
|
| 162 |
self.placeholder_resolver = PlaceholderResolver(minimal_cache)
|
reachy_f1_commentator/src/speech_synthesizer.py
CHANGED
|
@@ -80,9 +80,11 @@ class ElevenLabsStreamingClient:
|
|
| 80 |
total_samples = 0
|
| 81 |
|
| 82 |
# Stream audio from ElevenLabs (returns async generator directly)
|
|
|
|
|
|
|
| 83 |
stream = self.client.text_to_speech.convert(
|
| 84 |
voice_id=self.voice_id,
|
| 85 |
-
model_id="
|
| 86 |
text=text,
|
| 87 |
output_format="pcm_16000" # Request 16kHz PCM to match Reachy
|
| 88 |
)
|
|
|
|
| 80 |
total_samples = 0
|
| 81 |
|
| 82 |
# Stream audio from ElevenLabs (returns async generator directly)
|
| 83 |
+
# Using eleven_v3 for emotion tag support (audio tags)
|
| 84 |
+
# Note: v3 is required for emotion tags like [excited], [serious], [surprised]
|
| 85 |
stream = self.client.text_to_speech.convert(
|
| 86 |
voice_id=self.voice_id,
|
| 87 |
+
model_id="eleven_v3", # Required for emotion tag support
|
| 88 |
text=text,
|
| 89 |
output_format="pcm_16000" # Request 16kHz PCM to match Reachy
|
| 90 |
)
|