त्योहार 2 FreeBSD से पाठ पैकेज

आपका दिन शुभ हो

इस लेख में मैं FreeBSD में फेस्टिवल वॉयस जेनरेट करने के लिए सिस्टम किट से एक टेक्स्ट 2wave स्क्रिप्ट के रूप में एक रेक पर विचार करना चाहूंगा। फेस्टिवल का उपयोग करके तारांकन चिह्न में एक आवाज मेनू बनाते समय मुझे इस समस्या का सामना करना पड़ा।

बिल्ली के नीचे कौन परवाह करता है।

परिचय

पर्सुशिंग, अपने स्वयं के विकास के लिए, आईपी-पीबीएक्स एस्टरिस्क की तैनाती, आवाज पीढ़ी के बिंदु तक पहुंच गया। त्योहार के अंतर्निहित समर्थन और इंटरनेट पर उपलब्ध निर्देशों की भारी मात्रा को देखते हुए, मैं व्यापार में उतर गया। बंदरगाहों से स्थापित महोत्सव। मैंने एक रूसी आवाज डाउनलोड और स्थापित की। मैंने फेस्टिवल के साथ मेनू फेंक दिया (), और, लो और निहारना, यह काम किया। इतनी दूर, जैसा कि शायद ही कभी होता है।

मोबाइल ग्राहकों के साथ समस्या उत्पन्न हुई। विनसीई पर एक्स-लाइट और नोकिया के बिल्ट-इन क्लाइंट जिद्दी परिणामी मेनू के साथ काम नहीं करना चाहते थे। पहले एक सत्र के तुरंत बाद, दूसरा सिलेबल्स पाने में कामयाब रहा, जिसके बाद वह भी गिर गया।

छोटी खोजों ने डायलप्लान में फेस्टिवल () कमांड का उपयोग करने के लिए एक विकल्प का संकेत दिया। यह AGI या टेक्स्ट2wave स्क्रिप्ट की सिस्टम () के माध्यम से एक कॉल थी, इसके साथ फाइल को सहेजना, और प्लेबैक () या बैकग्राउंड () कमांड का उपयोग करके इसे खेलने के बाद। निर्देश के एक जोड़े के साथ, मैं तुरंत कार्रवाई में चला गया और फिर मुझे एक रैक मिला।

[root@AsteriskPV:/usr/local/share/festival/examples]# cp text2wave /usr/local/bin/
[root@AsteriskPV:/usr/local/share/festival/examples]# rehash
[root@AsteriskPV:/usr/local/share/festival/examples]# text2wave

WARNING
No default voice found in ("/usr/ports/audio/festival/work/festival/lib/voices/")
either no voices unpacked or voice-path is wrong
Scheme interpreter will work, but there is no voice to speak with.
WARNING


जेली


मुझे लगता है कि ऐसा कैसे ... क्योंकि एक आवाज है, यह ठीक काम करती है ...

^C
[root@AsteriskPV:/usr/local/share/festival/examples]# text2wave

WARNING
No default voice found in ("/usr/ports/audio/festival/work/festival/lib/voices/")
either no voices unpacked or voice-path is wrong
Scheme interpreter will work, but there is no voice to speak with.
WARNING


मैं करीब से देख रहा हूँ, और मैं समझता हूँ कि किसी भी तरह यह वहाँ से नहीं है कि वह आवाज़ों से चिपके। मैं स्क्रिप्ट में चढ़ता हूं और वहां एक अद्भुत रेखा पाता हूं

#!/bin/sh
"true" ; exec /usr/ports/audio/festival/work/festival/bin/festival --script $0 $*

यही है, वह उस फ़ोल्डर को संदर्भित करता है जिसमें वह जा रहा था। खैर, मुझे लगता है कि यह व्यवसाय है, और मैं शासन करता हूं

#!/bin/sh
"true" ; exec /usr/local/bin/festival --script $0 $*


हम लॉन्च करते हैं
[root@AsteriskPV:/usr/local/share/festival/examples]# text2wave
SIOD ERROR: unbound variable : P▒

और तोड़ दो।

सामान्य तौर पर, यह ध्यान दिया जाना चाहिए कि मैंने इस तस्वीर को पूरे दिन देखा। निर्देशों से स्क्रिप्ट खींचना बेकार था, यह FreeBSD में काम नहीं करेगा। साथ ही फेस्टिवल को सर्वर मोड में शुरू करने की प्रस्तावित विधि। इसलिए, हमेशा की तरह, हम एक दर्जन निर्देश लेते हैं और इसे काम करने के लिए फ़ाइल का उपयोग करते हैं। हालाँकि, हम जारी रखते हैं।

काफी लंबे उठा-पटक और ब्लाइंड पोकिंग के बाद, वर्क फोल्डर से एक समझ आई - यह काम करता है, / usr / लोकल / बिन से - नहीं।

एक साधारण तुलना ने समस्या को दिखाया।
[root@AsteriskPV:/usr/local/share/festival/examples]# ll /usr/local/bin/festival
-r-xr-xr-x 1 root wheel 132 Nov 24 20:27 /usr/local/bin/festival


[root@AsteriskPV:/usr/local/share/festival/examples]# ll /usr/ports/audio/festival/work/festival/bin/festival
lrwxr-xr-x 1 root wheel 57 Nov 24 20:25 /usr/ports/audio/festival/work/festival/bin/festival -> /usr/ports/audio/festival/work/festival/src/main/festival


स्टार्टअप स्क्रिप्ट और निष्पादन योग्य फ़ाइल के लिए लिंक। परिणाम स्वाभाविक रूप से अलग हैं। अच्छा, चलो स्क्रिप्ट में आते हैं।

[root@AsteriskPV:/usr/local/share/festival/examples]# cat /usr/local/bin/festival
#!/bin/sh
# path for audsp
PATH=/usr/local/libexec:$PATH
export PATH
exec festival.naked --libdir /usr/local/share/festival/lib $*


त्योहार शुरू करने के लिए लिपियों को गोंद करें और इसे text2wave का उपयोग करके फाइलें उत्पन्न करें।
हमें निम्नलिखित कमांड मिलती है
/usr/local/libexec/festival.naked --libdir /usr/local/share/festival/lib $* --script $0 $*
इन दोनों विकल्पों में से कोई भी प्रयास और संयोजन एक भरोसेमंद परिणाम की ओर ले जाते हैं।
[root@AsteriskPV:/usr/local/share/festival/examples]# /usr/local/libexec/festival.naked --libdir /usr/local/share/festival/lib --script text2wave $*
SIOD ERROR: unbound variable : P▒


यदि आप पहले पैरामीटर को हटाते हैं, तो आवाज बंद हो जाती है, अगर दूसरी आवाज़ है, लेकिन त्योहार सामान्य इंटरैक्टिव मोड में लोड किया जाता है।

निर्णय

समाधान स्पष्ट था, लेकिन कार्यान्वयन में भी कुछ समय लगा। परिणाम text2wave स्क्रिप्ट के लिए एक छोटा संशोधन था

"true" ; exec /usr/ports/audio/festival/work/festival/bin/festival --script $0 $*

को बदलो
"true" ; exec /usr/local/libexec/festival.naked --script /usr/local/bin/text2wave $*


और
(load (path-append libdir "init.scm"))
को बदलो
(set! libdir '/usr/local/share/festival/lib)
(load (path-append libdir "init.scm"))


बस इतना ही। अब आप दौड़ सकते हैं
echo 123 | text2wave -o 123.ulaw -otype ulaw -
खैर, कॉल करना स्वाभाविक है, कम से कम सिस्टम () से भी एजीआई।
हमेशा की तरह, समाधान स्पष्ट और सरल था, बस बारीकी से देखें।

पोस्टस्क्रिप्ट संख्या 1।
खोज के दौरान, * और महोत्सव के एक समूह के लिए एक समाधान और एडिनबर्ग विश्वविद्यालय की एक मेलिंग सूची मिली।
यह दस स्थानों में फिर से लिखे गए मेलिंग सूचियों का एक अंश है, जाहिर है यह सबसे अच्छा समाधान था जो पाया गया था।

(Parameter.set 'Audio_Method 'Audio_Command)
(Parameter.set 'Audio_Required_Rate 11025)
(Parameter.set 'Audio_Required_Format 'riff)
(Parameter.set 'Audio_Command "lame --quiet --preset voice $FILE - >> $HOME/festival-output.mp3")


पोस्टस्क्रिप्ट संख्या 2।
फेस्टिवल को सर्वर मोड में लॉन्च करने के लिए, स्क्रीन के साथ एक विवादास्पद संयोजन का उपयोग किया जाता है।
यह कुछ इस तरह दिखता है:
[root@SIP:/home/admin]# cat /usr/local/etc/rc.d/festival
#!/bin/sh

. /etc/rc.subr

name="festival"
start_cmd="${name}_start"
stop_cmd=":"

festival_start()
{
screen -d -m -s /usr/local/etc/festivalst.sh
}

festival_stop()
{
killall festival.naked
killall screen
}

festival_restart()
{
killall festival.naked
killall screen
screen -d -m -s /usr/local/etc/festivalst.sh
}

#load_rc_config $name
run_rc_command "$1"
[root@SIP:/home/admin]# cat /usr/local/etc/festivalst.sh
festival --server

Source: https://habr.com/ru/post/In133556/


All Articles