Fergus Henderson
Fergus Henderson has been a software engineer at Google since 2006. He started programming as a kid in 1979, and went on to academic research in programming language design and implementation. With his PhD supervisor, he co-founded a research group at the University of Melbourne that developed the programming language Mercury. He has been a program committee member for eight international conferences, and has released over 500,000 lines of open-source code. He was a former moderator of the Usenet newsgroup comp.std.c++ and was an officially accredited “Technical Expert” for the ISO C and C++ committees. He also has over 15 years of commercial software industry experience, starting with his first full-time industry job, as a COBOL programmer (for Australian company Frontier Software) at the age of 16. He spent 2.5 years working at Galois, Inc., in Portland, Oregon, where he developed a compiler from Cryptol (a domain-specific functional programming language for cryptography) to FPGA hardware. At Google, he was one of the original developers of Blaze, a build tool now used across Google, and worked on the server-side software behind speech recognition and voice actions (before Siri!) and speech synthesis. He currently manages Google's text-to-speech engineering team, but still writes and reviews plenty of code. Software that he has written is installed on over a billion devices.
Authored Publications
Google Publications
Other Publications
Sort By
Fast, Compact, and High Quality LSTM-RNN Based Statistical Parametric Speech Synthesizers for Mobile Devices
Yannis Agiomyrgiannakis
Niels Egberts
Przemysław Szczepaniak
Proc. Interspeech, San Francisco, CA, USA (2016), pp. 2273-2277
Preview abstract
Acoustic models based on long short-term memory recurrent neural network (LSTM-RNN) were applied to statistical parametric speech synthesis (SPSS) and showed significant improvements in naturalness and latency over those based on hidden Markov models (HMMs). This paper describes further optimizations of LSTM-RNN-based SPSS to deploy it to mobile devices; weight quantization, multi-frame inference, and robust inference using an ε-contaminated Gaussian loss function. Experimental results in subjective listening tests show that these optimizations can make LSTM-RNN-based SPSS comparable to HMM-based SPSS in runtime speed while maintaining naturalness. Evaluations between LSTM-RNN-based SPSS and HMM-driven unit selection speech synthesis are also presented.
View details
Accurate garbage collection in an uncooperative environment
International Symposium on Memory Management (2002), pp. 256-263
Compiling Mercury to High-Level C Code
Zoltan Somogyi
Compiler Construction, 11th International Conference, CC 2002,
Held as Part of the Joint European Conferences on Theory and
Practice of Software, ETAPS 2002, Grenoble, France, April 8-12, Springer, pp. 197-212
Compiling Mercury to the .NET Common Language Runtime
Tyson Dowd
Peter Ross
BABEL'01: First International Workshop on Multi-Language Infrastructure and Interoperability, Firenze, Italy, 8 September 2001
Using impurity to create declarative interfaces in Mercury
Tyson Dowd
Peter Schachte
Zoltan Somogyi
Department of Computer Science, University of Melbourne, Melbourne, Australia
Type Classes in Mercury
David Jeffery
Zoltan Somogyi
Australian Computer Science Conference (2000), pp. 128-135
A Semantics for Imprecise Exceptions
Simon L. Peyton Jones
Alastair Reid
C. A. R. Hoare
Simon Marlow
Programming Language Design and Implementation (1999), pp. 25-36
The Implementation Technology of the Mercury Debugger
Zoltan Somogyi
Proceedings of the 1999 International Conference on Logic Programming
Run Time Type Information in Mercury
Tyson Dowd
Zoltan Somogyi
Thomas Conway
David Jeffery
International Conference on Principles and Practice of Declarative Programming (1999), pp. 224-243
Database Transactions in a Purely Declarative Logic Programming Language
David B. Kemp
Thomas Conway
Evan P. Harris
Kotagiri Ramamohanarao
Zoltan Somogyi
DASFAA (1997), pp. 283-292
Status of the Mercury system
Zoltan Somogyi
Thomas Conway
Proceedings of the JICSLP '96 Workshop on Parallelism and Implementation Technology for (Constraint) Logic Programming Languages, Bonn, Germany (1996), pp. 207-218
Determinism analysis in the Mercury Compiler
Zoltan Somogyi
Thomas Conway
Australian Computer Science Conference (1996), pp. 337-346
The Execution Algorithm of Mercury, an Efficient Purely Declarative Logic Programming Language
Zoltan Somogyi
Thomas Conway
Journal of Logic Programming, vol. 29 (1996), pp. 17-64
Code Generation for Mercury
Thomas Conway
Zoltan Somogyi
International Logic Programming Symposium (1995), pp. 242-256
The Mercury language reference manual
Logic programming for the real world!
Zoltan Somogyi
Thomas Conway
Richard O'Keefe
Proceedings of the ILPS '95 Postconference Workshop on Visions for the Future of Logic Programming (1995)
Mercury User's Guide
The Implementation of Mercury, an Efficient Purely Declarative Logic Programming Language
Zoltan Somogyi
Thomas Conway
ILPS Workshop: Implementation Techniques for Logic Programming Languages (1994)
Strong modes can change the world!
Department of Computer Science, University of Melbourne (1992)