สวัสดีครับ แอดมินเอครับผม ' w')/
สืบเนื่องจาก Add-ons ของโปรแกรมจำลองการบิน FlightGear ที่ชื่อว่า Red Griffin ATC นั้น รองรับการเชื่อมต่อกับโปรแกรมสังเคราะห์เสียงที่ชื่อว่า Festival คือ หากเราทำการเชื่อมต่อ FG เข้ากับโปรแกรมดังกล่าว จะทำให้ได้ยินเสียงของ ATC (เจ้าหน้าที่ควบคุมการบิน) ที่แตกต่างกันถึง 10 แบบ จากเดิมจะมีเสียงแค่ 2 แบบเท่านั้น ทำให้ได้ความสมจริงมากยิ่งขึ้น เพราะทุกครั้งที่เราจูนคลื่นวิทยุใหม่ จะทำให้ได้ยินเสียงที่ไม่ซ้ำกันนั่นเอง
แต่น่าเสียดายที่ Festival เวอร์ชั่น Windows ไม่รองรับการเชื่อมต่อกับ Client (ช่องเสียง) มากกว่า 1 ด้วยเหตุผลใดก็ไม่ทราบ ทำให้เปลี่ยนเสียงได้แค่เฉพาะเสียงของนักบินเท่านั้น เสียงของ ATC ยังคงเป็นเสียง Default เหมือนเดิม
แต่โชคดีที่ยังมีทางแก้อยู่ครับ ด้วยการเชื่อมต่อ FG เข้าไปยัง Festival ที่รันในเครื่อง VM ด้วยระบบ Linux ซะเลย!

สิ่งที่ต้องเตรียม
- RAM อย่างน้อย 12 GB
- โปรแกรม VM (VMware Workstation Pro หรือ VirtualBox ก็ได้)
- ไฟล์ ISO ของ Arch Linux
- ไฟล์เสียงของ Festival
- เวลาในการทำ 😉
เริ่มต้นด้วยการลงโปรแกรม VM ซึ่งในบทความนี้จะใช้ VMware นะครับ
ซึ่งที่ผมเลือกใช้ VMware เพราะมันทำงานได้เร็วกว่า VirtualBox พอสมควรเลย แต่ถ้าใครอยากจะใช้ VirtualBox ก็ไม่ว่ากันนะครับ เพราะแนวทางการตั้งค่าเครื่องจำลองของ VirtualBox แทบไม่ต่างกัน
1. ดาวน์โหลด และติดตั้ง VMware Workstation Pro **ต้องสมัครก่อนโหลด (ฟรี)**
https://www.vmware.com/products/desktop-hypervisor/workstation-and-fusion
หรือหากใครไม่อยากสมัคร สามารถหาไฟล์ Mirror ได้ที่ Internet Archive ครับ โหลดได้เลย ไม่ต้อง Login (พิมพ์ VMware Workstation ลงในช่องค้นหา)
ซึ่งเวอร์ชั่นล่าสุด ณ ที่เขียนบทความนี้คือ 17.6.3
2. ดาวน์โหลดไฟล์ ISO ของ Arch Linux (เลื่อนลงมาเรื่อยๆ หาลิงค์ Thailand)
https://archlinux.org/download/
3. ดาวน์โหลดไฟล์เสียงของ Festival
http://www.festvox.org/packed/festival/2.5/voices/
ตามรายชื่อนี้
cmu_us_rms
cmu_us_ahw
cmu_us_eey
cmu_us_bdl
cmu_us_rxr
cmu_us_clb
cmu_us_jmk
cmu_us_lnh
cmu_us_slt
cmu_us_ljm
kallpc16k
เมื่อโหลดครบแล้ว แตกไฟล์ออกมา จะได้โฟลเดอร์ชื่อ festival ขนาด 594 MB
4. เปิดโปรแกรม VMware Workstation Pro แล้วทำการสร้างเครื่องจำลองขึ้นมา

4.1 เลือก Typical
4.2 เลือกไฟล์ ISO ของ Arch Linux
4.3 เลือก Linux และตั้ง Version เป็น Other Linux 6.x kernel 64-bit
4.4 ตั้งชื่อเครื่องเป็น Arch Linux (หรือชื่ออื่นก็ได้)
4.5 ตั้งขนาด HDD จำลองเป็น 50 GB และเลือก Store virtual disk as a single file
4.6 กด Finish
5. คลิกที่ชื่อเครื่อง VM ที่เราเพิ่งสร้าง แล้วคลิก Edit virtual machine settings
5.1 ตั้ง RAM เป็น 4 GB (4096 MB) * Festival ในโหมด Server ต้องการ RAM อย่างน้อย 4 GB ถึงจะใช้งานได้โดยไม่เกิดปัญหา *
5.2 Number of processors ตั้งเป็น 2
Number of cores per processor ตั้งเป็น 1
5.3 แถบ Options เลือกเปิด Shared Folder กับโฟลเดอร์ festival ที่เราแตกไฟล์เสียงออกมา
5.4 Advanced -> Fireware type เลือกเป็น UEFI
6. เปิดเครื่องจำลอง แล้วพอบูทเข้าตัวติดตั้งสำเร็จแล้ว (จะเห็นเป็นแถบหลายสี กับ root@archiso ~ #) ให้พิมพ์ archinstall

7. ตั้งค่าตามนี้
7.1 Mirrors -> Mirror region -> Thailand
7.2 Disk configuration -> Partitioning -> Use a best-effort default partition layout -> กด Enter -> ext4
7.3 Root password -> ตั้งรหัสตามต้องการ
7.4 User account -> Add a user -> ตั้งชื่อและรหัสตามต้องการ -> Yes -> Confirm and exit
7.5 Profile -> Type -> Desktop -> Xfce4
7.6 Audio -> pulseaudio
7.7 Network configuration -> Copy ISO network configuration to installation
7.8 Additional packages -> เลือก Package ตามนี้ (กด Spacebar)
alsa-firmware
alsa-oss
alsa-utils
festival
pulseaudio-alsa
sof-firmware
networkmanager
nm-connection-editor
network-manager-applet
ppp
bind
Package เพิ่มเติมสำหรับผู้ใช้งาน VMware Workstation
open-vm-tools
gtkmm3
Package เพิ่มเติมสำหรับผู้ใช้งาน VirtualBox
virtualbox-guest-utils
เสร็จแล้วกด Enter จากนั้นเลือก Install ได้เลย

8. เมื่อรอติดตั้งจนเสร็จแล้ว เลือก No แล้วพิมพ์ reboot

9. เมื่อรีบูทจนเข้าหน้า Desktop แล้ว ให้เปิด Terminal แล้วพิมพ์ตามลำดับนี้ กด Y แล้ว Enter เมื่อถาม
systemctl enable vmtoolsd.service
systemctl start vmtoolsd.service
systemctl enable vmware-vmblock-fuse.service
systemctl start vmware-vmblock-fuse.service
systemctl enable NetworkManager.service
systemctl start NetworkManager.service
systemctl enable named.service
systemctl start named.service
sudo pacman -R pulseaudio-alsa
sudo pacman -R pulseaudio
10. จากนั้นทำการรีบูทเครื่องจำลอง แล้วเปิด Terminal ต่อมาพิมพ์ sudo alsamixer
ทำการปรับระดับเสียงเป็น 100% ให้หมด แล้วเปลี่ยนค่า MM ให้เป็น OO ด้วยการกด M ที่ช่องนั้นๆ เสร็จแล้วกด Esc
11. พิมพ์ sudo thunar แล้วคลิก View -> Show Hidden Files จากนั้นเข้าไปยัง File System /mnt/hgfs/festival/lib/voices/ เลือกโฟลเดอร์ english กับ us แล้วคลิกขวาเลือก Copy
* หากไม่เห็น hgfs ให้กด Alt+Ctrl ออกมาที่โปรแกรม VMware แล้วคลิกแถบ VM -> Settings -> Options -> Shared Folder -> Disabled -> OK แล้วทำซ้ำอีกครั้งแต่ให้เลือกเป็น Enabled until next power off or suspend แทน *
12. จากนั้นไปยัง /usr/share/festival/voices/ คลิกขวาเลือก Paste เสร็จแล้วปิด Thunar
13. เข้าโฟลเดอร์ Home จากหน้า Desktop แล้วคลิก View -> Show Hidden Files จากนั้นคลิกขวาเลือก Create Document -> Empty File -> พิมพ์ .festivalrc -> Create
14. เปิดไฟล์ .festivalrc แล้วพิมพ์ (set! server_access_list nil) จากนั้นกด Ctrl+S แล้วปิดไฟล์

15. คลิกขวาที่หน้า Desktop -> Create Launcher แล้วใส่ค่าตามนี้
Name ตั้งเป็น Festival Server Mode
Command ตั้งเป็น festival --server
Icon เลือกเป็นรูปหูฟัง
ติ๊ก Run in terminal
เสร็จแล้วกด Create
16. คลิกขวาที่ไอคอนสีส้มตรงแถบขวาบน แล้วเลือก Connection Information
จากนั้นให้จดเลข IP ในส่วนของ IPv4 ไว้
17. ปิดเครื่องจำลองไปก่อน แล้วมาเปิด C:\Users\(Name)\FlightGear\Downloads\fgdata_20XX_X\defaults.xml ที่เครื่องจริง ด้วยโปรแกรม Text Editor
แล้วหาค่าที่เขียนว่า "localhost"
<voices>
<host type="string" write="n">localhost</host>
<port type="string" write="n">1314</port>
<enabled type="bool" userarchive="y">true</enabled>
ให้เปลี่ยนตรง localhost เป็นเลขเดียวกับที่จดมา แล้วกด Ctrl+S (ตัวอย่างนี้คือ 192.168.100.32)
<host type="string" write="n">192.168.100.32</host>
18. เปิดเครื่องจำลอง แล้วเปิด Festival Server Mode ที่หน้า Desktop เพื่อเริ่มใช้งาน จากนั้นสลับออกมาเครื่องจริง (กด Alt+Ctrl)
แล้วเปิด FlightGear ด้วยค่า --config=<ที่อยู่ของ>/RedGriffinATC/festival.xml ในกล่อง "Additional Settings"


หากไม่มีอะไรผิดพลาด ก็จะสามารถใช้งานได้ตามคลิปนี้ครับ
และในการใช้งานครั้งต่อไป ก็เพียงแค่เปิด Festival ในเครื่อง VM แล้วรัน FG ตามทีหลังเท่านั้นเองครับ
รายละเอียดเพิ่มเติม (ภาษาอังกฤษ)
https://wiki.flightgear.org/Red_Griffin_ATC#Festival_Speech_Synthesis_System_Support