Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
VoiceText Web APIでのGolang利用事例のご紹介
Search
tmaeda
January 21, 2015
Technology
2
2.1k
VoiceText Web APIでのGolang利用事例のご紹介
Golang meetup in Sapporo 2015/01/21 #sapgolang
tmaeda
January 21, 2015
Tweet
Share
More Decks by tmaeda
See All by tmaeda
アクターモデルの話
tmaedax
7
1.6k
Jupyter(主にnotebook)のご紹介
tmaedax
1
1.2k
それ NArray でできるよ
tmaedax
18
11k
AngularJSのご紹介
tmaedax
12
6.4k
静的型付き関数型言語のススメ
tmaedax
3
1.2k
Other Decks in Technology
See All in Technology
エンジニアリングマネージャーが紐解く、事業視点から組織文化まで、包括的アプローチの探求 / READYFOR
9ma3r
13
2.2k
なぜクラウドサービスで Web コンソールを提供するのか
shuta13
4
1.3k
OCI コスト管理
ocise
1
110
Namespace, Now and Then
tagomoris
0
170
実践的なバグバウンティ入門
scgajge12
4
2.1k
Hyperledger Fabricの成長、成熟を振り返る / Looking back history of Hyperledger Fabric
gakumura
0
180
Chunk computing
matyo91
0
270
技術力あげたい
hisaichi5518
2
2.8k
開発者体験を意識した開発チームの生産性向上の取り組み
ham0215
3
650
音声AIエージェントの世界とRetell AI入門 / Introduction to the World of Voice AI Agents and Retell AI
rkaga
3
470
株式会社M2X エンジニアチーム紹介資料
m2xsoftware
0
320
バックログを導入し やっぱやめた話
ota42y
0
170
Featured
See All Featured
A designer walks into a library…
pauljervisheath
201
24k
Navigating Team Friction
lara
183
13k
Keith and Marios Guide to Fast Websites
keithpitt
408
22k
What the flash - Photography Introduction
edds
67
11k
Fashionably flexible responsive web design (full day workshop)
malarkey
400
65k
Principles of Awesome APIs and How to Build Them.
keavy
125
16k
Raft: Consensus for Rubyists
vanstee
135
6.5k
Ruby is Unlike a Banana
tanoku
96
10k
Fireside Chat
paigeccino
31
2.9k
Code Reviewing Like a Champion
maltzj
518
39k
4 Signs Your Business is Dying
shpigford
179
21k
Designing the Hi-DPI Web
ddemaree
278
34k
Transcript
7PJDF5FYU8FC"1* Ͱͷ(PMBOHར༻ࣄྫ ͷ͝հ !UNBFEB͑ʹ͠ςοΫ (PMBOHNFFUVQJO4BQQPSP
!UNBFEB w ג ͑ʹ͠ςοΫͰΤϯδχΞΛ͍ͯ͠·͢ɻ w3VCZͷࣄ͕ଟ͍Ͱ͢ɻ w࠷ۙ5ZQF4DSJQUͱ͔3FBDUͱ͔ JQZUIPO QBOEBTͱ͔ʹڵຯ͕͋Γ·͢ɻ wԑ͋ͬͯɺ͙͜͜Β͍গ͚ͩ͠(P͍ͬͯ ·͢ɻ
ຊͷ͓ w7PJDF5FYU8FC"1*ͷ͝հ w(PΛͬͯΈͯͷײ
7PJDF5FYU8FC"1* w)0:"αʔϏεגࣜձ༷͕ࣾӡӦ͍ͯ͠Δߴ ࣭Ի߹αʔϏεͰ͢ɻ w8FC"1*ͷΠϯλʔϑΣʔε෦ฐࣾͰ։ൃ ͷ͓ख͍Λ͖ͤͯ͞·ͨ͠ɻ
7PJDF5FYU8FC"1* curl "https://api.voicetext.jp/v1/tts" \ -o "test.wav" \ -u "YOUR_API_KEY:" \
-d "text=͓Α͏͍͟͝·͢" \ -d “speaker=hikari" \ -d “emotion=happiness” \ -d “emotion_level=2”
7PJDF5FYU8FC"1*ͷߏ Portal(Rails) Wrapper (Go)! ར༻ऀ VoiceText Engine Ի߹αʔόʔ Heroku Postgre!
SQL ɾϩά ɾϢʔβʔ ೝূɺϩάॻࠐ Ϣʔβʔ! ొ Ϣʔβʔొ LoadBalancer APIར༻
গ͠ͷؒɺσϞ͔ͶͯɺVoiceText Ͱ͠·͢ɻ showͰ͢ɻςϨϏ౦ژܥྻʮϞϠ ϞϠ͞·͊ʙͣ2ʯͱ͍͏൪ͷφ ϨʔγϣϯΛ୲͍ͯ͠·͢ɻ
ͳͥ(Pʁ wͱฒྻੑ w$ͷϥΠϒϥϦͱͷੑ w։ൃޮ hikariͰ͢ɻ
ͳͥ(Pʁ wͱฒྻੑ w$ͷϥΠϒϥϦͱͷੑ w։ൃޮ takeruͰ͢ɻ
ͳͥ(Pʁ wͱฒྻੑ w$ͷϥΠϒϥϦͱͷੑ w։ൃޮ harukaͰ͢ɻ
ͳͥ(Pʁ wͱฒྻੑ w$ͷϥΠϒϥϦͱͷੑ w։ൃޮ bearͰ͢ɻ
σϞ͓͠·͍ santaͰ͢ɻ
ྑ͔ͬͨͱ͜Ζ GoΛͬͯΈͯ
࣮ߦ w$΄ͲϝϞϦཧϙΠϯλͷཧʹؾΛΘ ͳͯ͘ࡁΉ͕ɺ$ͱಉఔͷ͕ͰΔɻ wHPSPVUJOFͱDIBOOFMΛར༻ͯ͠ɺൺֱత؆୯ʹ ϚϧνίΞΛ׆͔͢ฒྻϓϩάϥϛϯά͕Ͱ͖ Δɻ
$ͱͷੑ wඞཁ࠷খݶͷखଓ͖ Ͱɺ$Ͱॻ͔Εͨ֎ ෦ϥΠϒϥϦͷؔ Λݺͼग़ͤΔɻ package rand ! /* #include
<stdlib.h> */ import "C" ! func Random() int { // Cͷੈքͷrandom()ؔΛݺͼग़ͯ͠ // ݁ՌΛgoͷੈքͷintʹมͯ͠ฦ͢ return int(C.random()) } ! func Seed(i int) { // goͷੈքͷintܕͷiΛCͷੈքͷuintʹมͯ͠ɺ // CͷੈքͷsrandomؔʹҾͱͯ͢͠ C.srandom(C.uint(i)) }
੩తνΣοΫ wίϯύΠϧ࣌ʹ੩తܕνΣοΫ͕ಇ͘ͷͰɺ ͠ΐʔͳ͍ϛείϯύΠϧ࣌ʹ͛Δɻ wͦͷଞɺએݴͨ͠ͷʹͬͯͳ͍มͱ͔ɺͬ ͯͳ͍ύοέʔδͱ͔ࢦఠͯ͘͠Εͯɺ݁ߏ ɻ
ॆ࣮ͷϥΠϒϥϦ wඞཁ࠷ݶͷϥΠϒϥϦඪ४Ͱଗ͍ͬͯΔɻ wɺจࣈྻɺਖ਼نදݱɺྻNBQͳͲͷ ίϯςφɺ࣌ؒɺύʔαʔɺ04ɺωοτϫʔ Ϋɺ҉߸ɺѹॖɺϩάͳͲͳͲɻ wΦʔϓϯιʔεͷϥΠϒϥϦ͍Ζ͍Ζ͋Δɻ
γϯϓϧͳݴޠ༷ wΫϥεͳ͍͚ͲɺܕʹϝιουΛੜͤΔͷͰ ࠔΒͳ͍ɻ wྫ֎ॲཧػೳͳ͍͚ͲɺෳฦΓͰͦΜͳʹ ࠔΒͳ͍ɻ w(FOFSJDTͳ͍͚ͲɺྻͱNBQͰཁૉͷܕΛ ࢦఆͰ͖ΔͷͰɺଟ͘ͷέʔεͰࠔΒͳ͍ɻ
HPGNU wݴޠඪ४ͷίʔσΟϯάن͕͋ͬͯɺHPGNUί ϚϯυΛ͏ͱܗͰ͖ΔͷͰɺίʔσΟϯά نʹ·ͭΘΔफڭઓ૪͕ى͖Δස͕গͳ͍ɻ
ݴޠ༷͕҆ఆ w݁ߏසൟʹ(PͷόʔδϣϯΞοϓ͕ߦΘΕΔ ͕ɺେ͖͘ڍಈ͕มΘͬͯޓੑͷ͕ى͖ Δɺͱ͍͏͜ͱ͕͋·Γͳ͔ͬͨʢগͳ͘ͱ ͜Ε·Ͱʣɻ
ͪΐͬͱෆຬͳͱ͜Ζ
දݱྗ͕গͳΊ w(FOFSJDTཉ͍͠ wతσʔλܕͱύλʔϯϚονཉ͍͠
ϥΠϒϥϦͷػೳ࣭ w͍ظؒɺଟ͘ͷਓʹ͍ࠐ·Εͨڥ +BWBͱ ͔3VCZͱ͔ ͱൺֱ͢ΔͱɺϥΠϒϥϦͷػೳ ࣭͕·ͩख़͍ͯ͠ͳ͍ײ͡ɻ wࣗಈςετڥ wจࣈίʔυมʢ͍ΘΏΔʮμογϡʯ ͱ͔ʣ wGPSL
FYFDඇޮ
·ͱΊ
·ͱΊ wଟগͷෆຬ͋Δͷͷɺશମతʹඇৗʹ όϥϯεͷऔΕͨྑ͍ݴޠɾڥͰେม࣮༻త ͳͷͰେม͓͢͢ΊͰ͖·͢ɻ w7PJDF5FYU8FC"1*ΛͲ͏ͧ͝ርʹɻ ͬͯgolang